From b13feade520dad363ca8d2d0309b027b80d0c910 Mon Sep 17 00:00:00 2001 From: Gardouille Date: Mon, 27 May 2024 09:28:58 +0200 Subject: [PATCH] =?UTF-8?q?Remove=20eza=20script,=20can't=20call=20a=20pat?= =?UTF-8?q?h=20with=20it=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eza | 279 ------------------------------------------------------------ 1 file changed, 279 deletions(-) delete mode 100755 eza diff --git a/eza b/eza deleted file mode 100755 index 9ddf533..0000000 --- a/eza +++ /dev/null @@ -1,279 +0,0 @@ -#!/bin/sh -# -# Purpose {{{ -# This script will try to start eza -# 1. installed on the system if available -# 2. from a symlink in user's PATH -# -# 2023-09-16 -# }}} -# Flags {{{ -## Exit on error {{{ -set -o errexit -## }}} -## Exit on unset var {{{ -### Use "${VARNAME-}" to test a var that may not have been set -set -o nounset -## }}} -## Pipeline command is treated as failed {{{ -### Not available in POSIX sh − https://github.com/koalaman/shellcheck/wiki/SC3040 -#set -o pipefail -## }}} -## Help with debugging {{{ -### Call the script by prefixing it with "TRACE=1 ./script.sh" -if [ "${TRACE-0}" -eq 1 ]; then set -o xtrace; fi -## }}} -# }}} -# Vars {{{ -PROGNAME=$(basename "${0}"); readonly PROGNAME -PROGDIR=$(readlink --canonicalize-missing $(dirname "${0}")); readonly PROGDIR -ARGS="${*}"; readonly ARGS -readonly NBARGS="${#}" -[ -z "${DEBUG-}" ] && DEBUG=1 -## Export DEBUG for sub-script -export DEBUG - -## Default values for some vars -readonly EZA_SYSTEM_PATH="/bin/eza" -readonly EZA_USER_PATH="${HOME}/bin/eza.link" - -## Colors -readonly PURPLE='\033[1;35m' -readonly RED='\033[0;31m' -readonly RESET='\033[0m' -readonly COLOR_DEBUG="${PURPLE}" -# }}} -usage() { # {{{ - - cat <<- HELP -usage: $PROGNAME [--debug|help|--user|--system] - -Tiny script to start existing eza (from the system or from user's PATH) - -EXAMPLES : - - Start eza - ${PROGNAME} - - - Set different binary for user - ${PROGNAME} --user "${HOME}/bin/my.eza" - -OPTIONS : - --debug - Enable debug messages. - - help - Print this help message. - - --user - Change the user's binary to use. - (default: ${EZA_USER_PATH}) - - --system - Change the system's binary to use. - (default: ${EZA_SYSTEM_PATH}) - - ALL OTHER OPTIONS WILL BE PASSED AS EZA's OPTIONS -HELP -} -# }}} -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}" - - unset local_debug_message - - return 0 -} -# }}} -error_message() { # {{{ - - local_error_message="${1}" - local_error_code="${2}" - - ## Print message - printf '%b\n' "ERROR − ${PROGNAME} : ${RED}${local_error_message}${RESET}" >&2 - - unset local_error_message - - exit "${local_error_code:=66}" -} -# }}} -define_vars() { # {{{ - - # If eza_system_path wasn't defined (argument) {{{ - if [ -z "${eza_system_path-}" ]; then - ## Use default value - readonly eza_system_path="${EZA_SYSTEM_PATH}" - fi - # }}} - # If eza_user_path wasn't defined (argument) {{{ - if [ -z "${eza_user_path-}" ]; then - ## Use default value - readonly eza_user_path="${EZA_USER_PATH}" - fi - # }}} - -} -# }}} - -is_bin_present() { # {{{ - - local_bin_present="${1}" - debug_prefix="${2:-}" - - ## File doesn't exist by default - return_is_bin_present="1" - - ### Check if the file exists with executable perm - # shellcheck disable=SC2086 - if find ${local_bin_present} -perm -a+x > /dev/null 2>&1; then - return_is_bin_present="0" - debug_message "${debug_prefix}is_bin_present − \ -The file ${RED}${local_bin_present}${COLOR_DEBUG} exists." - else - return_is_bin_present="1" - debug_message "${debug_prefix}is_bin_present − \ -The file ${RED}${local_bin_present}${COLOR_DEBUG} doesn't exist." - fi - - unset local_bin_present="${1}" - unset debug_prefix - - return "${return_is_bin_present}" -} -# }}} - -main() { # {{{ - - debug_message "--- MAIN BEGIN" - - ## Define all vars - define_vars - debug_message "| Define vars" - - ## If eza system is available {{{ - ### Start it - if is_bin_present "${eza_system_path}" "| "; then - ### If EZA_OPTIONS is defined, call eza with options {{{ - if [ -n "${EZA_OPTIONS-}" ]; then - debug_message "Use Eza from system (${eza_system_path}) with options (${EZA_OPTIONS})." - "${eza_system_path}" $(echo "${EZA_OPTIONS}") \ - || error_message "Error while calling eza from system path (${eza_system_path})" 11 - ### }}} - ### If EZA_OPTIONS is NOT defined simply call it {{{ - elif [ -z "${EZA_OPTIONS-}" ]; then - debug_message "Use Eza from system (${eza_system_path}) without options." - "${eza_system_path}" \ - || error_message "Error while calling eza from system path (${eza_system_path})" 12 - ### }}} - ### If anything else happens, exit with error {{{ - else - error_message "This test case is not supposed to happen ! Variable EZA_OPTIONS is defined or not." 13 - fi - ### }}} - debug_message "--- MAIN END" - exit 0 - fi - ## }}} - ## If eza from user path is available {{{ - if is_bin_present "${eza_user_path}" "| "; then - ### If EZA_OPTIONS is defined, call eza with options {{{ - if [ -n "${EZA_OPTIONS-}" ]; then - debug_message "Use Eza from user's path (${eza_user_path}) with options (${EZA_OPTIONS})." - "${eza_user_path}" $(echo "${EZA_OPTIONS}") \ - || error_message "Error while calling eza from system path (${eza_user_path})" 21 - ### }}} - ### If EZA_OPTIONS is NOT defined simply call it {{{ - elif [ -z "${EZA_OPTIONS-}" ]; then - debug_message "Use Eza from user's path (${eza_user_path}) without options." - "${eza_user_path}" \ - || error_message "Error while calling eza from user path (${eza_user_path})" 22 - ### }}} - ### If anything else happens, exit with error {{{ - else - error_message "This test case is not supposed to happen ! Variable EZA_OPTIONS is defined or not." 23 - fi - ### }}} - debug_message "--- MAIN END" - exit 0 - fi - ## }}} - - debug_message "--- MAIN END" -} -# }}} - -# Manage arguments # {{{ -# This code can't be in a function due to argument management - -if [ ! "${NBARGS}" -eq "0" ]; then - - manage_arg="0" - - ## If the first argument ask for help (h|help) {{{ - if printf -- '%s' "${1-}" | grep --quiet --extended-regexp -- "^h(elp)?$"; then - usage - exit 0 - fi - ## }}} - - ## If the first argument is not an option - if ! printf -- '%s' "${1}" | grep --quiet --extended-regexp -- "^-+"; - then - ## Print help message and exit - printf '%b\n' "${RED}Invalid option: ${1}${RESET}" - printf '%b\n' "---" - usage - - exit 1 - fi - - # Parse all options (start with a "-") one by one - while printf -- '%s' "${1-}" | grep --quiet --extended-regexp -- "^-+"; do - - case "${1}" in - --debug ) ## debug - DEBUG=0 - debug_message "--- Manage argument BEGIN" - ;; - --user ) ## Define eza_user_path with given arg - ## Move to the next argument - shift - ## Define var - readonly eza_user_path="${1}" - ;; - --system ) ## Define eza_system_path with given arg - ## Move to the next argument - shift - ## Define var - readonly eza_system_path="${1}" - ;; - * ) ## unknow option - debug_message "Unknown option (${1}), pass it as eza's option" - test -n "${EZA_OPTIONS-}" && EZA_OPTIONS="${EZA_OPTIONS} ${1}" - test -z "${EZA_OPTIONS-}" && EZA_OPTIONS="${1}" - ;; - esac - - debug_message "| ${RED}${1}${COLOR_DEBUG} option managed." - - ## Move to the next argument - shift - manage_arg=$((manage_arg+1)) - -done - -debug_message "| ${RED}${manage_arg}${COLOR_DEBUG} argument(s) successfully managed." -else - debug_message "| No arguments/options to manage." -fi - -debug_message "--- Manage argument END" -# }}} - -main - -exit 255