diff options
Diffstat (limited to 'dev-util/schroot/files/06zfscloneopts')
-rw-r--r-- | dev-util/schroot/files/06zfscloneopts | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/dev-util/schroot/files/06zfscloneopts b/dev-util/schroot/files/06zfscloneopts new file mode 100644 index 000000000000..e66f0885e78f --- /dev/null +++ b/dev-util/schroot/files/06zfscloneopts @@ -0,0 +1,44 @@ +#!/bin/sh +# Copyright © 2020 Georgy Yakovlev <gyakovlev@gentoo.org> +# +# schroot is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# schroot is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +# <http://www.gnu.org/licenses/>. +# +##################################################################### + +set -e + +. "$SETUP_DATA_DIR/common-data" +. "$SETUP_DATA_DIR/common-functions" +. "$SETUP_DATA_DIR/common-config" + +if [ "$CHROOT_TYPE" = "zfs-snapshot" ] && [ -n "$CHROOT_ZFS_CLONE_NAME" ]; then + + if [ $STAGE = "setup-start" ]; then + + if ! zfs list "$CHROOT_ZFS_CLONE_NAME" >/dev/null 2>&1; then + fatal "Dataset '$CHROOT_ZFS_CLONE_NAME' does not exist" + fi + + if [ "${ZFS_CLONE_OPTIONS+set}" = "set" ]; then + if [ "$VERBOSE" = "verbose" ]; then + zfs set $ZFS_CLONE_OPTIONS \ + "$CHROOT_ZFS_CLONE_NAME" + else + zfs set $ZFS_CLONE_OPTIONS \ + "$CHROOT_ZFS_CLONE_NAME" > /dev/null + fi + fi + fi +fi |