SHA256
1
0

Initial commit

This commit is contained in:
2025-12-04 23:23:42 -05:00
commit 765f598313
58 changed files with 2736 additions and 0 deletions

52
scripts/btrfs-convert Executable file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env bash
# Convert directories to btrfs subvolumes
usage() {
echo "Usage: $0 <directory1> [directory2 ...]"
echo "Converts each directory to a btrfs subvolume."
}
btrfs_convert() {
local d dir tmp_dir
for d in "$@"; do
dir="$d"
tmp_dir="$dir.tmp"
if [[ ! -d "$dir" ]]; then
echo "[ERROR] Directory '$dir' does not exist. Skipping."
continue
fi
if [[ -d "$tmp_dir" ]]; then
echo "[ERROR] Temporary directory '$tmp_dir' already exists. Skipping '$dir'."
continue
fi
echo "[INFO] Creating btrfs subvolume: '$tmp_dir'..."
if ! btrfs subvolume create "$tmp_dir" &>/dev/null; then
echo "[ERROR] Failed to create btrfs subvolume '$tmp_dir'. Skipping '$dir'."
continue
fi
echo "[INFO] Moving contents from '$dir' to '$tmp_dir'..."
if ! mv "$dir"/* "$tmp_dir"/ 2>/dev/null; then
echo "[ERROR] Failed to move contents from '$dir' to '$tmp_dir'. Cleaning up."
rm -rf "$tmp_dir"
continue
fi
echo "[INFO] Removing original directory '$dir'..."
if ! rm -rf "$dir"; then
echo "[ERROR] Failed to remove '$dir'. Manual cleanup may be required."
continue
fi
echo "[INFO] Renaming '$tmp_dir' to '$dir'..."
if ! mv "$tmp_dir" "$dir"; then
echo "[ERROR] Failed to rename '$tmp_dir' to '$dir'. Manual cleanup may be required."
continue
fi
echo "[SUCCESS] Converted '$dir' to a btrfs subvolume."
done
}
if [[ $# -lt 1 ]]; then
usage
exit 1
fi
btrfs_convert "$@"