Add --url option to download/extract adguard archive
This commit is contained in:
		
							parent
							
								
									42356201ca
								
							
						
					
					
						commit
						15589b0a0c
					
				|  | @ -49,6 +49,9 @@ EXAMPLE : | |||
|     - Specify the path to AdGuardHome binary | ||||
|         check.adguard.update --bin /home/adguard/AdGuardHome/AdGuardHome | ||||
| 
 | ||||
|     - Download ARMv7 version if it's a newer version | ||||
|         check.adguard.update --url "https://static.adguard.com/adguardhome/release/AdGuardHome_linux_armv7.tar.gz" | ||||
| 
 | ||||
| OPTIONS : | ||||
|     -b,--bin | ||||
|         Specify the path of AdGuard Home's binary | ||||
|  | @ -58,6 +61,11 @@ OPTIONS : | |||
|         Set the path to the temp file that will be create and | ||||
|         that should be monitored (default: ${ADGUARD_NEW_VERSION_FILE_DEFAULT}). | ||||
| 
 | ||||
|     -u,--url | ||||
|         Set the URL to use to download the last version of AdGuard Home (default: empty). | ||||
|         See the list of possible URLs on : | ||||
|         https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started | ||||
| 
 | ||||
|     -d,--debug | ||||
|         Enable debug messages. | ||||
| 
 | ||||
|  | @ -116,6 +124,23 @@ Test var: ${1}." | |||
| 
 | ||||
| } | ||||
| # }}} | ||||
| is_var_nonempty() {                                             # {{{ | ||||
| 
 | ||||
| 	local_var_nonempty="${1}" | ||||
| 
 | ||||
| 	## Return False by default | ||||
| 	return_var_nonempty="1" | ||||
| 
 | ||||
| 	debug_message "is_var_nonempty − \ | ||||
| Test var: ${1}." | ||||
| 	### Test if var lenght is nonzero and set return value to True | ||||
| 	[ -n "${local_var_nonempty}" ] && return_var_nonempty="0" | ||||
| 
 | ||||
| 	unset local_var_nonempty | ||||
| 
 | ||||
| 	return "${return_var_nonempty}" | ||||
| } | ||||
| # }}} | ||||
| define_vars() {                                                 # {{{ | ||||
| 
 | ||||
| 	## If adguard_bin wasn't defined (argument,...) {{{ | ||||
|  | @ -146,26 +171,41 @@ main() {                                                        # {{{ | |||
| 	## Define all vars according to selected options | ||||
| 	define_vars | ||||
| 
 | ||||
| 	## Test adguard_current_version | ||||
| 	## Test adguard_current_version {{{ | ||||
| 	##   AND exit with error 2 | ||||
| 	is_var_empty "${adguard_current_version}" \ | ||||
| 		&& error_message "adguard_current_version seems empty (${adguard_current_version})." 2 | ||||
| 	## }}} | ||||
| 
 | ||||
| 	## Test adguard_new_version | ||||
| 	## Test adguard_new_version {{{ | ||||
| 	##   AND exit with error 3 | ||||
| 	is_var_empty "${adguard_new_version}" \ | ||||
| 		&& error_message "adguard_new_version seems empty (${adguard_new_version}), exit without error." 3 | ||||
| 	## }}} | ||||
| 
 | ||||
| 	## Check if the current version is the last one {{{ | ||||
| 	if [ "${adguard_current_version}" != "${adguard_new_version}" ]; then | ||||
| 		debug_message "Test AdGuard Home version − \ | ||||
| Current version (${adguard_current_version}) and new one (${adguard_new_version}) seems to be different." | ||||
| 
 | ||||
| 		## Create a temp file to monitor | ||||
| 		## Create a temp file to monitor {{{ | ||||
| 		debug_message "Test AdGuard Home version − \ | ||||
| Create ${adguard_new_version_file} temp file to monitore." | ||||
| 		touch -- "${adguard_new_version_file}" | ||||
| 		printf '\e[1;35m%-6s\e[m\n' "An upgrade is available for AdGuard Home (current : ${adguard_current_version}) : ${adguard_new_version}." >> "${adguard_new_version_file}" | ||||
| 		## }}} | ||||
| 
 | ||||
| 		## If an URL was set {{{ | ||||
| 		if is_var_nonempty "${adguard_new_version_url}"; then | ||||
| 			debug_message "Download AdGuard Home new version − \ | ||||
| Download new archive from ${adguard_new_version_url} and extract to /tmp/ ." | ||||
| 			#wget --quiet "${adguard_new_version_url}" -O - | tar xz --transform="s/AdGuardHome/AdGuardHome.to.upgrade/g" --strip-components 2 | ||||
| 			wget --quiet "${adguard_new_version_url}" -O - | tar --extract --gzip --directory=/tmp --strip-components 2 ./AdGuardHome | ||||
| 			#mv AdGuardHome.to.upgrade "${adguard_bin}.to.upgrade" | ||||
| 			mv --force /tmp/AdGuardHome "${adguard_bin}.to.upgrade" \ | ||||
| 				|| error_message "Can't move /tmp/AdGuardHome to ${adguard_bin}.to.upgrade ."  4 | ||||
| 		fi | ||||
| 		## }}} | ||||
| 
 | ||||
| 	else | ||||
| 		debug_message "Test AdGuard Home version − \ | ||||
|  | @ -215,6 +255,12 @@ if [ ! "${NBARGS}" -eq "0" ]; then | |||
| 			## Define adguard_new_version_file | ||||
| 			adguard_new_version_file="${1}" | ||||
| 			;; | ||||
| 		-u|--url )             ## Set new version URL | ||||
| 			## Move to the next argument | ||||
| 			shift | ||||
| 			## Define adguard_new_version_url | ||||
| 			adguard_new_version_url="${1}" | ||||
| 			;; | ||||
| 		-- )                   ## End of options list | ||||
| 			## End the while loop | ||||
| 			break | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue