comparison sbin/ftjail @ 254:39268cba8c46

FIX: Error handling
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 11 Sep 2022 21:40:57 +0200
parents 590007b0e902
children 68f091c9524a
comparison
equal deleted inserted replaced
253:590007b0e902 254:39268cba8c46
656 local _ds _snap_name 656 local _ds _snap_name
657 657
658 _ds="${1}" 658 _ds="${1}"
659 _snap_name="${2}" 659 _snap_name="${2}"
660 660
661 [ -z "${_ds}" ] && { echo "ERROR: no dataset given" 1>&2; return 2; }
662 [ -z "${_snap_name}" ] && { echo "ERROR: no snapshot name given" 1>&2; return 2; }
663
661 if ! zfs list -H -o name -t filesystem "${_ds}" 1> /dev/null 2> /dev/null ; then 664 if ! zfs list -H -o name -t filesystem "${_ds}" 1> /dev/null 2> /dev/null ; then
662 echo "ERROR: parent dataset \`${_ds}' does not exist" 1>&2 665 echo "ERROR: parent dataset \`${_ds}' does not exist or is not available" 1>&2
663 return 1 666 return 1
664 fi 667 fi
665 668
666 zfs snapshot -r "${_ds}@${_snap_name}" || return 669 zfs snapshot -r "${_ds}@${_snap_name}" || return
667 } 670 }
677 680
678 _ds_base="${1-}" 681 _ds_base="${1-}"
679 _ds_skel="${2-}" 682 _ds_skel="${2-}"
680 _snap_name="${3-}" 683 _snap_name="${3-}"
681 684
682 [ -z "${_ds_base}" ] && echo "ERROR: no RO base dataset name given" 1>&2 685 # Here extra checks because of better error messages possible
683 [ -z "${_ds_skel}" ] && echo "ERROR: no RW skeleton dataset name given" 1>&2 686 [ -z "${_ds_base}" ] && { echo "ERROR: no RO base dataset name given" 1>&2; return 2; }
684 [ -z "${_snap_name}" ] && echo "ERROR: no snapshot name given" 1>&2 687 [ -z "${_ds_skel}" ] && { echo "ERROR: no RW skeleton dataset name given" 1>&2; return 2; }
685 688
686 _do_snapshot "${_ds_base}" "${_snap_name}" || return 689 _do_snapshot "${_ds_base}" "${_snap_name}" || return
687 _do_snapshot "${_ds_skel}" "${_snap_name}" || return 690 _do_snapshot "${_ds_skel}" "${_snap_name}" || return
688 return 0 691 return 0
689 } 692 }