diff --git a/src/dotinstall b/src/dotinstall index f20c561..07d2a8d 100755 --- a/src/dotinstall +++ b/src/dotinstall @@ -209,7 +209,36 @@ private:update_repository () cd "$current_dir" || die "Can't return to directory $current_dir" } -process_dirs () { +link_directory () { + + # Create a symblink to directory inside an other directory + # + # $1: source directory + # $2: destination directory + + local source + source="$1" + local dest + dest="$2" + printf "\nProcess directory %s\n" "$source" + if [[ ! $source =~ ^$repository ]] + then + echo "Add repo before source" + source="${repository}/$source" + fi + [ ! -d "$source" ] && { error " -> source is not a directory"; return; } + [ ! -d "$dest" ] && { error " -> destination is not a directory"; return; } + + if [ $install -eq 1 ] + then + private:create_symblink "$source" "${dest}/$(basename "$d")" + else + local symblink="${dest}/$(basename "$d")" + private:remove_symblink "$symblink" + fi +} + +link_directories () { # Process a directory than contains subdir, create symblink from each subdir # to the destination. @@ -218,28 +247,24 @@ process_dirs () { # $2: destination directory local source - source="${repository}/$1" + source="$1" local dest dest="$2" printf "\nProcess directory %s\n" "$source" - [ ! -d "$source" ] && { error " -> source is not a directory"; return; } - [ ! -d "$dest" ] && { error " -> destination is not a directory"; return; } - while read -r d do - if [ $install -eq 1 ] - then - private:create_symblink "$d" "${dest}/$(basename "$d")" - else - local symblink="${dest}/$(basename "$d")" - private:remove_symblink "$symblink" - fi - - done < <(ls -d -1 "${source}"/*/) + link_directory "$d" "${dest}" + done < <(ls -d -1 "${repository}/${source}"/*/) } -process_files () { +process_dirs () { + + printf "This function is deprecated, use link_directories instead.\n" + link_directories $@ +} + +link_files () { # Process a directory than contains config files, create symblink from each # files to the destination. @@ -271,6 +296,10 @@ process_files () { done < <(ls -A -1 "$source") } +process_files () { + printf "process_files is deprecated, use link_files instead\n" + link_files $@ +} install_service () {