Add argument management
This commit is contained in:
		
							parent
							
								
									5fe3cd13ed
								
							
						
					
					
						commit
						1b4dbb3d54
					
				
							
								
								
									
										86
									
								
								printscreen
								
								
								
								
							
							
						
						
									
										86
									
								
								printscreen
								
								
								
								
							|  | @ -4,13 +4,95 @@ | |||
| ### See https://github.com/flameshot-org/flameshot | ||||
| ## Or try to use scrot | ||||
| 
 | ||||
| # Vars {{{ | ||||
| readonly PROGNAME=$(basename "${0}") | ||||
| readonly NBARGS="${#}" | ||||
| ## Test if DEBUG is already defined (by parent script,…) | ||||
| [ -z "${DEBUG}" ] && DEBUG=1 | ||||
| 
 | ||||
| ## Colors | ||||
| readonly RED='\033[0;31m' | ||||
| readonly RESET='\033[0m' | ||||
| readonly COLOR_DEBUG="${PURPLE}" | ||||
| # }}} | ||||
| debug_message() {                                               # {{{ | ||||
| 
 | ||||
| 	local_debug_message="${1}" | ||||
| 
 | ||||
| 	## Print message if DEBUG is enable (=0) | ||||
| 	[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6b\e[m\n' "DEBUG − ${PROGNAME} : ${local_debug_message}" | ||||
| 
 | ||||
| 	return 0 | ||||
| } | ||||
| # }}} | ||||
| 
 | ||||
| # Manage arguments                                                # {{{ | ||||
| 
 | ||||
| ## If there is argument(s) | ||||
| if [ ! "${NBARGS}" -eq "0" ]; then | ||||
| 
 | ||||
| 	manage_arg="0" | ||||
| 
 | ||||
| 	## If the first argument is not an option {{{ | ||||
| 	## Use it to delay screenshot | ||||
| 	if ! printf -- '%s' "${1}" | grep -q -E -- "^-+"; | ||||
| 	then | ||||
| 		## Use this argument for delay_screenshot | ||||
| 		delay_screenshot="${1}" | ||||
| 		## Enable FULL screenshot mode | ||||
| 		FULL_MODE="0" | ||||
| 
 | ||||
| 		## Switch to the next argument | ||||
| 		shift | ||||
| 		manage_arg=$((manage_arg+1)) | ||||
| 	fi | ||||
| 	## }}} | ||||
| 	# Parse all options (start with a "-") one by one | ||||
| 	while printf -- '%s' "${1}" | grep -q -E -- "^-+"; do | ||||
| 
 | ||||
| 	case "${1}" in | ||||
| 		-d|--delay )           ## Add a delay | ||||
| 			## Enable FULL screenshot mode | ||||
| 			FULL_MODE="0" | ||||
| 			## Move to the next argument | ||||
| 			shift | ||||
| 			## Define the delay with this argument | ||||
| 			delay_screenshot="${1}" | ||||
| 			;; | ||||
| 		* )                    ## unknow option | ||||
| 			printf '%b\n' "${RED}Invalid option: ${1}${RESET}" | ||||
| 			printf '%b\n' "---" | ||||
| 			exit 1 | ||||
| 			;; | ||||
| 	esac | ||||
| 
 | ||||
| 	debug_message "Arguments management − \ | ||||
| ${RED}${1}${COLOR_DEBUG} option managed." | ||||
| 
 | ||||
| 	## Move to the next argument | ||||
| 	shift | ||||
| 	manage_arg=$((manage_arg+1)) | ||||
| 
 | ||||
| 	done | ||||
| 
 | ||||
| 	debug_message "Arguments management − \ | ||||
| ${RED}${manage_arg}${COLOR_DEBUG} argument(s) successfully managed." | ||||
| else | ||||
| 	debug_message "Arguments management − \ | ||||
| No arguments/options to manage." | ||||
| fi | ||||
| 
 | ||||
| # }}} | ||||
| 
 | ||||
| ## Use Flameshot if available {{{ | ||||
| if [ "$(command -v flameshot)" ]; then | ||||
| 	flameshot gui --path /tmp --delay 50 | ||||
| 
 | ||||
| else  ## Use scrot | ||||
| ## }}} | ||||
| else  ## Use Scrot {{{ | ||||
| 	# -s : Interactively select a window or rectangle with the mouse. | ||||
| 	# -e : Directly open the screenshot with Gimp then delete it | ||||
| 
 | ||||
| 	scrot -s -m -e 'gimp $f ; mv $f /tmp/' | ||||
| 
 | ||||
| fi | ||||
| ## }}} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue