sup -> ufw
This commit is contained in:
		| @@ -16,11 +16,11 @@ The help information that the scripts give is dynamic and is provided here only | ||||
| Scripts | ||||
| ======= | ||||
|  | ||||
| sup | ||||
| ufw | ||||
| --- | ||||
| A very simple tool to upload files to the zfh.so file hosting | ||||
|  | ||||
| 	Usage: sup [-RsF] [-D num] [file/url]" | ||||
| 	Usage: ufw [-RsF] [-D num] [file/url]" | ||||
| 	Flags: | ||||
| 	    -R                   # Remove the file after uploading. | ||||
| 	    -s                   # Make a screenshot and upload it instead of a file. | ||||
| @@ -29,7 +29,7 @@ A very simple tool to upload files to the zfh.so file hosting | ||||
| 	    -p                   # Make the file private. Requires $secret to be set in the config. | ||||
| 	    -m                   # Maximum filesize (takes K, M and G suffixes). | ||||
|  | ||||
| 	Config options (~/.suprc): | ||||
| 	Config options (~/.config/ufw): | ||||
| 	    secret               # Your personal token. Get it at https://zfh.so/settings_form | ||||
| 	    cfg_screenshot_ext   # Screenshot file type, used by scrot. | ||||
| 	    # Others are self-explanatory: | ||||
|   | ||||
							
								
								
									
										117
									
								
								ufw
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								ufw
									
									
									
									
									
								
							| @@ -6,18 +6,7 @@ | ||||
|  | ||||
| _self="${0##*/}" | ||||
|  | ||||
| # Defaults for XDG | ||||
| if ! [[ "$XDG_RUNTIME_DIR" ]]; then | ||||
| 	XDG_RUNTIME_DIR="/run/user/$UID" | ||||
| fi | ||||
|  | ||||
| cfg_url_regex='^[A-Za-z]([A-Za-z0-9+.-]+)?://.+' | ||||
| cfg_tmp_dir="$XDG_RUNTIME_DIR/sup"; TEMPDIR="$cfg_tmp_dir" | ||||
| cfg_service_url='https://8fw.me' | ||||
| cfg_screenshot_ext='png' | ||||
| cfg_max_filesize='200M' | ||||
|  | ||||
| [[ -f $HOME/.suprc ]] && { source "$HOME/.suprc"; } | ||||
|  | ||||
| _cat() { | ||||
| 	while read; do | ||||
| @@ -29,10 +18,10 @@ is_url() { | ||||
| 	[[ "$1" =~ $cfg_url_regex ]] | ||||
| } | ||||
|  | ||||
| sup.msg() { printf '%s\n' "[sup] $1"; } | ||||
| sup.err() { sup.msg "(error) $1" >&2; } | ||||
| msg() { printf '%s\n' "[ufw] $1"; } | ||||
| err() { msg "(error) $1" >&2; } | ||||
|  | ||||
| sup.usage() { | ||||
| usage() { | ||||
| 	_cat <<- EOF | ||||
| 		Usage: ${_self} [-RsF] [-D num] [file/url]" | ||||
| 		    Flags: | ||||
| @@ -45,7 +34,7 @@ sup.usage() { | ||||
| 		        -u                   # Generate a shortlink from URL. | ||||
| 		        -m                   # Maximum filesize (takes K, M and G suffixes). | ||||
| 		 | ||||
| 		    Config options (~/.suprc): | ||||
| 		    Config options (~/.config/ufw): | ||||
| 		        secret               # Your personal token. Get it at https://zfh.so/settings_form | ||||
| 		        cfg_screenshot_ext   # Screenshot file type, used by scrot. | ||||
| 				  cfg_max_filesize     # Maximum filesize in megabytes. | ||||
| @@ -56,17 +45,17 @@ sup.usage() { | ||||
| 	EOF | ||||
| } | ||||
|  | ||||
| sup.env() { | ||||
| ensure_env() { | ||||
| 	for i in "$cfg_tmp_dir"; do | ||||
| 		[[ -d "$i" ]] || { mkdir -p "$i"; } | ||||
| 	done | ||||
| } | ||||
|  | ||||
| sup.get_hash() { | ||||
| get_file_hash() { | ||||
| 	read file_hash _ < <( sha1sum "$1" ) | ||||
| } | ||||
|  | ||||
| sup.get_max_filesize() { | ||||
| get_max_filesize() { | ||||
| 	if [[ $cfg_max_filesize =~ ^[0-9]+[BKMG]?$ ]]; then | ||||
| 		max_filesize_base="${cfg_max_filesize//[BKMG]/}" | ||||
|  | ||||
| @@ -77,18 +66,18 @@ sup.get_max_filesize() { | ||||
| 			*) max_filesize_bytes=$max_filesize_base;; | ||||
| 		esac | ||||
| 	else | ||||
| 		sup.err "Wrong cfg_max_filesize: $cfg_max_filesize" | ||||
| 		err "Wrong cfg_max_filesize: $cfg_max_filesize" | ||||
| 		return 1 | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| sup.upload() { | ||||
| upload() { | ||||
| 	if (( flag_scrot )); then | ||||
| 		flag_rm=1 | ||||
| 		file=$(sup.scrot) || { return 1; } | ||||
| 		file=$(take_screenshot) || { return 1; } | ||||
| 	else | ||||
| 		(( $# )) || { | ||||
| 			sup.usage | ||||
| 			usage | ||||
| 			return 1 | ||||
| 		} | ||||
|  | ||||
| @@ -96,17 +85,17 @@ sup.upload() { | ||||
|  | ||||
| 		if is_url "$target"; then | ||||
| 			flag_rm=1 | ||||
| 			file=$(sup.mktemp "$cfg_tmp_dir") | ||||
| 			file=$(_mktemp "$cfg_tmp_dir") | ||||
|  | ||||
| 			sup.get_max_filesize || { return 1; } | ||||
| 			get_max_filesize || { return 1; } | ||||
|  | ||||
| 			curl --max-filesize "$max_filesize_bytes" -skL "$target" > "$file" | ||||
| 			curl_result=$? | ||||
|  | ||||
| 			if (( curl_result )); then | ||||
| 				case "$curl_result" in | ||||
| 					63) sup.err "File exceeds cfg_max_filesize";; | ||||
| 					*) sup.err "Could not download file.";; | ||||
| 					63) err "File exceeds cfg_max_filesize";; | ||||
| 					*) err "Could not download file.";; | ||||
| 				esac | ||||
|  | ||||
| 				return 1 | ||||
| @@ -115,13 +104,13 @@ sup.upload() { | ||||
| 			file="$target" | ||||
|  | ||||
| 			[[ -f "$file" ]] || { | ||||
| 				sup.err "No such file: ${file}" | ||||
| 				err "No such file: ${file}" | ||||
| 				return 1 | ||||
| 			} | ||||
| 		fi | ||||
| 	fi | ||||
|  | ||||
| 	sup.get_hash "$file" | ||||
| 	get_file_hash "$file" | ||||
|  | ||||
| 	file_url=$( curl -fsL "${cfg_service_url}/api?mode=file&file=${file_hash}&direct=1&short=${flag_shortlink}" ) | ||||
| 	if ! (( $? )); then | ||||
| @@ -140,60 +129,51 @@ sup.upload() { | ||||
| 	fi | ||||
|  | ||||
| 	if (( $? )); then | ||||
| 		sup.err 'Something has gone wrong with the upload.' | ||||
| 		err 'Something has gone wrong with the upload.' | ||||
| 		return 7 | ||||
| 	else | ||||
| 		if (( flag_rm )); then | ||||
| 			sup.msg "Removing file: $file" | ||||
| 			msg "Removing file: $file" | ||||
| 			rm "$file" | ||||
| 		fi | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| sup.url() { | ||||
| get_shortlink() { | ||||
| 	declare url=$1 | ||||
|  | ||||
| 	if ! curl -fsL "$cfg_service_url/api?mode=url_add&url=${url}&raw=1"; then | ||||
| 		sup.err 'Something went wrong!' | ||||
| 		err 'Something went wrong!' | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| sup.mktemp() { | ||||
| 	>"$1" || { | ||||
| 		sup.err "Cannot create $1!" | ||||
| 		return 1 | ||||
| 	} | ||||
|  | ||||
| 	printf '%s\n' "$1" | ||||
| } | ||||
|  | ||||
| sup.scrot() { | ||||
| take_screenshot() { | ||||
| 	declare tmp_file | ||||
|  | ||||
| 	[[ "$scrot_exec" ]] || { scrot_exec=$(type -P scrot); } | ||||
| 	[[ "$scrot_exec" ]] || { | ||||
| 		sup.err "Please install scrot to use this function" | ||||
| 		err "Please install scrot to use this function" | ||||
| 		return 1 | ||||
| 	} | ||||
|  | ||||
| 	(( "$flag_scrot_fullscreen" )) || { scrot_args+=( '-s' ); } | ||||
| 	[[ "$cfg_scrot_delay" ]] && { scrot_args+=( "-d $cfg_scrot_delay" ); } | ||||
|  | ||||
| 	tmp_file="$(sup.mktemp "${cfg_tmp_dir}" ".${cfg_screenshot_ext}")" | ||||
| 	tmp_file="$(_mktemp "${cfg_tmp_dir}" ".${cfg_screenshot_ext}")" | ||||
|  | ||||
| 	scrot "${scrot_args[@]}" "$tmp_file" || { | ||||
| 		sup.err "Failed to take a screenshot." | ||||
| 		err "Failed to take a screenshot." | ||||
| 		return 1 | ||||
| 	} | ||||
|  | ||||
| 	printf '%s\n' "$tmp_file" | ||||
| } | ||||
|  | ||||
| sup.mktemp() { | ||||
| _mktemp() { | ||||
| 	declare tmp_file_name tmp_file_name_extra="$2" tmp_dir="$1"  | ||||
|  | ||||
| 	[[ -d "$tmp_dir" ]] || { | ||||
| 		sup.err "${tmp_dir} does not exist or is not a directory." | ||||
| 		err "${tmp_dir} does not exist or is not a directory." | ||||
| 		return 1 | ||||
| 	} | ||||
|  | ||||
| @@ -204,7 +184,7 @@ sup.mktemp() { | ||||
| 	printf '%s\n' "${tmp_dir}/${tmp_file_name}" | ||||
| } | ||||
|  | ||||
| sup.get_my_ip() { | ||||
| get_my_ip() { | ||||
| 	my_ip=$( curl -fsL https://zfh.so/ip ) | ||||
|  | ||||
| 	if ! (( $? )); then | ||||
| @@ -212,7 +192,7 @@ sup.get_my_ip() { | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| sup.set_argv() { | ||||
| set_argv() { | ||||
| 	declare arg opt c | ||||
| 	declare -g argv | ||||
|  | ||||
| @@ -251,6 +231,33 @@ main() { | ||||
| 	declare args file target flag_private flag_rm flag_scrot flag_scrot_fullscreen cfg_scrot_delay | ||||
| 	declare flag_shortlink=0 | ||||
|  | ||||
| 	# Defaults for XDG | ||||
| 	if ! [[ "$XDG_RUNTIME_DIR" ]]; then | ||||
| 		XDG_RUNTIME_DIR="/run/user/$UID" | ||||
| 	fi | ||||
|  | ||||
| 	if ! [[ "$XDG_CONFIG_DIR" ]]; then | ||||
| 		XDG_CONFIG_DIR="$HOME/.config" | ||||
| 	fi | ||||
|  | ||||
| 	cfg_url_regex='^[A-Za-z]([A-Za-z0-9+.-]+)?://.+' | ||||
| 	cfg_tmp_dir="$XDG_RUNTIME_DIR/ufw"; TEMPDIR="$cfg_tmp_dir" | ||||
| 	cfg_service_url='https://8fw.me' | ||||
| 	cfg_screenshot_ext='png' | ||||
| 	cfg_max_filesize='200M' | ||||
|  | ||||
| 	if [[ -f "$HOME/.suprc" ]]; then | ||||
| 		printf 'Found legacy configfile, moving...\n' >&2 | ||||
| 		mv "$HOME/.suprc" "$XDG_CONFIG_DIR/ufw" | ||||
| 	fi | ||||
|  | ||||
| 	if [[ -f "$XDG_CONFIG_DIR/ufw" ]]; then | ||||
| 		if ! source "$XDG_CONFIG_DIR/ufw"; then | ||||
| 			printf 'Failed to source configuration file: %s\n' "$XDG_CONFIG_DIR/ufw" | ||||
| 			return $? | ||||
| 		fi | ||||
| 	fi | ||||
|  | ||||
| 	while [[ "$1" ]]; do | ||||
| 		case "$1" in | ||||
| 			-p|--private) flag_private='true';; | ||||
| @@ -269,7 +276,7 @@ main() { | ||||
| 			-S|--short) flag_shortlink='1';; | ||||
| 			-u|--url) action='url';; | ||||
| 			 | ||||
| 			-h|--help|--usage) sup.usage; return;; | ||||
| 			-h|--help|--usage) usage; return;; | ||||
|  | ||||
| 			--) shift; break;; | ||||
|  | ||||
| @@ -278,14 +285,14 @@ main() { | ||||
| 		shift | ||||
| 	done | ||||
|  | ||||
| 	sup.env | ||||
| 	ensure_env | ||||
|  | ||||
| 	case "${action:-upload}" in | ||||
| 		upload) sup.upload "$1";; | ||||
| 		url) sup.url "$1";; | ||||
| 		getmyip) sup.get_my_ip;; | ||||
| 		upload) upload "$1";; | ||||
| 		url) get_shortlink "$1";; | ||||
| 		getmyip) get_my_ip;; | ||||
| 	esac | ||||
| } | ||||
|  | ||||
| sup.set_argv "$@" | ||||
| set_argv "$@" | ||||
| main "${argv[@]}" | ||||
|   | ||||
							
								
								
									
										4
									
								
								ufwd
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								ufwd
									
									
									
									
									
								
							| @@ -7,7 +7,7 @@ if ! [[ "$XDG_RUNTIME_DIR" ]]; then | ||||
| fi | ||||
|  | ||||
| # Defaults | ||||
| cfg_workdir="$XDG_RUNTIME_DIR/supd" | ||||
| cfg_workdir="$XDG_RUNTIME_DIR/ufwd" | ||||
| cfg_scan_delay='30' | ||||
|  | ||||
| msg() { printf '%s\n' "$*"; } | ||||
| @@ -44,7 +44,7 @@ main() { | ||||
|  | ||||
| 	while sleep "$cfg_scan_delay"; do | ||||
| 		for i in *; do | ||||
| 			sup -R "$i" | ||||
| 			ufw -R "$i" | ||||
| 		done | ||||
| 	done | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user