feat: Move is_installed() and is_function_set() to common.sh
This commit is contained in:
		@@ -54,7 +54,7 @@ log() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
err() {
 | 
					err() {
 | 
				
			||||||
    # Handle error. Print errors to STDERR, log, process
 | 
					    # Handle errors. Print errors to STDERR, log, process
 | 
				
			||||||
    # and exit from script.
 | 
					    # and exit from script.
 | 
				
			||||||
    #
 | 
					    #
 | 
				
			||||||
    # Usage: err [-eao] MESSAGE
 | 
					    # Usage: err [-eao] MESSAGE
 | 
				
			||||||
@@ -95,6 +95,7 @@ err() {
 | 
				
			|||||||
    # Run user defined function on_error()
 | 
					    # Run user defined function on_error()
 | 
				
			||||||
    if [ "$onerr" ]; then
 | 
					    if [ "$onerr" ]; then
 | 
				
			||||||
        if is_function_set on_error; then
 | 
					        if is_function_set on_error; then
 | 
				
			||||||
 | 
					            echo -e "Run \e[1mon_error()\e[0m ..." | log -p
 | 
				
			||||||
            on_error
 | 
					            on_error
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -118,3 +119,26 @@ try() {
 | 
				
			|||||||
        err -aeo "Check $__log_file log for details."
 | 
					        err -aeo "Check $__log_file log for details."
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					is_installed() {
 | 
				
			||||||
 | 
					    # Check if the program is installed.
 | 
				
			||||||
 | 
					    # See good answer: https://stackoverflow.com/a/677212
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # Usage: is_installed COMMAND
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ! command -v "$1" >/dev/null 2>&1; then
 | 
				
			||||||
 | 
					        echo "Error: Command $1 not found." \
 | 
				
			||||||
 | 
					            "Please install $1 or check your PATH if it's actually installed." >&2
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					is_function_set() {
 | 
				
			||||||
 | 
					    # Test function is set or not. Return exit code.
 | 
				
			||||||
 | 
					    # Useful with 'if' statement.
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # Usage: is_function_set FUNCTION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    declare -F -- "$1" > /dev/null
 | 
				
			||||||
 | 
					    return "$?"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# script.sh - utilitary functions.
 | 
					# source.sh - source and validate scripts.
 | 
				
			||||||
# Copyright (c) 2022 ge <https://nixhacks.net/>
 | 
					# Copyright (c) 2022 ge <https://nixhacks.net/>
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					# This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
@@ -120,13 +120,3 @@ source_script() {
 | 
				
			|||||||
        echo Error: $__user_script: targets array is not set >&2; exit 1
 | 
					        echo Error: $__user_script: targets array is not set >&2; exit 1
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
is_function_set() {
 | 
					 | 
				
			||||||
    # Test function is set or not. Return exit code.
 | 
					 | 
				
			||||||
    # Useful with 'if' statement.
 | 
					 | 
				
			||||||
    #
 | 
					 | 
				
			||||||
    # Usage: is_function_set FUNCTION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    declare -F -- "$1" > /dev/null
 | 
					 | 
				
			||||||
    return "$?"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user