From 5ae285d176967d3eff9650b065712a293b90a7cb Mon Sep 17 00:00:00 2001 From: z3rOR0ne Date: Sun, 4 Sep 2022 03:31:21 -0700 Subject: [PATCH] :recycle: Refactored dependencychecks in scripts --- scripts/dependencycheck | 27 ++++++++++++++----- scripts/xpress | 57 +++++++++++++++++------------------------ scripts/xtract | 55 +++++++++++++++++---------------------- 3 files changed, 68 insertions(+), 71 deletions(-) diff --git a/scripts/dependencycheck b/scripts/dependencycheck index 4fea2261..14ed7eaf 100755 --- a/scripts/dependencycheck +++ b/scripts/dependencycheck @@ -6,7 +6,6 @@ set -e # For styling/colorizing output txtbld=$(tput bold) txtred=${txtbld}$(tput setaf 1) -txtgreen=${txtbld}$(tput setaf 2) txtwhite=${txtbld}$(tput setaf 7) # Dependency check @@ -17,8 +16,7 @@ function dependencycheck() missingdependencies=0 for ((i = 0; i < numdependencies; i++)) ; do - if ! command -v "${dependencies[$i]}" &> /dev/null - then + if ! command -v "${dependencies[$i]}" &> /dev/null ; then echo "${txtred}dependency not met: ${dependencies[$i]}${txtwhite}" missingdependencies=$((missingdependencies+1)) fi @@ -27,11 +25,28 @@ function dependencycheck() if [ $missingdependencies -gt 0 ] ; then echo "${txtred}Please install needed dependencies${txtwhite}" exit 1 - #comment out if sourced - else - echo "${txtgreen}All dependencies are met!${txtwhite}" fi } # invoke function comment out if sourced dependencycheck "$@" + +# Barebones version without tput (for being sourced): +# function dependencycheck() +# { + # numdependencies="$#" + # dependencies=("$@") + # missingdependencies=0 + + # for ((i = 0; i < numdependencies; i++)) ; do + # if ! command -v "${dependencies[$i]}" &> /dev/null ; then + # echo "dependency not met: ${dependencies[$i]}" + # missingdependencies=$((missingdependencies+1)) + # fi + # done + + # if [ $missingdependencies -gt 0 ] ; then + # echo "Please install needed dependencies" + # exit 1 + # fi +# } diff --git a/scripts/xpress b/scripts/xpress index ca879a75..4a7b71e7 100755 --- a/scripts/xpress +++ b/scripts/xpress @@ -3,32 +3,40 @@ # Error handling set -e +# To be implemented: +# dependencies=("echo" "sed" "tar" "zip" "bzip2" "gzip" "gunzip" "pax" "7z" "ar" "cpio" "brotli" "lzip" "rzip" "xz" "zstd") +#Use for loop to check if recognized file formats have been passed to first argument + # For styling/colorizing output txtbld=$(tput bold) txtblue=${txtbld}$(tput setaf 4) -txtgreen=${txtbld}$(tput setaf 2) txtred=${txtbld}$(tput setaf 1) +txtgreen=${txtbld}$(tput setaf 2) txtyellow=${txtbld}$(tput setaf 3) txtwhite=${txtbld}$(tput setaf 7) +# Dependency check +function dependencycheck() +{ + numdependencies="$#" + dependencies=("$@") + missingdependencies=0 -# To be implemented: -# dependencies=("echo" "sed" "tar" "zip" "bzip2" "gzip" "gunzip" "pax" "7z" "ar" "cpio" "brotli" "lzip" "rzip" "xz" "zstd") + for ((i = 0; i < numdependencies; i++)) ; do + if ! command -v "${dependencies[$i]}" &> /dev/null ; then + echo "${txtred}dependency not met: ${dependencies[$i]}${txtwhite}" + missingdependencies=$((missingdependencies+1)) + fi + done -#Use for loop to check if recognized file formats have been passed to first argument + if [ $missingdependencies -gt 0 ] ; then + echo "${txtred}Please install needed dependencies${txtwhite}" + exit 1 + fi +} # Main Dependency check -dependencies=("echo" "sed" "tput") -numdependencies=3 -missingdependencies=0 -for ((i = 0; i < numdependencies; i++)) ; -do - if ! command -v "${dependencies[$i]}" &> /dev/null - then - echo "${txtred}dependency not met: ${dependencies[$i]}${txtwhite}" - missingdependencies=$((missingdependencies+1)) - fi -done +dependencycheck echo sed # Intro Prompt echo "${txtgreen}xpress: a simple shell script for compressing common file formats" @@ -44,24 +52,7 @@ fdname=$(echo "${1}" | sed 's/\..*$//') # Simply copy and paste, changing extension string and extraction method below if [ "${extension}" == "tgz" ] ; then - # Dependency check - dependencies=("echo" "tar" "gzip") - numdependencies=3 - missingdependencies=0 - for ((i = 0; i < numdependencies; i++)) ; - do - if ! command -v "${dependencies[$i]}" &> /dev/null - then - echo "${txtred}dependency not met: ${dependencies[$i]}${txtwhite}" - missingdependencies=$((missingdependencies+1)) - fi - done - - if [ $missingdependencies -gt 0 ] ; then - echo "${txtred}Please install needed dependencies${txtwhite}" - exit 1 - fi - + dependencycheck tar gzip echo "${txtblue}compressing .tgz...${txtyellow}" # main extraction method tar -cvzf "${1}" "${fdname}" &> /dev/null diff --git a/scripts/xtract b/scripts/xtract index 6a441087..07baa882 100755 --- a/scripts/xtract +++ b/scripts/xtract @@ -3,6 +3,10 @@ # Error handling set -e +# To be implemented: +# dependencies=("echo" "sed" "tar" "zip" "bzip2" "gzip" "gunzip" "pax" "7z" "ar" "cpio" "brotli" "lzip" "rzip" "xz" "zstd") +#Use for loop to check if recognized file formats have been passed to first argument + # For styling/colorizing output txtbld=$(tput bold) txtblue=${txtbld}$(tput setaf 4) @@ -11,24 +15,28 @@ txtred=${txtbld}$(tput setaf 1) txtyellow=${txtbld}$(tput setaf 3) txtwhite=${txtbld}$(tput setaf 7) +# Dependency check +function dependencycheck() +{ + numdependencies="$#" + dependencies=("$@") + missingdependencies=0 -# To be implemented: -# dependencies=("echo" "sed" "tar" "zip" "bzip2" "gzip" "gunzip" "pax" "7z" "ar" "cpio" "brotli" "lzip" "rzip" "xz" "zstd") + for ((i = 0; i < numdependencies; i++)) ; do + if ! command -v "${dependencies[$i]}" &> /dev/null ; then + echo "${txtred}dependency not met: ${dependencies[$i]}${txtwhite}" + missingdependencies=$((missingdependencies+1)) + fi + done -#Use for loop to check if recognized file formats have been passed to first argument + if [ $missingdependencies -gt 0 ] ; then + echo "${txtred}Please install needed dependencies${txtwhite}" + exit 1 + fi +} # Main Dependency check -dependencies=("echo" "sed" "tput") -numdependencies=3 -missingdependencies=0 -for ((i = 0; i < numdependencies; i++)) ; -do - if ! command -v "${dependencies[$i]}" &> /dev/null - then - echo "${txtred}dependency not met: ${dependencies[$i]}${txtwhite}" - missingdependencies=$((missingdependencies+1)) - fi -done +dependencycheck echo sed # Intro Prompt echo "${txtgreen}xtract: a simple shell script for decompressing common file formats" @@ -41,24 +49,7 @@ extension=$(echo "${1}" | sed 's/^[^\..:]*[\..]//') # Simply copy and paste, changing extension string and extraction method below if [ "${extension}" == "tgz" ] ; then - # Dependency check - dependencies=("echo" "tar" "gunzip") - numdependencies=3 - missingdependencies=0 - for ((i = 0; i < numdependencies; i++)) ; - do - if ! command -v "${dependencies[$i]}" &> /dev/null - then - echo "${txtred}dependency not met: ${dependencies[$i]}${txtwhite}" - missingdependencies=$((missingdependencies+1)) - fi - done - - if [ $missingdependencies -gt 0 ] ; then - echo "${txtred}Please install needed dependencies${txtwhite}" - exit 1 - fi - + dependencycheck tar gunzip echo "${txtblue}decompressing .tgz...${txtyellow}" # main extraction method tar zxvf "${1}" &> /dev/null