mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-02-02 05:25:53 +01:00
69 lines
1.5 KiB
Bash
Executable file
69 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
# This script allows flushing of the permanent storage to a .lzm file,
|
|
# allowing for some more space
|
|
|
|
DST="/mnt/cdrom/modules"
|
|
# make sure this is the last filename
|
|
DSTFILE="zz_changes"
|
|
CHANGESDIR="/mnt/overlay/.upper"
|
|
#CHANGESDIR="/.unions/memory/aufs-rw-branch/default/"
|
|
|
|
#gentoo-functions uses "consoletype" which returns non-zero exit codes on success
|
|
#the cleanest way to handle this is to never "set -e" before sourcing gentoo-functions
|
|
source /lib/gentoo/functions.sh
|
|
|
|
set -e
|
|
|
|
usage ()
|
|
{
|
|
echo
|
|
echo " Usage : flushchanges [dest]"
|
|
echo " Where [dest] is the modules storage directory"
|
|
echo " defaulting to ${DST}"
|
|
echo
|
|
}
|
|
|
|
squash ()
|
|
{
|
|
if ! mount | grep -q "${CHANGESDIR}"
|
|
then
|
|
eerror "It appears that you're not using unionfs/aufs/overlayfs"
|
|
return 1
|
|
else
|
|
mksquashfs "${CHANGESDIR}" "$1" -comp xz -Xbcj x86 -b 1048576 -no-recovery -noappend -Xdict-size 1048576
|
|
return $?
|
|
fi
|
|
}
|
|
|
|
if [ ! -z "$1" ]
|
|
then
|
|
DST=$1
|
|
fi
|
|
|
|
echo "Using ${DST} for module storage"
|
|
|
|
if [ ! -e "${DST}" ]
|
|
then
|
|
ewarn "Unable to find module dir ${DST}"
|
|
usage
|
|
exit 1
|
|
else
|
|
index=0
|
|
while true
|
|
do
|
|
indexstring="0${index}"
|
|
indexstring="${indexstring:(-2)}"
|
|
if [ ! -f "${DST}/${DSTFILE}-${indexstring}.lzm" ]
|
|
then
|
|
if squash "${DST}/${DSTFILE}-${indexstring}.lzm"
|
|
then
|
|
einfo "$DST/${DSTFILE}-${indexstring}.lzm created successfully"
|
|
break
|
|
else
|
|
eerror "Unable to create $DST/${DSTFILE}-${indexstring}.lzm"
|
|
exit 1
|
|
fi
|
|
fi
|
|
index=$((index + 1))
|
|
done
|
|
fi
|