51b0e05f3807e351efb2ff9a4870946175121722 mspeir Wed Dec 21 10:00:55 2016 -0800 Adding usage message and ability to specify output directory per Jonathan's suggestion. Also setting qaConfig and other standard stuff at the top of the script. refs #18316 diff --git src/utils/qa/getPubHubContact.sh src/utils/qa/getPubHubContact.sh index 3a97a2a..a07fbff 100755 --- src/utils/qa/getPubHubContact.sh +++ src/utils/qa/getPubHubContact.sh @@ -1,20 +1,70 @@ #!/bin/bash +# quit if something within the script fails +set -beEu -o pipefail +source `which qaConfig.bash` +umask 002 + +################################ +# +# 12-20-2016 +# Matthew Speir +# +# getPubHubInfo.sh +# Collects contact information for +# hubs listed in hgcentral.hubPublic. +# Outputs contact information to HTML- +# formatted file. +# +################################ + +usage=""" +Collect contact information for hubs in hgcentral.hubPublic on the RR. Places all +contact information into an HTML-formatted page.\nDefault output location:\n +/usr/local/apache/htdocs-genecats/qa/test-results/publicHubContactInfo\n\n +`basename $0` go [outputLocation]\n\n\ +outputLocation is a path to the directory where output should be placed. If not set, +script assumes default location above.\n +""" + +runScript="" +base="" + +# Print usage statement +if (( $# < 1 )) || (( $# > 2 )) +then + echo -e $usage + exit 1 +elif (( $# == 1 )) +then + runScript=$1 +elif (( $# == 2 )) +then + runScript="$1" + base="$2" +fi + +#If no user provided base location, then assume it's being run on dev and output to default loc. +if [[ "$base" == "" ]] +then base="/usr/local/apache/htdocs-genecats/qa/test-results/publicHubContactInfo" -contactFile="$base/publicHubContact.html" +fi +if [[ "$runScript" == "go" ]] +then + contactFile="$base/publicHubContact.html" # Check if old contact file exists and if it does move it to archive file if [ -e $contactFile ] then mv $contactFile $contactFile.old fi # Make header for html file echo -e " <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> " >> $contactFile while read url label do # Save hub shortLabel as a file so we can use it in a filename later @@ -38,15 +88,20 @@ # If email is still empty, hub is likely down and # we want to use the last email we have as contact email if [[ $email == "" ]] && [ -e $contactFile.old ] then email=$(grep "$url" $contactFile.old | awk '{print $4" "$5}') fi fi # Create hyperlinks to hub.txt files hubLink="<a href=\"$url\" target=\"_blank\">$label</a>" # Write contact email + hubUrl to file echo -e "$hubLink $email<br>" >> $contactFile done<<<"$(hgsql -h genome-centdb -Ne "select hubUrl,shortLabel from hubPublic" hgcentral)" +else + echo -e "Error: \"$1\" is not a valid input. Please see the usage message.\n\n" + echo -e $usage + exit 1 +fi