All the files associated with Microsoft Edge Updater have been added to this repository to allow for version control as of this point and for other users to start using/testing the program. There are no previous commits in the history for these files; however, further development will be continued and committed to this repo. Currently the program is at version 0.1.2 in beta phase of development and currently stable as of minimal testing.
54 lines
2.6 KiB
Bash
Executable File
54 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
###########################################################
|
|
# common - Utility file with common functions for updater #
|
|
# #
|
|
# Dependencies: #
|
|
# tar #
|
|
# #
|
|
# #
|
|
# Author: Ethan Smith-Coss #
|
|
# Version: 0.1.1 #
|
|
# Created: 2021-05-20T16:47+0100 #
|
|
# Last Modified: 2021-05-22T23:23+0100 #
|
|
###########################################################
|
|
|
|
function log {
|
|
local log_out=$(realpath "${0%/*}/../.log.1")
|
|
[[ $# -eq 0 ]] && log "ERROR" "Log function was called without any arguments. Returning 1." "$log_out" && return 1
|
|
[[ ! $# -eq 3 ]] && log "ERROR" "Log function expected at least 3 arguments, recieved $#. Returning 1." "$log_out" && return 1
|
|
$(echo "$(date -Iseconds) ($1): $2" >> "$3") >/dev/null 2>&1
|
|
[[ ! $? -eq 0 ]] && log "ERROR" "Log function encountered an issue writing to \"$3\". Returning 1." "$log_out" && return 1
|
|
|
|
return 0
|
|
}
|
|
|
|
function archive_system {
|
|
local log_out=$(realpath "${0%/*}/../.log.1")
|
|
[[ -e $1 ]] && log "ERROR" "Archive function was called without any arguments." "$log_out"
|
|
|
|
local archive_output="$/tmp/microsoft-edge-autoupdater/$(echo $1 | sed 's/\//_/').tar.gz"
|
|
[[ -f "$archive_output" ]] && return 0
|
|
|
|
exit_code=$(grep 'usr/.*' "/tmp/microsoft-edge-autoupdater/Contents-amd64" | tar --overwrite -cvzf "$archive_output" "/opt/$1/" >>"$log_out" 2>&1 )
|
|
[[ ! $exit_code -eq 0 ]] && { log "ERROR" "(Archive) There was an issue creating the archive file of system. Returning...(10)" "$log_out" ; return 10 ; }
|
|
|
|
return 0
|
|
}
|
|
|
|
function restore_files {
|
|
local log_out=$(realpath "${0%/*}/../.log.1")
|
|
[[ -e $1 ]] && log "ERROR" "Restore function was called without any arguments." "$log_out"
|
|
local backup_file="/tmp/microsoft-edge-autoupdater/$(echo $1 | 's/\/_/').tar.gz"
|
|
[[ -f "$backup_file" ]] && { log "ERROR" "There is no backup of Microsoft Edge (Beta) identified. Restoration not possible." "$log_out" ; return 12 ; }
|
|
exit_code=$( tar -xvzf "$backup_file" "/" >>"$log_out" 2>&1)
|
|
[[ ! $exit_code -eq 0 ]] && { log "ERROR" "There was an issue restoring pervious files to system." \
|
|
"The backup created will not be removed to allow for manual restoration. Returning...(12)" ; return 12 ; }
|
|
|
|
return 0
|
|
}
|
|
|
|
function notify {
|
|
## :@TODO: implement notification system.
|
|
return 0
|
|
}
|