Showing 1 changed files with 118 additions and 0 deletions
+118
sample.sh
... ...
@@ -0,0 +1,118 @@
1
+#!/bin/bash
2
+
3
+# Temporary files
4
+BASE=$(basename $0 .sh)
5
+TEMPHTML="$BASE.html"
6
+TEMPTXT="$BASE.txt"
7
+TEMPJSON="$BASE.json"
8
+TEMPCOOKIE="$BASE.cookie"
9
+TEMPCSV="$BASE.csv"
10
+RCFILE="$HOME/.$BASE""rc"
11
+LOG_ENABLED=1
12
+LOGFILE="$PWD/$BASE.log"
13
+
14
+# Colors in scripts
15
+GREEN="\\033[1;32m"
16
+RED="\\033[1;31m"
17
+MAGENTA="\\033[1;35m"
18
+BLUE="\\033[1;34m"
19
+WHITE="\\033[0;02m"
20
+LIGHTGREY="\\033[1;08m"
21
+YELLOW="\\033[1;33m"
22
+CYAN="\\033[1;36m"
23
+NORMAL="\\033[0;39m"
24
+
25
+function log() {
26
+  if [ 1 -eq $LOG_ENABLED ]
27
+  then
28
+    DATELOG=$(date)
29
+    echo -e "$@"
30
+    echo -e "$DATELOG $(hostname) $(basename $0): $@" >> $LOGFILE
31
+  fi
32
+}
33
+
34
+# Die
35
+function die()
36
+{
37
+  RETCODE=$1
38
+  if [ "" == "$1" ]
39
+  then
40
+    RETCODE=255
41
+  fi
42
+  echo " FAILED"
43
+  exit $RETCODE
44
+}
45
+
46
+# Minimal RC management
47
+function readrc()
48
+{
49
+  echo "+- Reading credentials from $RCFILE"
50
+  USER=$(grep "user=" $RCFILE | awk -F'=' '{print $2}')
51
+  PASSWD=$(grep "password=" $RCFILE | awk -F'=' '{print $2}')  
52
+}
53
+
54
+# Clean Exit
55
+function clean_temp_files()
56
+{
57
+  log "Exiting."
58
+  rm -f $TEMPHTML $TEMPJSON $TEMPCOOKIE $TEMPCSV
59
+}
60
+
61
+
62
+urldecode() {
63
+    # urldecode <string>
64
+
65
+    local url_encoded="${1//+/ }"
66
+    printf '%b' "${url_encoded//%/\\x}"
67
+}
68
+urlencode() {
69
+  local string="${1}"
70
+  local strlen=${#string}
71
+  local encoded=""
72
+  local pos c o
73
+
74
+  for (( pos=0 ; pos<strlen ; pos++ )); do
75
+     c=${string:$pos:1}
76
+     case "$c" in
77
+        [-_.~a-zA-Z0-9] ) o="${c}" ;;
78
+        * )               printf -v o '%%%02x' "'$c"
79
+     esac
80
+     encoded+="${o}"
81
+  done
82
+  echo "${encoded}"    # You can either set a return variable (FASTER)
83
+  REPLY="${encoded}"   #+or echo the result (EASIER)... or both... :p
84
+}
85
+
86
+:> $LOGFILE
87
+trap clean_temp_files EXIT
88
+
89
+if [ ! -e $RCFILE ]
90
+then
91
+  echo "+- Credentials file does not exist"
92
+  read -e -p "   +- Username      : " TEMP
93
+  USER=$TEMP
94
+  TEMP=""
95
+  read -e -s -p "   +- Password      : " TEMP
96
+  PASSWD=$TEMP
97
+
98
+  # Make the file unreadable by others *BEFORE* putting password.
99
+  touch $RCFILE
100
+  chmod go-r $RCFILE
101
+
102
+  echo "user=$USER">$RCFILE
103
+  echo "password=$PASSWD" >> $RCFILE
104
+  echo ""
105
+else
106
+  readrc                                                                                                                                                                                                       
107
+fi
108
+```
109
+
110
+
111
+DATE_START_ALL=$(date +%s)
112
+log "############################################################"
113
+log "Started @ $DATE_START_ALL"
114
+```
115
+
116
+echo http://url/q?=$(rawurlencode "$args")
117
+
118
+