Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/lib/archroot.sh
diff options
context:
space:
mode:
authorLevente Polyak <anthraxx@archlinux.org>2022-10-10 00:37:51 +0200
committerLevente Polyak <anthraxx@archlinux.org>2023-05-19 22:27:12 +0200
commitb5d5402e439f5edfd642fb4f680d596f5992e874 (patch)
tree856facc3e379ed590e260e7c39cafaebea9e60be /lib/archroot.sh
parenta8be7423efb287edd5ef80002a75a853fc0c9c1d (diff)
src: modularize repo layout into a library
This will greatly help us to structure the functionality and commands in a more sane way. We will distribute the sources as actual libraries and reuse code with imports instead of processing everything with m4 and duplicating a lot of code.
Diffstat (limited to 'lib/archroot.sh')
-rw-r--r--lib/archroot.sh62
1 files changed, 0 insertions, 62 deletions
diff --git a/lib/archroot.sh b/lib/archroot.sh
deleted file mode 100644
index d7917da..0000000
--- a/lib/archroot.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/hint/bash
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-:
-
-# shellcheck disable=2034
-CHROOT_VERSION='v4'
-
-##
-# usage : check_root $keepenv
-##
-orig_argv=("${BASH_SOURCE[0]}" "$@")
-check_root() {
- local keepenv=$1
-
- (( EUID == 0 )) && return
- if type -P sudo >/dev/null; then
- exec sudo --preserve-env=$keepenv -- "${orig_argv[@]}"
- else
- exec su root -c "$(printf ' %q' "${orig_argv[@]}")"
- fi
-}
-
-##
-# usage : is_btrfs( $path )
-# return : whether $path is on a btrfs
-##
-is_btrfs() {
- [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]]
-}
-
-##
-# usage : is_subvolume( $path )
-# return : whether $path is a the root of a btrfs subvolume (including
-# the top-level subvolume).
-##
-is_subvolume() {
- [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]]
-}
-
-##
-# usage : subvolume_delete_recursive( $path )
-#
-# Find all btrfs subvolumes under and including $path and delete them.
-##
-subvolume_delete_recursive() {
- local subvol
-
- is_subvolume "$1" || return 0
-
- while IFS= read -d $'\0' -r subvol; do
- if ! subvolume_delete_recursive "$subvol"; then
- return 1
- fi
- done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0)
- if ! btrfs subvolume delete "$1" &>/dev/null; then
- error "Unable to delete subvolume %s" "$subvol"
- return 1
- fi
-
- return 0
-}