summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/schroot/files/06zfscloneopts')
-rw-r--r--dev-util/schroot/files/06zfscloneopts44
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