From 66ae7c85bf6e5f8277454d74532acb162a86cdf1 Mon Sep 17 00:00:00 2001 From: George Makrydakis Date: Sun, 8 Sep 2013 14:20:06 +0300 Subject: [PATCH] Target directories must always exist and -f should not create them. --- lrztar | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lrztar b/lrztar index 5ab110b..ced7b9d 100755 --- a/lrztar +++ b/lrztar @@ -91,7 +91,11 @@ Notice: return 1 } if ((v_O)); then - mkdir -p "$i" &> /dev/null + if ! [[ -d $i ]]; then + printf "lrztar: %s output path does not exist.\n"\ + "$i" + return 1 + fi else i="./" fi @@ -110,7 +114,18 @@ Notice: } else if ((v_O)); then - ((v_f)) && mkdir -p "${vopt[v_O]}" &> /dev/null + if ! [[ -d ${vopt[v_O]} ]]; then + printf "lrztar: %s output path does not exist.\n"\ + "${vopt[v_O]}" + return 1 + fi + if [[ $(shopt -s nullglob; + shopt -s dotglob; + echo "${vopt[v_O]}"/*) ]] && ! ((v_f)); then + printf "lrztar: %s output path is not empty.\n"\ + "${vopt[v_O]}" + return 1 + fi for x in ${!p[@]};do [ "${p[x]}"x == "-O"x ] && { p[x]=