From: Ian Kelling Date: Tue, 9 Aug 2016 22:07:43 +0000 (-0700) Subject: bug fix: fails when using -T and broken link dir X-Git-Url: https://iankelling.org/git/?a=commitdiff_plain;h=7cdcfbe930add042e4effd11aec2d049d3b61206;p=lnf bug fix: fails when using -T and broken link dir --- diff --git a/lnf b/lnf index b4701df..d6dc5f2 100755 --- a/lnf +++ b/lnf @@ -38,6 +38,7 @@ links to each TARGET in DIRECTORY." local x ret prefix dir to_remove + local mkdir=false to_remove=() if [[ $nodir ]]; then @@ -45,13 +46,10 @@ links to each TARGET in DIRECTORY." if [[ -e $2 || -L $2 ]]; then to_remove+=("$2") elif [[ ! -d $dir ]]; then + mkdir=true if [[ -e $dir || -L $dir ]]; then to_remove+=("$dir") fi - if ! mkdir -p "$(dirname "$2")"; then - echo "lnf error: failed to make directory $(dirname "$2")" - return 1 - fi fi elif (( $# >= 2 )); then if [[ -d ${!#} ]]; then @@ -93,6 +91,14 @@ links to each TARGET in DIRECTORY." fi $reset_extglob && shopt -u extglob + + if $mkdir; then + if ! mkdir -p "$(dirname "$2")"; then + echo "lnf error: failed to make directory $(dirname "$2")" + return 1 + fi + fi + ln -s $nodir -- "$@" } lnf "$@"