linux3backup.bash
#!/usr/bin/env bash
function backup_generate_config(){
configFile=""
sourceDir=""
backupDir=""
msg_notice "Creating Config File"
msg_instruct "Enter absolute paths"
# Location to backup sourcedir to
while [[ ! -d "$(dirname "$configFile")" || -z "$configFile" ]]; do
prompt "Config File Destination" configFile
configFile="$(expand_tilde_path "$configFile")"
done
while [[ ! -d "$sourceDir" ]]; do
prompt "Directory to backup" sourceDir
sourceDir="$sourceDir/"
done
# Location to backup sourcedir to
while [[ ! -d "$backupDir" ]]; do
prompt "Backup Destination Dir" backupDir
backupDir="${backupDir%/}"
done
excludesListFile=""
useExcludesFile=true
while [[ ! -f "$excludesListFile" ]]; do
prompt "rsync excludes file (s-skip)" excludesListFile
if [[ "$excludesListFile" == "s" ]];then
useExcludesFile=false
excludesListFile=""
break;
fi
done
echo "#!/usr/bin/env bash" > "${configFile}"
echo "sourceDir=\"${sourceDir}\"" >> "${configFile}"
echo "backupDir=\"${backupDir}\"" >> "${configFile}"
echo "excludesListFile=\"${excludesListFile}\"" >> "${configFile}"
echo "useExcludesFile=$useExcludesFile" >> "${configFile}"
msg_instruct "${configFile} saved"
}