diff options
author | nachoparker <nacho@ownyourbits.com> | 2018-01-10 16:31:55 +0300 |
---|---|---|
committer | nachoparker <nacho@ownyourbits.com> | 2018-01-10 16:31:55 +0300 |
commit | db322f2d095e14d501b34e82c6acd3ab0ece03e0 (patch) | |
tree | 1f0348c79f788f7f9506e1bbe536e1a78bacdcbf /etc/nextcloudpi-config.d | |
parent | 0587ca339c26b6a865cbd2f42ff5b6e6cd5d0cbb (diff) |
nc-swapfile: improved, and take BTRFS into accountv0.44.12
Diffstat (limited to 'etc/nextcloudpi-config.d')
-rw-r--r-- | etc/nextcloudpi-config.d/nc-swapfile.sh | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/etc/nextcloudpi-config.d/nc-swapfile.sh b/etc/nextcloudpi-config.d/nc-swapfile.sh index cd0a23fb..7587847b 100644 --- a/etc/nextcloudpi-config.d/nc-swapfile.sh +++ b/etc/nextcloudpi-config.d/nc-swapfile.sh @@ -26,21 +26,34 @@ is_active() configure() { - local ORIG=$( grep -oP "CONF_SWAPFILE=.*" /etc/dphys-swapfile | cut -f2 -d= ) - [[ "$ORIG" == "$SWAPFILE_" ]] && return - test -d "$SWAPFILE_" && { echo "$SWAPFILE_ is a directory. Abort"; return 1; } + local ORIG="$( swapon | tail -1 | awk '{ print $1 }' )" + local DSTDIR="$( dirname "$SWAPFILE_" )" + [[ "$ORIG" == "$SWAPFILE_" ]] && { echo "nothing to do"; return 0; } + [[ -d "$SWAPFILE_" ]] && { echo "$SWAPFILE_ is a directory. Abort"; return 1; } + [[ -d "$DSTDIR" ]] || { echo "$DSTDIR Doesn't exist. Abort"; return 1; } - [[ $( stat -fc%d / ) == $( stat -fc%d $( dirname "$SWAPFILE_" ) ) ]] && \ + [[ "$( stat -fc%T "$DSTDIR" )" == "btrfs" ]] && { + echo "BTRFS doesn't support swapfiles" + return 1 + } + + [[ $( stat -fc%d / ) == $( stat -fc%d "$DSTDIR" ) ]] && \ echo -e "INFO: moving swapfile to another place in the same SD card\nIf you want to use an external mount, make sure it is properly set up" sed -i "s|#\?CONF_SWAPFILE=.*|CONF_SWAPFILE=$SWAPFILE_|" /etc/dphys-swapfile sed -i "s|#\?CONF_SWAPSIZE=.*|CONF_SWAPSIZE=$SWAPSIZE_|" /etc/dphys-swapfile - grep -q vm.swappiness /etc/sysctl.conf || echo "vm.swappiness = 10" >> /etc/sysctl.conf && sysctl --load + grep -q vm.swappiness /etc/sysctl.conf || echo "vm.swappiness = 10" >> /etc/sysctl.conf && sysctl --load &>/dev/null # workaround for automount, systemd doesn't get the order right grep -q sleep /etc/init.d/dphys-swapfile || sed -i "/\<start)/asleep 15" /etc/init.d/dphys-swapfile - service dphys-swapfile restart && swapoff "$ORIG" && rm -f "$ORIG" + dphys-swapfile setup && dphys-swapfile swapon && { + [[ -f "$ORIG" ]] && swapoff "$ORIG" && rm -f "$ORIG" + echo "swapfile moved successfully" + return 0 + } + echo "moving swapfile failed" + return 1 } install() { :; } |