SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/bin/bash | |
| 2 | ||
| 3 | - | # 12/06/2013 |
| 3 | + | # 23/10/2013 |
| 4 | - | # This script attempts to semi-automate the wifi connection process from |
| 4 | + | # This script attempts to semi-automate / automate the wifi connection |
| 5 | - | # the command line. |
| 5 | + | # process from the command line. |
| 6 | # It is intended to be used on a headless machine without the | |
| 7 | # requirement of typing several commands for a connection. | |
| 8 | # The script stores previous connection credentials in PLAINTEXT as | |
| 9 | # *.wpa files in the executed directory and in /etc/wpasupplicant.conf. | |
| 10 | - | # These .wpa files are used to connect to several different ap using |
| 10 | + | # These .wpa files are used to connect to several different AP using |
| 11 | # previously stored info. | |
| 12 | # Probably a good idea to stop and other network managing software while | |
| 13 | # running this script, also in testing wpa_supplicant does a pretty good | |
| 14 | # job of re-connecting a disassociated link automatically. | |
| 15 | # | |
| 16 | # Mainly created from a combination of scripts taken from theses two | |
| 17 | # sources: | |
| 18 | # http://www.backtrack-linux.org/forums/archive/index.php/t-3367.html | |
| 19 | # AND | |
| 20 | # http://www.linuxquestions.org/questions/linux-general-1/wifi-connect\ | |
| 21 | # -script-tested-in-ubuntu-772646/ | |
| 22 | # | |
| 23 | - | # old version1 http://pastebin.com/Pa90HBiU 01/06/2013 |
| 23 | + | # old version 1 http://pastebin.com/Pa90HBiU 01/06/2013 |
| 24 | # very simple first version | |
| 25 | - | # old version2 http://pastebin.com/FzJnv5Nk 02/06/2013 |
| 25 | + | # old version 2 http://pastebin.com/FzJnv5Nk 02/06/2013 |
| 26 | # minor additions | |
| 27 | - | # old version3 http://pastebin.com/3mu1XT5Y 08/06/2013 |
| 27 | + | # old version 3 http://pastebin.com/3mu1XT5Y 08/06/2013 |
| 28 | # included ability to call up previous saved files from | |
| 29 | - | # command line. Some checking of command line parameters and |
| 29 | + | # command line. Some checking of command line parameters and |
| 30 | # checking for empty saved files | |
| 31 | - | # current version |
| 31 | + | # old version 4 |
| 32 | - | # Added exit retrurn values |
| 32 | + | # Added exit return values |
| 33 | # Current version 5 | |
| 34 | # Removal of cleanslate function. Capitalising of function names. | |
| 35 | # Renaming of some function names. | |
| 36 | # Addition of random_config to randomly select a previously saved | |
| 37 | # config files, check for internet access and keep trying another | |
| 38 | - | if [ -z "$1" ]; then |
| 38 | + | # connections if internet access is not made. Can be used in |
| 39 | - | printf "Usage: $0 -i [interface] OR AND -f [SAVED_FILE.wpa]\n" |
| 39 | + | # conjunction with -f to initially select a conf_file of your choice. |
| 40 | # Improved program feedback and internet access checking. | |
| 41 | # | |
| 42 | # This script uses the following commands: find, printf, iwlist, awk, | |
| 43 | - | while getopts "i:f:" opt |
| 43 | + | # cat, kill, ps, grep, xargs, iwconfig, dhclient, wpa_supplicant, curl. |
| 44 | - | do |
| 44 | + | |
| 45 | - | case $opt in |
| 45 | + | |
| 46 | - | i ) INT=${OPTARG};;
|
| 46 | + | |
| 47 | - | f ) ITEM=${OPTARG};;
|
| 47 | + | |
| 48 | - | \?) printf "Usage: $0 -i [interface] OR AND -f [SAVED_FILE.wpa]\n" |
| 48 | + | |
| 49 | - | exit 1;; |
| 49 | + | ######################################################################## |
| 50 | - | * ) printf "Usage: $0 -i [interface] OR AND -f [SAVED_FILE.wpa]\n" |
| 50 | + | ######################## FUNCTIONS ##################################### |
| 51 | - | exit 1;; |
| 51 | + | |
| 52 | - | esac |
| 52 | + | function HELP (){
|
| 53 | HELP_MESSAGE="$1" | |
| 54 | if [ "$HELP_MESSAGE" ]; then | |
| 55 | printf "$HELP_MESSAGE" | |
| 56 | - | # check if root |
| 56 | + | |
| 57 | printf "Usage: $0 -i [INTERFACE] OR AND -f [CONF_FILE.wpa] -r (RANDOM_CONF_MODE)\n" | |
| 58 | - | if [ "$(id -u)" != "0" ]; then |
| 58 | + | |
| 59 | - | printf "This script must be run as root\n" 1>&2 |
| 59 | + | |
| 60 | ||
| 61 | function CHECK_ARGS () {
| |
| 62 | # | |
| 63 | # Define Globals | |
| 64 | - | # check if interface is entered as command line argument |
| 64 | + | |
| 65 | INET_AVAIL=0 | |
| 66 | - | if [ -z "$INT" ]; then |
| 66 | + | RANDOM_CONF_MODE=0 |
| 67 | - | printf "Usage: $0 -i [interface] OR AND -f [SAVED_FILE.wpa]\n" |
| 67 | + | RANDOM_FIRST_RUN=0 |
| 68 | - | exit 1 |
| 68 | + | CONF_FILE="" |
| 69 | INT="" | |
| 70 | ||
| 71 | if [ -z "$1" ]; then | |
| 72 | HELP | |
| 73 | - | # Search for previous saved config files |
| 73 | + | |
| 74 | fi | |
| 75 | - | function read_saved (){
|
| 75 | + | |
| 76 | while getopts "i:f:r" opt | |
| 77 | - | # Search or uses for previous wpa configuration files |
| 77 | + | do |
| 78 | - | # Checks if command line argument -f [SAVED_FILE.wpa] is greater than zero length and exists |
| 78 | + | case $opt in |
| 79 | - | # before writing the configiuration to wpa_supplicant.conf. Otherwise create a new |
| 79 | + | i ) INT=${OPTARG};;
|
| 80 | - | # configuration. |
| 80 | + | f ) CONF_FILE=${OPTARG};;
|
| 81 | r ) RANDOM_CONF_MODE=1;; | |
| 82 | - | if [ -n "$ITEM" ]; then |
| 82 | + | \?) HELP |
| 83 | - | if [ -s "$ITEM" ]; then |
| 83 | + | exit 1;; |
| 84 | - | printf "File $ITEM exists, proceeding to connect\n" |
| 84 | + | * ) HELP |
| 85 | - | write_conf $ITEM |
| 85 | + | exit 1;; |
| 86 | - | else printf "File $ITEM is invalid or does not exist, proceeding to create a new configuration\n" |
| 86 | + | esac |
| 87 | - | conf_create |
| 87 | + | done |
| 88 | ||
| 89 | # | |
| 90 | # check if root | |
| 91 | # | |
| 92 | if [ "$(id -u)" != "0" ]; then | |
| 93 | HELP "This script must be run as root\n" | |
| 94 | exit 1 | |
| 95 | fi | |
| 96 | ||
| 97 | # | |
| 98 | # check if interface is entered as command line argument | |
| 99 | - | # ref:http://www.cyberciti.biz/tips/handling-filenames-with-spaces\ |
| 99 | + | |
| 100 | - | # -in-bash.html |
| 100 | + | if [ -z "$INT" ]; then |
| 101 | HELP | |
| 102 | exit 1 | |
| 103 | fi | |
| 104 | - | # ref:http://serverfault.com/questions/354403/remove-path-from-find\ |
| 104 | + | |
| 105 | - | # -command-output |
| 105 | + | |
| 106 | # Check if interface entered exists | |
| 107 | # | |
| 108 | if [ ! -e /sys/class/net/$INT ]; then | |
| 109 | HELP "Network Interface $INT does not exist\n" | |
| 110 | exit 1 | |
| 111 | fi | |
| 112 | ||
| 113 | # | |
| 114 | # If random mode selected, check if wpa files are available | |
| 115 | # | |
| 116 | if [ $RANDOM_CONF_MODE -eq 1 ]; then | |
| 117 | local WPA_FILES=$(find . -type f -name "*.wpa" | wc -l) | |
| 118 | if [ "$WPA_FILES" -eq 0 ]; then | |
| 119 | HELP "No *.wpa files exist for RANDOM_CONF_MODE\n" | |
| 120 | exit 1 | |
| 121 | fi | |
| 122 | fi | |
| 123 | - | conf_create |
| 123 | + | |
| 124 | ||
| 125 | ||
| 126 | function PINGCHECK (){
| |
| 127 | # | |
| 128 | # Check for an internet connection using curl to download from a FQDN. 5 Second timeout. | |
| 129 | # Ref: http://superuser.com/questions/545865/how-to-check-if-internet-connection-is-available-via-terminal/625888#625888 | |
| 130 | # | |
| 131 | printf "Checking for internet access...\n" | |
| 132 | - | #Select one of the previous saved configurations to connect with or quit |
| 132 | + | curl --interface $INT -o /dev/null -m 5 -s http://www.google.com |
| 133 | if [[ $? == 0 ]]; then | |
| 134 | - | select ITEM in "${SAVED_LIST[@]}"; do
|
| 134 | + | INET_AVAIL=1 |
| 135 | else | |
| 136 | - | # Quit if selected number does not exist or alpha in entered |
| 136 | + | |
| 137 | # Check again for internet access | |
| 138 | - | if [ -z "$ITEM" ] ; then |
| 138 | + | |
| 139 | - | printf "Skipping\n\n" |
| 139 | + | printf "Rechecking for internet access...\n" |
| 140 | - | conf_create |
| 140 | + | curl --interface $INT -o /dev/null -m 5 -s http://www.google.com |
| 141 | if [[ $? == 0 ]]; then | |
| 142 | INET_AVAIL=1 | |
| 143 | - | # Quick check if file is greater than zero length and exists |
| 143 | + | else |
| 144 | INET_AVAIL=0 | |
| 145 | - | if [ -s "$ITEM" ]; then |
| 145 | + | |
| 146 | - | printf "File $ITEM exists, proceeding to connect\n" |
| 146 | + | |
| 147 | - | write_conf "$ITEM" |
| 147 | + | |
| 148 | - | else printf "File $ITEM is invalid or does not exist, proceeding to create a new configuration\n" |
| 148 | + | |
| 149 | - | conf_create |
| 149 | + | |
| 150 | function READ_SAVED (){
| |
| 151 | # | |
| 152 | # Accepts a filename argument to read a saved file. Also can search or use previous saved | |
| 153 | # wpa configuration files. Will automatically bypass new config prompting if RANDOM_CONF_MODE | |
| 154 | # is being used. | |
| 155 | - | function conf_create (){
|
| 155 | + | # Filename checking involves testing file is greater than zero length and exists |
| 156 | # before writing the configuration to wpa_supplicant.conf | |
| 157 | # | |
| 158 | ||
| 159 | local CONF_FILE=$1 | |
| 160 | ||
| 161 | if [ $RANDOM_CONF_MODE -eq 0 ]; then | |
| 162 | if [ -n "$CONF_FILE" ]; then | |
| 163 | if [ -s "$CONF_FILE" ]; then | |
| 164 | - | PS3="Choose wifi connection or 'q' to quit: " |
| 164 | + | printf "File $CONF_FILE exists, proceeding to connect\n" |
| 165 | WRITE_CONF "$CONF_FILE" | |
| 166 | exit 0 | |
| 167 | else | |
| 168 | printf "File $CONF_FILE is invalid or does not exist\n" | |
| 169 | CONF_CREATE | |
| 170 | exit 0 | |
| 171 | fi | |
| 172 | fi | |
| 173 | else | |
| 174 | if [ -n "$CONF_FILE" ]; then | |
| 175 | if [ -s "$CONF_FILE" ]; then | |
| 176 | WRITE_CONF "$CONF_FILE" | |
| 177 | - | select ITEM in "${LIST[@]}"; do
|
| 177 | + | exit 1 |
| 178 | else | |
| 179 | printf "File $CONF_FILE is invalid or does not exist\n" | |
| 180 | RANDOM_CONF | |
| 181 | exit 1 | |
| 182 | - | if [ -z "$ITEM" ] ; then |
| 182 | + | fi |
| 183 | else | |
| 184 | RANDOM_CONF | |
| 185 | exit 1 | |
| 186 | fi | |
| 187 | fi | |
| 188 | ||
| 189 | # | |
| 190 | - | printf "Enter the passphrase for $ITEM?\n" |
| 190 | + | |
| 191 | # separate lines in the array | |
| 192 | # | |
| 193 | OLDIFS=$IFS | |
| 194 | - | # Append the ITEM variable (ESSID) to .wpa to make a filename |
| 194 | + | |
| 195 | ||
| 196 | # | |
| 197 | - | FILENAME=$ITEM".wpa" |
| 197 | + | |
| 198 | # ref:http://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html | |
| 199 | # | |
| 200 | # " -printf '%f\n' " removes path info from outputs | |
| 201 | # | |
| 202 | # ref:http://serverfault.com/questions/354403/remove-path-from-find-command-output | |
| 203 | # | |
| 204 | - | wpa_passphrase "$ITEM" "$PASSPHRASE" > "$FILENAME" | xargs |
| 204 | + | |
| 205 | ||
| 206 | - | # Jump to write_conf function, append configuration filename |
| 206 | + | |
| 207 | - | # to ITEM varibale |
| 207 | + | |
| 208 | # | |
| 209 | - | ITEM="$FILENAME" |
| 209 | + | |
| 210 | - | write_conf |
| 210 | + | |
| 211 | # | |
| 212 | # Tests for number of saved wifi connections, if none exit | |
| 213 | # | |
| 214 | - | function write_conf (){
|
| 214 | + | |
| 215 | printf "There are no previous saved wifi connections\n" | |
| 216 | # | |
| 217 | # Create new connection | |
| 218 | - | printf "Writing new configuration file using $ITEM\n" |
| 218 | + | |
| 219 | - | cat "$ITEM">/etc/wpa_supplicant.conf | xargs |
| 219 | + | CONF_CREATE |
| 220 | exit 0 | |
| 221 | fi | |
| 222 | ||
| 223 | - | connect "$ITEM" |
| 223 | + | |
| 224 | #PS3 Sets the prompt for the select statement below | |
| 225 | # | |
| 226 | - | function connect (){
|
| 226 | + | |
| 227 | - | printf "Connecting using file $*\n" |
| 227 | + | |
| 228 | # | |
| 229 | #Select one of the previous saved configurations to connect with or quit | |
| 230 | - | # Capture incoming argument |
| 230 | + | |
| 231 | select CONF_FILE in "${SAVED_LIST[@]}"; do
| |
| 232 | - | ESSID=$* |
| 232 | + | |
| 233 | # Quit if selected number does not exist | |
| 234 | # | |
| 235 | if [ -z "$CONF_FILE" ] ; then | |
| 236 | printf "Skipping\n\n" | |
| 237 | PS3="" | |
| 238 | CONF_CREATE | |
| 239 | exit 0 | |
| 240 | fi | |
| 241 | # | |
| 242 | # Quick check if file is greater than zero length and exists | |
| 243 | # | |
| 244 | if [ -s "$CONF_FILE" ]; then | |
| 245 | printf "File $CONF_FILE exists, proceeding to connect\n" | |
| 246 | PS3="" | |
| 247 | WRITE_CONF "$CONF_FILE" | |
| 248 | exit 0 | |
| 249 | else | |
| 250 | - | # Assign new credentials to interface |
| 250 | + | printf "File $CONF_FILE is invalid or does not exist, proceeding to create a new configuration\n" |
| 251 | PS3="" | |
| 252 | CONF_CREATE | |
| 253 | - | printf "Configured interface $INT; Credential file is $ESSID\n" |
| 253 | + | exit 0 |
| 254 | fi | |
| 255 | done | |
| 256 | } | |
| 257 | ||
| 258 | ||
| 259 | function RANDOM_CONF (){
| |
| 260 | # | |
| 261 | # This function randomly select a previously saved config files, check for internet access and keep trying another | |
| 262 | # connections if internet access is not made. If and internet connection is not found, it tries another | |
| 263 | # connection. Could be used as a faiover by specifying -f as your initial preferred network. | |
| 264 | # | |
| 265 | ||
| 266 | local CONF_FILE=$1 | |
| 267 | - | # Show current ip for interface |
| 267 | + | |
| 268 | # | |
| 269 | # Test to check if RANDOM_FIRST_RUN is 1. If so then proceed to connect using the config file specified first. | |
| 270 | - | exit 0 |
| 270 | + | |
| 271 | if [ $RANDOM_FIRST_RUN -eq 1 ]; then | |
| 272 | RANDOM_FIRST_RUN=0 | |
| 273 | - | function clean_slate (){
|
| 273 | + | READ_SAVED "$CONF_FILE" |
| 274 | fi | |
| 275 | - | # Optional Clean Slate commands, it is recommended that you perform |
| 275 | + | |
| 276 | - | # a "airmon-ng check kill" to ensure that any other network managers |
| 276 | + | |
| 277 | - | # do not interfere with the connection process |
| 277 | + | # Test if INET_AVAIL is 1, initial value is 0 and if connection is good then it is 1. Used to loop and recheck for |
| 278 | # a internet connection. If there is no connection then it go to the random config selection. | |
| 279 | # | |
| 280 | - | printf "It is recommended that you perform a \"airmon-ng check kill\" once to ensure that any other network managers do not interfere with the connection process\n\n" |
| 280 | + | |
| 281 | if [ $INET_AVAIL -eq 1 ]; then | |
| 282 | # | |
| 283 | - | # Untested, airmon-ng check kill works better here |
| 283 | + | # Sleep for a random period of 600 to 900 seconds |
| 284 | # | |
| 285 | - | # service network-manager stop 2>/dev/null >/dev/null |
| 285 | + | sleep $(((RANDOM % 300)+600)) |
| 286 | - | # service avahi-daemon stop 2>/dev/null >/dev/null |
| 286 | + | PINGCHECK |
| 287 | - | # sleep 10 |
| 287 | + | RANDOM_CONF |
| 288 | - | # killall wpa_supplicant 2>/dev/null |
| 288 | + | else |
| 289 | - | # ifconfig $INT up |
| 289 | + | OLDIFS=$IFS |
| 290 | IFS=$'\n' | |
| 291 | CONF_FILE=($(find . -type f -name "*.wpa" -printf '%f\n'|sort -R |tail -1)) | |
| 292 | IFS=$OLDIFS | |
| 293 | - | # Start here |
| 293 | + | READ_SAVED "$CONF_FILE" |
| 294 | fi | |
| 295 | - | clean_slate |
| 295 | + | |
| 296 | - | read_saved |
| 296 | + | |
| 297 | ||
| 298 | ||
| 299 | function CONF_CREATE (){
| |
| 300 | # | |
| 301 | # This is a user entry prompt function, used to create new config files. | |
| 302 | # | |
| 303 | ||
| 304 | # | |
| 305 | # Scans for wifi connections & isolates wifi AP name | |
| 306 | # | |
| 307 | eval LIST=( $(iwlist $INT scan 2>/dev/null | awk -F":" '/ESSID/{print $2}') )
| |
| 308 | ||
| 309 | # | |
| 310 | #PS3 Sets the prompt for the select statement below | |
| 311 | # | |
| 312 | PS3="Choose a new ESSID to create a connection or 'q' to quit: " | |
| 313 | ||
| 314 | # | |
| 315 | # Tests for number of wifi connections, exits if none | |
| 316 | # | |
| 317 | if [ -z "${LIST[0]}" ]; then
| |
| 318 | printf "No available wifi connection using $INT\n" | |
| 319 | exit 1 | |
| 320 | fi | |
| 321 | ||
| 322 | # | |
| 323 | # Select from a LIST of scanned connections | |
| 324 | # | |
| 325 | select CONF_FILE in "${LIST[@]}"; do
| |
| 326 | ||
| 327 | # | |
| 328 | # Quit if selected number does not exist or alpha in entered | |
| 329 | # | |
| 330 | if [ -z "$CONF_FILE" ] ; then | |
| 331 | printf "Exiting\n" | |
| 332 | exit 0 | |
| 333 | fi | |
| 334 | ||
| 335 | # | |
| 336 | # Get user input for passphrase no need to escape spaces | |
| 337 | # | |
| 338 | printf "Enter the passphrase for $CONF_FILE?\n" | |
| 339 | read "PASSPHRASE" | |
| 340 | ||
| 341 | # | |
| 342 | # Append the CONF_FILE variable (ESSID) to .wpa to make a filename | |
| 343 | # for saved configs | |
| 344 | # | |
| 345 | FILENAME=$CONF_FILE".wpa" | |
| 346 | ||
| 347 | # | |
| 348 | # Run wpa_passphrase to generate a file for wpa_supplicant to | |
| 349 | # use, store it locally and in etc/wpa_supplicant.conf | |
| 350 | # | |
| 351 | printf "Running wpa_passphrase\n" | |
| 352 | wpa_passphrase "$CONF_FILE" "$PASSPHRASE" > "$FILENAME" | xargs | |
| 353 | # | |
| 354 | # Jump to WRITE_CONF function, append configuration filename | |
| 355 | # to CONF_FILE variable | |
| 356 | # | |
| 357 | ||
| 358 | PS3="" | |
| 359 | WRITE_CONF "$FILENAME" | |
| 360 | exit 1 | |
| 361 | done | |
| 362 | } | |
| 363 | ||
| 364 | ||
| 365 | function WRITE_CONF (){
| |
| 366 | ||
| 367 | local CONF_FILE=$1 | |
| 368 | # | |
| 369 | # Copy local wpa_supplicant file to etc/wpa_supplicant.conf | |
| 370 | # | |
| 371 | printf "Writing new configuration file using $CONF_FILE\n" | |
| 372 | cat "$CONF_FILE">/etc/wpa_supplicant.conf | xargs | |
| 373 | # | |
| 374 | # Jump to connect function, pass on the ESSID variable for connection | |
| 375 | # | |
| 376 | CONNECT "$CONF_FILE" | |
| 377 | exit 1 | |
| 378 | } | |
| 379 | ||
| 380 | ||
| 381 | function CONNECT (){
| |
| 382 | # | |
| 383 | # Capture first incoming argument as SSID | |
| 384 | # | |
| 385 | local ESSID=$1 | |
| 386 | ||
| 387 | # | |
| 388 | # Kill previous instances of wpa_supplicant to stop other instances | |
| 389 | # wpa_supplicant fighting several different AP's | |
| 390 | # Kill based on | |
| 391 | # ref: http://thegeekstuff.com/2011/10/grep-or-and-not-operators | |
| 392 | # and | |
| 393 | # http://stackoverflow.com/questions/3510673/find-and-kill-a-\ | |
| 394 | # process-in-one-line-using-bash-and-regex | |
| 395 | # | |
| 396 | # Release dhcp ip's and bring down the interface | |
| 397 | # | |
| 398 | kill $(ps aux | grep -E '[w]pa_supplicant.*\'$INT'' | awk '{print $2}') 2>/dev/null | xargs
| |
| 399 | dhclient $INT -r | |
| 400 | ifconfig $INT down | |
| 401 | ||
| 402 | # | |
| 403 | # Assign new credentials to config file | |
| 404 | # | |
| 405 | iwconfig $INT mode managed essid "$ESSID" | |
| 406 | printf "Configured interface $INT; Config file is $ESSID\n" | |
| 407 | ifconfig $INT up | |
| 408 | printf "Interface $INT is up\n" | |
| 409 | wpa_supplicant -B -Dwext -i$INT -c/etc/wpa_supplicant.conf 2>/dev/null | xargs | |
| 410 | printf "wpa_supplicant running, sleeping for 15...\n" | |
| 411 | ||
| 412 | # | |
| 413 | # Wait to connect before asking for a ip address | |
| 414 | # | |
| 415 | sleep 15 | |
| 416 | printf "Running dhclient\n" | |
| 417 | dhclient $INT | |
| 418 | ||
| 419 | # | |
| 420 | # Print current ip for interface to screen | |
| 421 | # | |
| 422 | ifconfig $INT | grep inet | |
| 423 | ||
| 424 | # | |
| 425 | # Check if internet is available and print status to screen | |
| 426 | # | |
| 427 | sleep 5 | |
| 428 | PINGCHECK | |
| 429 | if [ $INET_AVAIL -eq 1 ]; then | |
| 430 | printf "Internet is available on this connection\n" | |
| 431 | else | |
| 432 | printf "Internet is unavailable on this connection\n" | |
| 433 | fi | |
| 434 | ||
| 435 | if [ $RANDOM_CONF_MODE -eq 1 ]; then | |
| 436 | RANDOM_CONF | |
| 437 | fi | |
| 438 | ||
| 439 | exit 0 | |
| 440 | } | |
| 441 | ||
| 442 | ######################################################################## | |
| 443 | ######################## START HERE #################################### | |
| 444 | ||
| 445 | # | |
| 446 | # Call check args function to check the command line argument supplied are valid. | |
| 447 | # | |
| 448 | CHECK_ARGS "$@" | |
| 449 | ||
| 450 | # | |
| 451 | # Check if RANDOM_CONF_MODE is selected and/or config file specified, routes to correct function set | |
| 452 | # with file name arguments or no arguments depending on what is specified. | |
| 453 | # | |
| 454 | if [ $RANDOM_CONF_MODE -eq 1 ]; then | |
| 455 | if [ "$CONF_FILE" ]; then | |
| 456 | RANDOM_FIRST_RUN=1 | |
| 457 | RANDOM_CONF "$CONF_FILE" | |
| 458 | else | |
| 459 | RANDOM_CONF | |
| 460 | fi | |
| 461 | else | |
| 462 | if [ "$CONF_FILE" ]; then | |
| 463 | READ_SAVED "$CONF_FILE" | |
| 464 | else | |
| 465 | READ_SAVED | |
| 466 | fi | |
| 467 | fi | |
| 468 | ||
| 469 | exit 0 |