#!/bin/bash # Temporary files BASE=$(basename $0 .sh) TEMPHTML="$BASE.html" TEMPTXT="$BASE.txt" TEMPJSON="$BASE.json" TEMPCOOKIE="$BASE.cookie" TEMPCSV="$BASE.csv" RCFILE="$HOME/.$BASE""rc" LOG_ENABLED=1 LOGFILE="$PWD/$BASE.log" # Colors in scripts GREEN="\\033[1;32m" RED="\\033[1;31m" MAGENTA="\\033[1;35m" BLUE="\\033[1;34m" WHITE="\\033[0;02m" LIGHTGREY="\\033[1;08m" YELLOW="\\033[1;33m" CYAN="\\033[1;36m" NORMAL="\\033[0;39m" function log() { if [ 1 -eq $LOG_ENABLED ] then DATELOG=$(date) echo -e "$@" echo -e "$DATELOG $(hostname) $(basename $0): $@" >> $LOGFILE fi } # Die function die() { RETCODE=$1 if [ "" == "$1" ] then RETCODE=255 fi echo " FAILED" exit $RETCODE } # Minimal RC management function readrc() { echo "+- Reading credentials from $RCFILE" USER=$(grep "user=" $RCFILE | awk -F'=' '{print $2}') PASSWD=$(grep "password=" $RCFILE | awk -F'=' '{print $2}') } # Clean Exit function clean_temp_files() { DATE_STOP_ALL=$(date +%s) log "Exiting @ $DATE_STOP_ALL" log "Took $(( $DATE_STOP_ALL - $DATE_START_ALL ))" rm -f $TEMPHTML $TEMPJSON $TEMPCOOKIE $TEMPCSV } urldecode() { # urldecode local url_encoded="${1//+/ }" printf '%b' "${url_encoded//%/\\x}" } urlencode() { local string="${1}" local strlen=${#string} local encoded="" local pos c o for (( pos=0 ; pos $LOGFILE trap clean_temp_files EXIT DATE_START_ALL=$(date +%s) log "############################################################" log "Started @ $DATE_START_ALL" if [ ! -e $RCFILE ] then echo "+- Credentials file does not exist" read -e -p " +- Username : " TEMP USER=$TEMP TEMP="" read -e -s -p " +- Password : " TEMP PASSWD=$TEMP # Make the file unreadable by others *BEFORE* putting password. touch $RCFILE chmod go-r $RCFILE echo "user=$USER">$RCFILE echo "password=$PASSWD" >> $RCFILE echo "" else readrc fi # Real stuff starts below # ...