diff --git a/README.md b/README.md index 1412d96..b431493 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ dotinstall: ### functions -#### bin_check +#### required_commands This function check if binary file is avaible in the `PATH`. diff --git a/examples/mail_bootstap b/examples/mail_bootstap index 7841cc6..395d9fe 100644 --- a/examples/mail_bootstap +++ b/examples/mail_bootstap @@ -25,7 +25,7 @@ # └── mail.timer # check required executables -check_bin "neomutt notmuch mbsync afew msmtp" +required_commands "neomutt notmuch mbsync afew msmtp" # symblink folder which contains configurations folders to $HOME/.config/ process_dirs config ${HOME}/.config diff --git a/src/dotinstall.sh b/src/dotinstall similarity index 94% rename from src/dotinstall.sh rename to src/dotinstall index 9469260..85aaaad 100755 --- a/src/dotinstall.sh +++ b/src/dotinstall @@ -181,9 +181,10 @@ process_dirs () { # $2: destination directory local dest="${repository}/$1" - printf "\nProcess directory %s\n" "$1" + local source="$2" + printf "\nProcess directory %s\n" "$source" - [ ! -d "$dest" ] && { error " -> source is not a directory $dest"; return; } + [ ! -d "$source" ] && { error " -> source is not a directory"; return; } [ ! -d "$dest" ] && { error " -> destination is not a directory"; return; } while read d @@ -263,11 +264,13 @@ install_service () } -check_bin () +required_commands () { # Check if an executable exist # $1 executables separated with spaces + # if uninstall, we don't need to process required commands. + [ $install -eq 0 ] && return printf "Checking required programs :\n" for p in $1 do @@ -324,9 +327,10 @@ define_env () fi } -## create bin directory -[ ! -d $BIN_DIRECTORY ] && mkdir -p $BIN_DIRECTORY || printf "bin exist\n" -[ ! -d $CACHE_DIR ] && mkdir -p $CACHE_DIR || printf "cache exist\n" +## create bin and cache direcories +[ ! -d $BIN_DIRECTORY ] && mkdir -p $BIN_DIRECTORY +[ ! -d $CACHE_DIR ] && mkdir -p $CACHE_DIR + # define mode : install, uninstall or update case $1 in "uninstall") @@ -367,7 +371,6 @@ fi [ ! -f "$bootstrap_file" ] && die "$bootstrap_file does not exist" 2 1 private:get_bootstrap_path "$bootstrap_file" - cache_file="${CACHE_DIR}/$(echo $repository | tr '/' '_')" if [ $update -eq 1 ] @@ -380,7 +383,8 @@ then printf "There is no difference between cached copy and the bootstrap file\n"; exit 0 else - # Uninstall old files + # for updating the dotfile repo, we need to uninstall it then + # install it. We need the cached copy for unistall. install=0 source "$cache_file" rm "$cache_file"