Skip to content

Commit

Permalink
Installs lsb_release package if it was not found (#38)
Browse files Browse the repository at this point in the history
  • Loading branch information
juliendufresne committed Jul 10, 2016
1 parent 05a9b57 commit e2c3407
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 2 deletions.
45 changes: 45 additions & 0 deletions src/_lsb_release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/usr/bin/env bash

find_package_manager() {
local package_manager=
for package_manager in 'apt-get' 'yum'
do
if vagrant ssh -- -n "which ${package_manager}" &>/dev/null
then
echo "${package_manager}"
return 0
fi
done

return 1
}

install_lsb_release_package() {
local package_manager=$(find_package_manager)
local known_package_names='lsb_release redhat-lsb'

# is it already installed ?
for package_name in ${known_package_names}
do
vagrant ssh -- -n "which lsb_release" &>/dev/null && return 0
done

if [ -z "${package_manager}" ]
then
return 1
fi

for package_name in ${known_package_names}
do
case "${package_manager}" in
"apt-get")
vagrant ssh -- -n "sudo apt-get install -y ${package_name}" &>/dev/null && return 0
;;
"yum")
vagrant ssh -- -n "sudo yum install -y ${package_name}" &>/dev/null && return 0
;;
esac
done

return 1
}
18 changes: 16 additions & 2 deletions src/_report.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
REPORT_CURRENT_FILE=

ensure_report_file_exists() {
[ -z "${REPORT_CURRENT_FILE}" ] && return

local repository_directory="$1"
local ansible_role="$2"
local report_file="${repository_directory}/reports/${ansible_role}.md"
Expand All @@ -30,6 +32,8 @@ ensure_report_file_exists() {
}

report_display_column() {
[ -z "${REPORT_CURRENT_FILE}" ] && return

local pad="$1"
local value="$2"

Expand All @@ -38,14 +42,20 @@ report_display_column() {
}

report_failure() {
[ -z "${REPORT_CURRENT_FILE}" ] && return

printf "| %s " "![FAIL](https://img.shields.io/badge/status-fail-red.svg)" >> ${REPORT_CURRENT_FILE}
}

report_success() {
[ -z "${REPORT_CURRENT_FILE}" ] && return

printf "| %s " "![OK](https://img.shields.io/badge/status-pass-brightgreen.svg)" >> ${REPORT_CURRENT_FILE}
}

save_report() {
[ -z "${REPORT_CURRENT_FILE}" ] && return

local report_file="$1"
local distribution=$(cat "${REPORT_CURRENT_FILE}"|cut -d '|' -f 2 |sed 's/^\s*//'|sed 's/\s*$//')
local new_line=
Expand All @@ -65,6 +75,12 @@ save_report() {
}

start_new_report() {
REPORT_CURRENT_FILE=$(readlink -m "report_line.md")
install_lsb_release_package || {
REPORT_CURRENT_FILE=
warning "Unable to install lsb_release binary on the guest. No reports will be generated"
return 0
}
local id="$(vagrant ssh -- -n 'lsb_release --short --id')"
local release="$(vagrant ssh -- -n 'lsb_release --short --release')"
local distribution="$id $release"
Expand All @@ -75,8 +91,6 @@ start_new_report() {
distribution="$distribution ($codename)"
fi

REPORT_CURRENT_FILE=$(readlink -m "report_line.md")

report_display_column "| Distribution |" "$distribution" >> "${REPORT_CURRENT_FILE}"
report_display_column "| last check date |" "$(date +"%F %T")" >> "${REPORT_CURRENT_FILE}"
}
1 change: 1 addition & 0 deletions test.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env bash

REPOSITORY_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
. "${REPOSITORY_DIRECTORY}/src/_lsb_release.sh"
. "${REPOSITORY_DIRECTORY}/src/_option_resolver.sh"
. "${REPOSITORY_DIRECTORY}/src/_print.sh"
. "${REPOSITORY_DIRECTORY}/src/_report.sh"
Expand Down

0 comments on commit e2c3407

Please sign in to comment.