From 7cdcfbe930add042e4effd11aec2d049d3b61206 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Tue, 9 Aug 2016 15:07:43 -0700 Subject: [PATCH] bug fix: fails when using -T and broken link dir --- lnf | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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 "$@" -- 2.30.2