Merge pull request #13 from samply/feature/addedGitDiffForGitlab

Ensured Logging through the Log Function
This commit is contained in:
patrickskowronekdkfz 2022-05-20 13:56:54 +02:00 committed by GitHub
commit 4c9a5fc02f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 24 deletions

View File

@ -1,12 +1,10 @@
#!/bin/bash -e #!/bin/bash -e
source lib/functions.sh source lib/functions.sh
log "This script add's a user with password to the bridghead" log "INFO" "This script add's a user with password to the bridghead"
read -p 'Username: ' bc_user read -p 'Username: ' bc_user
read -sp 'Password: ' bc_password read -sp 'Password: ' bc_password
echo log "INFO" "\nPlease export the line in the your environment. Please replace the dollar signs with with \\\$"
log "Please export the line in the your environment. Please replace the dollar signs with with \\\$"
docker run --rm -it httpd:latest htpasswd -nb $bc_user $bc_password docker run --rm -it httpd:latest htpasswd -nb $bc_user $bc_password

View File

@ -2,13 +2,13 @@
exitIfNotRoot() { exitIfNotRoot() {
if [ "$EUID" -ne 0 ]; then if [ "$EUID" -ne 0 ]; then
echo "Please run as root" log "ERROR" "Please run as root"
exit 1 exit 1
fi fi
} }
log() { log() {
echo "$(date +'%Y-%m-%d %T')" "$1:" "$2" echo -e "$(date +'%Y-%m-%d %T')" "$1:" "$2"
} }
printUsage() { printUsage() {
@ -18,7 +18,7 @@ printUsage() {
checkRequirements() { checkRequirements() {
if ! lib/prerequisites.sh; then if ! lib/prerequisites.sh; then
log ERROR "Validating Prerequisites failed, please fix the error(s) above this line." log "ERROR" "Validating Prerequisites failed, please fix the error(s) above this line."
exit 1 exit 1
else else
return 0 return 0
@ -38,12 +38,12 @@ fetchVarsFromVault() {
return 0 return 0
fi fi
log INFO "Fetching secrets from vault ..." log "INFO" "Fetching secrets from vault ..."
[ -e /etc/bridgehead/vault.conf ] && source /etc/bridgehead/vault.conf [ -e /etc/bridgehead/vault.conf ] && source /etc/bridgehead/vault.conf
if [ -z "$BW_MASTERPASS" ] || [ -z "$BW_CLIENTID" ] || [ -z "$BW_CLIENTSECRET" ]; then if [ -z "$BW_MASTERPASS" ] || [ -z "$BW_CLIENTID" ] || [ -z "$BW_CLIENTSECRET" ]; then
log ERROR "Please supply correct credentials in /etc/bridgehead/vault.conf." log "ERROR" "Please supply correct credentials in /etc/bridgehead/vault.conf."
return 1 return 1
fi fi

View File

@ -3,12 +3,12 @@
source lib/functions.sh source lib/functions.sh
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
log "Please provide a Project as argument" log "ERROR" "Please provide a Project as argument"
exit 1 exit 1
fi fi
if [ $1 != "ccp" ] && [ $1 != "nngm" ] && [ $1 != "gbn" ]; then if [ $1 != "ccp" ] && [ $1 != "nngm" ] && [ $1 != "gbn" ]; then
log "Please provide a supported project like ccp, gbn or nngm" log "ERROR" "Please provide a supported project like ccp, gbn or nngm"
exit 1 exit 1
fi fi
@ -16,8 +16,10 @@ export PROJECT=$1
#checkRequirements // not needed when uninstalling #checkRequirements // not needed when uninstalling
log "Stopping systemd services and removing bridgehead ..." log "INFO" "Stopping system units and removing bridgehead for ${PROJECT} ..."
systemctl disable --now bridgehead@${PROJECT}.service bridgehead-update@${PROJECT}.timer bridgehead-update@${PROJECT}.service systemctl disable --now bridgehead@${PROJECT}.service bridgehead-update@${PROJECT}.timer bridgehead-update@${PROJECT}.service
rm -v /etc/systemd/system/{bridgehead\@.service,bridgehead-update\@.timer,bridgehead-update\@.service} rm -v /etc/systemd/system/{bridgehead\@.service,bridgehead-update\@.timer,bridgehead-update\@.service}
log "INFO" "Successfully removed bridgehead for ${PROJECT} from your system"

View File

@ -5,12 +5,12 @@ source lib/functions.sh
exitIfNotRoot exitIfNotRoot
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
log "Please provide a Project as argument" log "ERROR" "Please provide a Project as argument"
exit 1 exit 1
fi fi
if [ $1 != "ccp" ] && [ $1 != "nngm" ] && [ $1 != "gbn" ]; then if [ $1 != "ccp" ] && [ $1 != "nngm" ] && [ $1 != "gbn" ]; then
log "Please provide a supported project like ccp, gbn or nngm" log "ERROR" "Please provide a supported project like ccp, gbn or nngm"
exit 1 exit 1
fi fi
@ -18,7 +18,7 @@ export PROJECT=$1
checkRequirements checkRequirements
echo -e "\nInstalling systemd units ..." log "INFO" "Register system units for bridgehead and bridgehead-update"
cp -v \ cp -v \
lib/systemd/bridgehead\@.service \ lib/systemd/bridgehead\@.service \
lib/systemd/bridgehead-update\@.service \ lib/systemd/bridgehead-update\@.service \
@ -27,13 +27,11 @@ cp -v \
systemctl daemon-reload systemctl daemon-reload
echo
if ! systemctl is-active --quiet bridgehead@"${PROJECT}"; then if ! systemctl is-active --quiet bridgehead@"${PROJECT}"; then
log "Enabling autostart of bridgehead@${PROJECT}.service" log "INFO" "Enabling autostart of bridgehead@${PROJECT}.service"
systemctl enable bridgehead@"${PROJECT}" systemctl enable bridgehead@"${PROJECT}"
log "Enabling nightly updates for bridgehead@${PROJECT}.service ..." log "INFO" "Enabling nightly updates for bridgehead@${PROJECT}.service ..."
systemctl enable --now bridgehead-update@"${PROJECT}".timer systemctl enable --now bridgehead-update@"${PROJECT}".timer
fi fi
echo -e "\nDone - now start your bridgehead by running\n\tsystemctl start bridgehead@${PROJECT}.service\nor by rebooting your machine." log "INFO" "\nDone - now start your bridgehead by running\n\tsystemctl start bridgehead@${PROJECT}.service\nor by rebooting your machine."

View File

@ -8,15 +8,22 @@ for DIR in /etc/bridgehead $(pwd); do
old_git_hash="$(git -C $DIR rev-parse --verify HEAD)" old_git_hash="$(git -C $DIR rev-parse --verify HEAD)"
git -C $DIR fetch 2>&1 git -C $DIR fetch 2>&1
git -C $DIR pull 2>&1 git -C $DIR pull 2>&1
git -C $DIR remote -v
new_git_hash="$(git -C $DIR rev-parse --verify HEAD)" new_git_hash="$(git -C $DIR rev-parse --verify HEAD)"
git_updated="false" git_updated="false"
if [ "$old_git_hash" != "$new_git_hash" ]; then if [ "$old_git_hash" != "$new_git_hash" ]; then
log "INFO" "Updated git repository in ${DIR} from commit $old_git_hash to $new_git_hash" log "INFO" "Updated git repository in ${DIR} from commit $old_git_hash to $new_git_hash"
# NOTE: Link generation doesn't work on repositories placed at an self-hosted instance of bitbucket. # NOTE: Link generation doesn't work on repositories placed at an self-hosted instance of bitbucket.
# See: https://community.atlassian.com/t5/Bitbucket-questions/BitBucket-4-14-diff-between-any-two-commits/qaq-p/632974 # See: https://community.atlassian.com/t5/Bitbucket-questions/BitBucket-4-14-diff-between-any-two-commits/qaq-p/632974
if [ "$(git -C $DIR remote get-url origin | grep "github.com")" ]; then git_repository_url="$(git -C $DIR remote get-url origin)"
log "INFO" "You can review all changes on the repository with https://github.com/samply/bridgehead/compare/$old_git_hash...$new_git_hash" git_repository_url=${git_repository_url/.git/}
if [ "$( echo $git_repository_url | grep "github.com")" ]; then
# Ensure web link even if ssh is used
git_repository_url="${git_repository_url/git@github.com/https:\/\/github.com\/}"
log "INFO" "You can review all changes on the repository with $git_repository_url/compare/$old_git_hash...$new_git_hash"
elif [ "$( echo $git_repository_url | grep "git.verbis.dkfz.de")" ]; then
git_repository_url="${git_repository_url/ssh:\/\/git@git.verbis.dkfz.de/https:\/\/git.verbis.dkfz.de\/}"
git_repository_url="https://$(echo $git_repository_url | awk -F '@' '{print $2}')"
log "INFO" "You can review all changes on the repository with $git_repository_url/compare?from=$old_git_hash&to=$new_git_hash"
fi fi
git_updated="true" git_updated="true"
fi fi