Merge remote-tracking branch 'origin/main' into documentation
This commit is contained in:
commit
a68ac1cbac
22
README.md
22
README.md
|
|
@ -1,4 +1,4 @@
|
||||||
# (WIP) Microsoft Edge (Beta) Updater
|
# Microsoft Edge Updater
|
||||||
An updater program which can install the latest available version of Microsoft Edge to non-Debian-based Linux distros.
|
An updater program which can install the latest available version of Microsoft Edge to non-Debian-based Linux distros.
|
||||||
|
|
||||||
Currently this program can only update the Beta release of Microsoft Edge for amd64 architectures.
|
Currently this program can only update the Beta release of Microsoft Edge for amd64 architectures.
|
||||||
|
|
@ -6,12 +6,15 @@ Currently this program can only update the Beta release of Microsoft Edge for am
|
||||||
## Usage
|
## Usage
|
||||||
```
|
```
|
||||||
Usage: updater [OPTION]
|
Usage: updater [OPTION]
|
||||||
Microsoft Edge Updater (0.1.3) - An updater program which can install the latest available version of Microsoft Edge to non-Debian-based Linux distros.
|
Microsoft Edge Updater (0.1.4) - An updater program which can install the latest available version of Microsoft Edge to non-Debian-based Linux distros.
|
||||||
|
|
||||||
DISCLAIMER: Currently this program can only update the Beta release of Microsoft Edge for amd64 architectures.
|
DISCLAIMER: Currently this program can only update the Beta release of Microsoft Edge for amd64 architectures.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-nn, --no-notify Prevent notifications from being set after a session.
|
-nn, --no-notify Prevent notifications from being set after a session.
|
||||||
|
--mode= Set the mode of the program to be ran in. Default mode
|
||||||
|
occurs without this flag.
|
||||||
|
* debug - run program in debug mode.
|
||||||
-y, --yes-all Assume yes to all yes/no decisions.
|
-y, --yes-all Assume yes to all yes/no decisions.
|
||||||
-v, --version Print out the version of the script and exit.
|
-v, --version Print out the version of the script and exit.
|
||||||
-h, --help Print this help message and exit
|
-h, --help Print this help message and exit
|
||||||
|
|
@ -19,8 +22,19 @@ Options:
|
||||||
|
|
||||||
## Information
|
## Information
|
||||||
* Program Name - Microsoft Edge Updater
|
* Program Name - Microsoft Edge Updater
|
||||||
* Script Name - updater
|
* Script Name - `updater`
|
||||||
* Version - 0.1.3 (Beta)
|
* Version - 0.1.4
|
||||||
* Synopsis - update Microsoft Edge (Beta) to the latest release.
|
* Synopsis - update Microsoft Edge (Beta) to the latest release.
|
||||||
* Author(s) - Ethan Smith-Coss (No contact)
|
* Author(s) - Ethan Smith-Coss (No contact)
|
||||||
|
* Contributors - Robert Morrison, Documentation
|
||||||
* License - GNU GPLv3+
|
* License - GNU GPLv3+
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
For more in-depth documentation on `updater`, view the manpage in markdown form [here](https://robmc.duckdns.org/git/TheOnePath/Microsoft-Edge-Updater/src/branch/main/updater.1.md).
|
||||||
|
Alternatively you can view the manpage from your terminal by downloading the project.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git clone https://robmc.duckdns.org/git/TheOnePath/Microsoft-Edge-Updater
|
||||||
|
$ cd Microsoft-Edge-Updater/
|
||||||
|
$ man ./updater.1
|
||||||
|
```
|
||||||
|
|
|
||||||
38
updater
38
updater
|
|
@ -4,10 +4,14 @@
|
||||||
# updater - Automatically update Microsoft Edge on Solus #
|
# updater - Automatically update Microsoft Edge on Solus #
|
||||||
# #
|
# #
|
||||||
# Dependencies: #
|
# Dependencies: #
|
||||||
|
# bash #
|
||||||
# wget #
|
# wget #
|
||||||
|
# git #
|
||||||
# gunzip #
|
# gunzip #
|
||||||
# tar #
|
# tar #
|
||||||
# sort (coreutils >= 8.32) #
|
# coreutils (>= 8.32) #
|
||||||
|
# binutils (>=2.35.1) #
|
||||||
|
# procps (only BusyBox-based systems) #
|
||||||
# notify-send #
|
# notify-send #
|
||||||
# #
|
# #
|
||||||
# #
|
# #
|
||||||
|
|
@ -18,7 +22,7 @@
|
||||||
# Author: Ethan Smith-Coss #
|
# Author: Ethan Smith-Coss #
|
||||||
# Version: 0.1.4 #
|
# Version: 0.1.4 #
|
||||||
# Created: 2021-05-20T16:47+0100 #
|
# Created: 2021-05-20T16:47+0100 #
|
||||||
# Last Modified: 2021-06-21T18:23+0100 #
|
# Last Modified: 2021-06-22T17:18+0100 #
|
||||||
# #
|
# #
|
||||||
# #################################### #
|
# #################################### #
|
||||||
# #
|
# #
|
||||||
|
|
@ -50,10 +54,12 @@ $prog_name ($version) - An updater program which can install the latest availabl
|
||||||
DISCLAIMER: Currently this program can only update the Beta release of Microsoft Edge for amd64 architectures.
|
DISCLAIMER: Currently this program can only update the Beta release of Microsoft Edge for amd64 architectures.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-nn, --no-notify Prevent notifications from being set after a session.
|
-nn, --no-notify Prevent notifications from being set after a session.
|
||||||
-y, --yes-all Assume yes to all yes/no decisions.
|
--mode=[debug] Set the mode of the program to be ran in. Default mode occurs without this flag.
|
||||||
-v, --version Print out the version of the script and exit.
|
* debug - run program in debug mode.
|
||||||
-h, --help Print this help message and exit
|
-y, --yes-all Assume yes to all yes/no decisions.
|
||||||
|
-v, --version Print out the version of the script and exit.
|
||||||
|
-h, --help Print this help message and exit
|
||||||
"
|
"
|
||||||
|
|
||||||
runtime_dir=$(realpath "${BASH_SOURCE[0]}" | xargs -r dirname)
|
runtime_dir=$(realpath "${BASH_SOURCE[0]}" | xargs -r dirname)
|
||||||
|
|
@ -65,10 +71,11 @@ garbage="$tmp_path/garbage.tmp"
|
||||||
## program timer
|
## program timer
|
||||||
SECONDS=0
|
SECONDS=0
|
||||||
|
|
||||||
|
## create the logs directory and tmp location if they don't already exist
|
||||||
[[ ! -d "$logs_dir" ]] && mkdir "$logs_dir"
|
[[ ! -d "$logs_dir" ]] && mkdir "$logs_dir"
|
||||||
[[ ! -d "$tmp_path" ]] && mkdir "$tmp_path"
|
[[ ! -d "$tmp_path" ]] && mkdir "$tmp_path"
|
||||||
|
|
||||||
|
# function responsible for cleaning up after a session execution
|
||||||
function clean_up {
|
function clean_up {
|
||||||
log "DEBUG" "EXIT signal was raised, cleaning up system after session before exiting..." "$log_file"
|
log "DEBUG" "EXIT signal was raised, cleaning up system after session before exiting..." "$log_file"
|
||||||
printf "Cleaning up system after session..."
|
printf "Cleaning up system after session..."
|
||||||
|
|
@ -93,6 +100,7 @@ function clean_up {
|
||||||
[[ $debug_run -eq 0 ]] && cat "$logs_dir/updater.log"
|
[[ $debug_run -eq 0 ]] && cat "$logs_dir/updater.log"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ensure that the restoration was sucessful in reverting the system back
|
||||||
function check_restoration {
|
function check_restoration {
|
||||||
[[ ! $1 -eq 0 ]] && { echo -e "failed.\nThere was an error trying to restore system files." \
|
[[ ! $1 -eq 0 ]] && { echo -e "failed.\nThere was an error trying to restore system files." \
|
||||||
"Either there no back was made or another issue occurred. Consult $log_file for more information." ; exit $1 ; }
|
"Either there no back was made or another issue occurred. Consult $log_file for more information." ; exit $1 ; }
|
||||||
|
|
@ -102,6 +110,7 @@ function check_restoration {
|
||||||
"Consult $log_file for more information. Exiting..."
|
"Consult $log_file for more information. Exiting..."
|
||||||
[[ ! $nn_flag -eq 0 ]] && notify "Microsoft Edge (Beta) Update" "There was an issue installing the update to your system." \
|
[[ ! $nn_flag -eq 0 ]] && notify "Microsoft Edge (Beta) Update" "There was an issue installing the update to your system." \
|
||||||
"The previous version, v$current_version, has been restored."
|
"The previous version, v$current_version, has been restored."
|
||||||
|
echo "$backup_file" >>"$garbage"
|
||||||
}
|
}
|
||||||
|
|
||||||
## iterate over all user inputs
|
## iterate over all user inputs
|
||||||
|
|
@ -147,7 +156,7 @@ log "DEBUG" "The yes flag has been set to: $yes_flag." "$log_file"
|
||||||
## setup the no-notify (nn) flag if notify-send isn't installed
|
## setup the no-notify (nn) flag if notify-send isn't installed
|
||||||
command -v notify-send >/dev/null 2>&1 || nn_flag=0
|
command -v notify-send >/dev/null 2>&1 || nn_flag=0
|
||||||
nn_flag=${nn_flag:-1}
|
nn_flag=${nn_flag:-1}
|
||||||
## set the testing flag if not already
|
## set the debugging flag if not already
|
||||||
debug_run=${debug_run:-1}
|
debug_run=${debug_run:-1}
|
||||||
[[ $debug_run -eq 0 ]] && log "DEBUG" "The mode flag has been set so script will operate in debug mode." "$log_file"
|
[[ $debug_run -eq 0 ]] && log "DEBUG" "The mode flag has been set so script will operate in debug mode." "$log_file"
|
||||||
|
|
||||||
|
|
@ -199,8 +208,7 @@ exit_code=$?
|
||||||
[[ ! $exit_code -eq 0 ]] && { echo "There was an issue retrieving the package contents for the update. Please check $log_file/updater.log, so more information. Exiting..." ;
|
[[ ! $exit_code -eq 0 ]] && { echo "There was an issue retrieving the package contents for the update. Please check $log_file/updater.log, so more information. Exiting..." ;
|
||||||
log "ERROR" "Encountered an issue with wget. Exiting...(4)" "$log_file" ; exit 4 ; }
|
log "ERROR" "Encountered an issue with wget. Exiting...(4)" "$log_file" ; exit 4 ; }
|
||||||
log "DEBUG" "Successfully downloaded release contents information." "$log_file"
|
log "DEBUG" "Successfully downloaded release contents information." "$log_file"
|
||||||
|
## decompress the packages file
|
||||||
### :@TODO: continue with TODO list. Finish off above code section to ensure wget is successful and logging appropriately.
|
|
||||||
log "DEBUG" "Uncompressing downloaded gz file using gunzip, $tmp_path/Packages.gz..." "$log_file"
|
log "DEBUG" "Uncompressing downloaded gz file using gunzip, $tmp_path/Packages.gz..." "$log_file"
|
||||||
## force gunzip to overwrite decompressed file if it already exists
|
## force gunzip to overwrite decompressed file if it already exists
|
||||||
gunzip -f "$tmp_path/Packages.gz" "$tmp_path/Contents-$archi.gz" >/dev/null 2>&1
|
gunzip -f "$tmp_path/Packages.gz" "$tmp_path/Contents-$archi.gz" >/dev/null 2>&1
|
||||||
|
|
@ -328,8 +336,8 @@ if [[ ! -f "$tmp_path/$filename" ]] ; then
|
||||||
"Please check $logs_dir/updater.log, for more information. Exiting update..." ;
|
"Please check $logs_dir/updater.log, for more information. Exiting update..." ;
|
||||||
log "DEBUG" "Encountered an issue with wget. Exiting...(6)" "$log_file" ; exit 6 ; }
|
log "DEBUG" "Encountered an issue with wget. Exiting...(6)" "$log_file" ; exit 6 ; }
|
||||||
awk -v end=$(grep -n '^\s*$' "$tmp_path/wget_dump.log" | tr '\n' ' ' | cut -d: -f1) 'NR>1*0&&NR<1*end+1' "$tmp_path/wget_dump.log" >> "$log_file"
|
awk -v end=$(grep -n '^\s*$' "$tmp_path/wget_dump.log" | tr '\n' ' ' | cut -d: -f1) 'NR>1*0&&NR<1*end+1' "$tmp_path/wget_dump.log" >> "$log_file"
|
||||||
log "DEBUG" "Download completed successfully in $(echo $wget_timed | cut -d' ' -f2)s, wget log below." "$log_file"
|
log "DEBUG" "Download completed successfully, wget log shown above." "$log_file"
|
||||||
printf "Download complete in $(echo $wget_timed | cut -d' ' -f2)s. Validating checksums..."
|
printf "Download complete. Validating checksums..."
|
||||||
else
|
else
|
||||||
log "DEBUG" "File already downloaded to system. Skipped download and verifying checksum..." "$log_file"
|
log "DEBUG" "File already downloaded to system. Skipped download and verifying checksum..." "$log_file"
|
||||||
printf "Latest Debian release file is downloaded to the system, skipping download. Validating checksums..."
|
printf "Latest Debian release file is downloaded to the system, skipping download. Validating checksums..."
|
||||||
|
|
@ -371,7 +379,6 @@ rm -r "$tmp_path/etc/"
|
||||||
echo "$tmp_path/data.tar.xz" >> "$garbage"
|
echo "$tmp_path/data.tar.xz" >> "$garbage"
|
||||||
|
|
||||||
# compress archive the currently installed version of Edge (Beta) for restoration on failure
|
# compress archive the currently installed version of Edge (Beta) for restoration on failure
|
||||||
## :@TODO: compress everything on the system for a backup. Remove it if installation of new version was successful
|
|
||||||
log "DEBUG" "Creating an archive gzip tarball of system /opt/ and /usr/ directories..." "$log_file"
|
log "DEBUG" "Creating an archive gzip tarball of system /opt/ and /usr/ directories..." "$log_file"
|
||||||
printf "Installing new version to system. This may take a few minutes..."
|
printf "Installing new version to system. This may take a few minutes..."
|
||||||
archive_system "microsoft/msedge-beta"
|
archive_system "microsoft/msedge-beta"
|
||||||
|
|
@ -385,7 +392,7 @@ fi
|
||||||
log "DEBUG" "Successfully created an archive gzip tarball of the system. Safe to continue with installation." "$log_file"
|
log "DEBUG" "Successfully created an archive gzip tarball of the system. Safe to continue with installation." "$log_file"
|
||||||
|
|
||||||
### :@NOTE: used to terminate the program at a certain point for incremental testing of functionality recently added up to the point of this exit.
|
### :@NOTE: used to terminate the program at a certain point for incremental testing of functionality recently added up to the point of this exit.
|
||||||
#exit 0
|
### exit 0
|
||||||
|
|
||||||
# install the new version to system
|
# install the new version to system
|
||||||
log "DEBUG" "Copying files to there appropriate location..." "$log_file"
|
log "DEBUG" "Copying files to there appropriate location..." "$log_file"
|
||||||
|
|
@ -440,8 +447,11 @@ if [[ "$(microsoft-edge-beta --version | cut -d' ' -f3)" != "$release_version" ]
|
||||||
exit 11
|
exit 11
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
## end of update. Inform user of time taken to complete, notify and log.
|
||||||
elapsed_time=$SECONDS
|
elapsed_time=$SECONDS
|
||||||
script_time="$(($elapsed_time / 60))m $(($elapsed_time % 60))s"
|
script_time="$(($elapsed_time / 60))m $(($elapsed_time % 60))s"
|
||||||
log "DEBUG" "Installation and update was successful (completed in: $script_time) and system can be cleaned up to remove any waste." "$log_file"
|
log "DEBUG" "Installation and update was successful (completed in: $script_time) and system can be cleaned up to remove any waste." "$log_file"
|
||||||
echo "Microsoft Edge (Beta) has been successfully updated to the latest version: v$current_version -> v$release_version, in $script_time."
|
echo "Microsoft Edge (Beta) has been successfully updated to the latest version: v$current_version -> v$release_version, in $script_time."
|
||||||
[[ ! $nn_flag -eq 0 ]] && notify "Microsoft Edge (Beta) Update" "Successfully updated Microsoft Edge (Beta) to the latest version: v$release_version"
|
[[ ! $nn_flag -eq 0 ]] && notify "Microsoft Edge (Beta) Update" "Successfully updated Microsoft Edge (Beta) to the latest version: v$release_version"
|
||||||
|
|
||||||
|
# exit of script, clean up function is called now by default exit of script (EOF)
|
||||||
|
|
|
||||||
21
utils/common
21
utils/common
|
|
@ -3,13 +3,15 @@
|
||||||
# common - Utility file with common functions for updater #
|
# common - Utility file with common functions for updater #
|
||||||
# #
|
# #
|
||||||
# Dependencies: #
|
# Dependencies: #
|
||||||
|
# bash #
|
||||||
|
# coreutils (>=8.32) #
|
||||||
# tar #
|
# tar #
|
||||||
# #
|
# #
|
||||||
# #
|
# #
|
||||||
# Author: Ethan Smith-Coss #
|
# Author: Ethan Smith-Coss #
|
||||||
# Version: 0.1.4 #
|
# Version: 0.1.4 #
|
||||||
# Created: 2021-05-20T16:47+0100 #
|
# Created: 2021-05-20T16:47+0100 #
|
||||||
# Last Modified: 2021-06-21T15:06+0100 #
|
# Last Modified: 2021-06-22T16:57+0100 #
|
||||||
# #
|
# #
|
||||||
# #################################### #
|
# #################################### #
|
||||||
# #
|
# #
|
||||||
|
|
@ -31,6 +33,7 @@
|
||||||
# #
|
# #
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
# logging function called to log information to a file.
|
||||||
function log {
|
function log {
|
||||||
local log_out=$(realpath "${0%/*}/.log.1")
|
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 0 ]] && log "ERROR" "Log function was called without any arguments. Returning 1." "$log_out" && return 1
|
||||||
|
|
@ -41,6 +44,7 @@ function log {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# archive function used to create an archive compression of Microsoft Edge
|
||||||
function archive_system {
|
function archive_system {
|
||||||
local log_out=$(realpath "${0%/*}/.log.1")
|
local log_out=$(realpath "${0%/*}/.log.1")
|
||||||
[[ -e $1 ]] && log "ERROR" "Archive function was called without any arguments." "$log_out"
|
[[ -e $1 ]] && log "ERROR" "Archive function was called without any arguments." "$log_out"
|
||||||
|
|
@ -48,10 +52,11 @@ function archive_system {
|
||||||
local archive_output="/tmp/microsoft-edge-autoupdater/$(echo $1 | sed 's/\//_/').tar.gz"
|
local archive_output="/tmp/microsoft-edge-autoupdater/$(echo $1 | sed 's/\//_/').tar.gz"
|
||||||
[[ -f "$archive_output" ]] && return 0
|
[[ -f "$archive_output" ]] && return 0
|
||||||
|
|
||||||
|
## identify the files required for compressing
|
||||||
usr_files="$(grep -E '^usr/.*beta.*$' "/tmp/microsoft-edge-autoupdater/Contents-amd64" | awk '{print "/" $1}')"
|
usr_files="$(grep -E '^usr/.*beta.*$' "/tmp/microsoft-edge-autoupdater/Contents-amd64" | awk '{print "/" $1}')"
|
||||||
opt_files="$(ls -1 "/opt/$1/" | sed -E "s/^(.*)$/\/opt\/"$(echo $1 | sed 's/\//\\\//')"\/\1/g")"
|
opt_files="$(ls -1 "/opt/$1/" | sed -E "s/^(.*)$/\/opt\/"$(echo $1 | sed 's/\//\\\//')"\/\1/g")"
|
||||||
## :@Ethan: we need to identify all the symlinked files and store them in a record. When we decompress we reinstate the symlinks.
|
### :@Ethan: we need to identify all the symlinked files and store them in a record. When we decompress we reinstate the symlinks.
|
||||||
## This file is included in the archive and tar will dereference symlink files.
|
## This file is only stored temporarily and any symlinks will be removed from the identified files for compression.
|
||||||
symlink_record="/tmp/microsoft-edge-autoupdater/symlink-record"
|
symlink_record="/tmp/microsoft-edge-autoupdater/symlink-record"
|
||||||
ls -l $opt_files $usr_files | grep -Eo ':.*->.*$' | sed 's/\s->\s/:/g' | cut -d' ' -f2- > "$symlink_record"
|
ls -l $opt_files $usr_files | grep -Eo ':.*->.*$' | sed 's/\s->\s/:/g' | cut -d' ' -f2- > "$symlink_record"
|
||||||
|
|
||||||
|
|
@ -62,6 +67,7 @@ function archive_system {
|
||||||
[[ "$record" =~ \/opt\/ ]] && record=$(echo $record | sed 's/\//\\\//g') && opt_files=$(echo "$opt_files" | sed "s/^"$record"$//")
|
[[ "$record" =~ \/opt\/ ]] && record=$(echo $record | sed 's/\//\\\//g') && opt_files=$(echo "$opt_files" | sed "s/^"$record"$//")
|
||||||
done < <(cat $symlink_record)
|
done < <(cat $symlink_record)
|
||||||
|
|
||||||
|
## use gzip compression to create the tarball archive
|
||||||
tar --overwrite -czf "$archive_output" $opt_files $usr_files > "/tmp/microsoft-edge-autoupdater/tar_dump.log" 2>>"$log_out"
|
tar --overwrite -czf "$archive_output" $opt_files $usr_files > "/tmp/microsoft-edge-autoupdater/tar_dump.log" 2>>"$log_out"
|
||||||
exit_code=$?
|
exit_code=$?
|
||||||
[[ ! $exit_code -eq 0 ]] && { log "ERROR" "(Archive) There was an issue creating the archive file of system. Returning...(10)" "$log_out" ; return 10 ; }
|
[[ ! $exit_code -eq 0 ]] && { log "ERROR" "(Archive) There was an issue creating the archive file of system. Returning...(10)" "$log_out" ; return 10 ; }
|
||||||
|
|
@ -69,23 +75,26 @@ function archive_system {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# restoration function called at any point when the update fails during an installation process.
|
||||||
function restore_files {
|
function restore_files {
|
||||||
local log_out=$(realpath "${0%/*}/.log.1")
|
local log_out=$(realpath "${0%/*}/.log.1")
|
||||||
[[ -e $1 ]] && log "ERROR" "Restore function was called without any arguments." "$log_out"
|
[[ -e $1 ]] && log "ERROR" "Restore function was called without any arguments." "$log_out"
|
||||||
local backup_file="/tmp/microsoft-edge-autoupdater/$1.tar.gz"
|
backup_file="/tmp/microsoft-edge-autoupdater/$1.tar.gz"
|
||||||
[[ ! -f "$backup_file" ]] && { log "ERROR" "There is no backup of Microsoft Edge (Beta) identified. Restoration not possible." "$log_out" ; return 12 ; }
|
[[ ! -f "$backup_file" ]] && { log "ERROR" "There is no backup of Microsoft Edge (Beta) identified. Restoration not possible." "$log_out" ; return 12 ; }
|
||||||
|
|
||||||
|
## decompress the tarball archive using gzip and overwrite all files in the archive on the system
|
||||||
tar --overwrite -xzf "$backup_file" -C "/" > "/tmp/microsoft-edge-autoupdater/tar_dump.log" 2>>"$log_out"
|
tar --overwrite -xzf "$backup_file" -C "/" > "/tmp/microsoft-edge-autoupdater/tar_dump.log" 2>>"$log_out"
|
||||||
exit_code=$?
|
exit_code=$?
|
||||||
[[ ! $exit_code -eq 0 ]] && { log "ERROR" "There was an issue restoring pervious files to system." \
|
[[ ! $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 ; }
|
"The backup created will not be removed to allow for manual restoration. Returning...(12)" ; return 12 ; }
|
||||||
|
|
||||||
|
## recreate the symlinks
|
||||||
log "DEBUG" "Re-establishing symlinks..." "$log_out"
|
log "DEBUG" "Re-establishing symlinks..." "$log_out"
|
||||||
symlink_record="/tmp/microsoft-edge-autoupdater/symlink-record"
|
symlink_record="/tmp/microsoft-edge-autoupdater/symlink-record"
|
||||||
while read -r record ; do
|
while read -r record ; do
|
||||||
symlink="$(echo $record | cut -d':' -f1)"
|
symlink="$(echo $record | cut -d':' -f1)"
|
||||||
symlink_to="$(echo $record | cut -d':' -f2)"
|
symlink_to="$(echo $record | cut -d':' -f2)"
|
||||||
## :NOTE: symlinks may already exist from new update and theoretically could be different in a newer version. Remove them first
|
### :NOTE: symlinks may already exist from new update and theoretically could be different in a newer version. Remove them first
|
||||||
rm "$symlink"
|
rm "$symlink"
|
||||||
## create new sylinks based on the restored files
|
## create new sylinks based on the restored files
|
||||||
ln -s "$symlink_to" "$symlink" >/dev/null 2>>"$log_out"
|
ln -s "$symlink_to" "$symlink" >/dev/null 2>>"$log_out"
|
||||||
|
|
@ -98,8 +107,8 @@ function restore_files {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# notification function used to send the user a notification via the dbus
|
||||||
function notify {
|
function notify {
|
||||||
## :@TODO: implement notification system.
|
|
||||||
local log_out=$(realpath "${0%/*}/.log.1")
|
local log_out=$(realpath "${0%/*}/.log.1")
|
||||||
[[ $# -eq 0 ]] && log "ERROR" "Notify function was called without any arguments. Returning 1." "$log_out" && return 1
|
[[ $# -eq 0 ]] && log "ERROR" "Notify function was called without any arguments. Returning 1." "$log_out" && return 1
|
||||||
[[ ! $# -eq 2 ]] && log "ERROR" "Notify function expected at least 2 arguments, recieved $#. Returning 1." "$log_out" && return 1
|
[[ ! $# -eq 2 ]] && log "ERROR" "Notify function expected at least 2 arguments, recieved $#. Returning 1." "$log_out" && return 1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user