summaryrefslogtreecommitdiff
path: root/src/btrfs-utils
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2020-11-17 17:27:22 -0500
committerAndrew Cady <d@cryptonomic.net>2020-11-17 17:28:45 -0500
commit7540be7dc53e3feba1d3208e97b3d9f46a78f0fe (patch)
tree1b47d05690bea616474cce579547e37179826a59 /src/btrfs-utils
parent3ac7703db30dca04ce2027fb7a27d139802dae91 (diff)
Don't install btrfs-shrink; it's part of fsmgr
Diffstat (limited to 'src/btrfs-utils')
-rwxr-xr-xsrc/btrfs-utils/btrfs-shrink54
1 files changed, 0 insertions, 54 deletions
diff --git a/src/btrfs-utils/btrfs-shrink b/src/btrfs-utils/btrfs-shrink
deleted file mode 100755
index 4c4e40d..0000000
--- a/src/btrfs-utils/btrfs-shrink
+++ /dev/null
@@ -1,54 +0,0 @@
1#!/bin/sh
2
3die() { printf "%s: Error: %s\n" "$0" "$*" >&2; exit 1; }
4
5[ "$(id -u)" = 0 ] || die 'you are not root'
6
7shrink()
8{
9 local shrinkmegs=100 mountpoint="$1"
10 while true; do
11 while ! btrfs filesystem resize -${shrinkmegs}M "$mountpoint"/; do
12 shrinkmegs=$((shrinkmegs - 10 ))
13 if [ $shrinkmegs -lt 10 ]; then
14 return
15 fi
16 done
17 done
18}
19
20btrfs_truncate()
21{
22 local img="$1" bytes
23# 548044800/1176715264 bytes used
24 bytes=$(file "$img" | sed -ne 's?.*/\([0-9]*\) bytes used.*?\1?p')
25 if [ "$bytes" ]; then
26 truncate -s "$bytes" "$img"
27 fi
28}
29
30main()
31{
32 if [ -d "$1" ]; then
33 mountpoint=$1
34 mountpoint -q "$mountpoint" || die "not a mountpoint: $1"
35 shrink "$mountpoint"
36 elif [ -f "$1" ]; then
37 mountpoint="$1".mnt.tmp
38 mkdir "$mountpoint"
39 mount -t btrfs "$1" "$mountpoint"
40 result=$?
41 if [ $result = 0 ]; then
42 shrink "$mountpoint"
43 result=$?
44 umount "$mountpoint"
45 fi
46 rmdir "$mountpoint"
47 btrfs_truncate "$1"
48 return $result
49 else
50 die "not a file or directory: $1"
51 fi
52}
53
54main "$@"