Added the GNU GPLv3 preamble for licencing software program files. Adjusted existing preamble to accommodate this license.
73 lines
4.1 KiB
Bash
Executable File
73 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#########################################################################
|
|
# common - Utility file with common functions for updater #
|
|
# #
|
|
# Dependencies: #
|
|
# tar #
|
|
# #
|
|
# #
|
|
# Author: Ethan Smith-Coss #
|
|
# Version: 0.1.2 #
|
|
# Created: 2021-05-20T16:47+0100 #
|
|
# Last Modified: 2021-05-23T23:06+0100 #
|
|
# #
|
|
# #################################### #
|
|
# #
|
|
# common - Utility file with common functions for updater #
|
|
# Copyright ©️ 2021 Ethan Smith-Coss #
|
|
# #
|
|
# This program is free software: you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License as published by #
|
|
# the Free Software Foundation, either version 3 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
# This program is distributed in the hope that it will be useful, #
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
|
# GNU General Public License for more details. #
|
|
# #
|
|
# You should have received a copy of the GNU General Public License #
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
|
# #
|
|
#########################################################################
|
|
|
|
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
|
|
}
|