changeset 254:39268cba8c46

FIX: Error handling
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 11 Sep 2022 21:40:57 +0200
parents 590007b0e902
children 7f21d242f79f
files sbin/ftjail
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/sbin/ftjail	Sun Sep 11 18:37:51 2022 +0200
+++ b/sbin/ftjail	Sun Sep 11 21:40:57 2022 +0200
@@ -658,8 +658,11 @@
     _ds="${1}"
     _snap_name="${2}"
 
+    [ -z "${_ds}" ] && { echo "ERROR: no dataset given" 1>&2; return 2; }
+    [ -z "${_snap_name}" ] && { echo "ERROR: no snapshot name given" 1>&2; return 2; }
+
     if ! zfs list -H -o name -t filesystem "${_ds}" 1> /dev/null 2> /dev/null ; then
-        echo "ERROR: parent dataset \`${_ds}' does not exist" 1>&2
+        echo "ERROR: parent dataset \`${_ds}' does not exist or is not available" 1>&2
         return 1
     fi
 
@@ -679,9 +682,9 @@
     _ds_skel="${2-}"
     _snap_name="${3-}"
 
-    [ -z "${_ds_base}" ] && echo "ERROR: no RO base dataset name given" 1>&2
-    [ -z "${_ds_skel}" ] && echo "ERROR: no RW skeleton dataset name given" 1>&2
-    [ -z "${_snap_name}" ] && echo "ERROR: no snapshot name given" 1>&2
+    # Here extra checks because of better error messages possible
+    [ -z "${_ds_base}" ] && { echo "ERROR: no RO base dataset name given" 1>&2; return 2; }
+    [ -z "${_ds_skel}" ] && { echo "ERROR: no RW skeleton dataset name given" 1>&2; return 2; }
 
     _do_snapshot "${_ds_base}" "${_snap_name}" || return
     _do_snapshot "${_ds_skel}" "${_snap_name}" || return