Initial commit
This commit is contained in:
57
overlay/usr/libexec/init-storage
Executable file
57
overlay/usr/libexec/init-storage
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
# vim: set sw=4 ts=4 sts=4 et :
|
||||
|
||||
cleanup() {
|
||||
if [ -n "${tmpdir}" ] && [ "${tmpdir}" != / ]; then
|
||||
if mountpoint -q "${tmpdir}"; then
|
||||
umount "${tmpdir}"
|
||||
fi
|
||||
rm -rf "${tmpdir}"
|
||||
unset tmpdir
|
||||
fi
|
||||
}
|
||||
|
||||
copy_var() {
|
||||
dev="$1"
|
||||
|
||||
echo 'Copying /var contents to data volume'
|
||||
mount -o subvol=var "${dev}" "${tmpdir}"
|
||||
cp -auv /var/. "${tmpdir}"
|
||||
umount "${tmpdir}"
|
||||
}
|
||||
|
||||
format_dev() {
|
||||
dev="$1"
|
||||
printf 'Creating BTRFS filesystem on %s\n' "${dev}"
|
||||
mkfs.btrfs "${dev}" || exit
|
||||
|
||||
mount "${dev}" "${tmpdir}" || exit
|
||||
btrfs subvolume create "${tmpdir}"/etc || exit
|
||||
mkdir -p "${tmpdir}"/etc/.work "${tmpdir}"/etc/rw || exit
|
||||
btrfs subvolume create "${tmpdir}"/var || exit
|
||||
btrfs subvolume create "${tmpdir}"/var/log || exit
|
||||
umount "${dev}" || exit
|
||||
}
|
||||
|
||||
has_fs() {
|
||||
dev="$1"
|
||||
fstype=$(blkid -o value -s TYPE "${dev}")
|
||||
[ -n "${fstype}" ]
|
||||
}
|
||||
|
||||
datapart=$(findfs PARTLABEL=dch-data)
|
||||
if [ -b "${datapart}" ]; then
|
||||
printf 'Found data partition: %s\n' "${datapart}"
|
||||
else
|
||||
echo 'Could not identify data partition' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
trap cleanup INT TERM QUIT EXIT
|
||||
tmpdir=$(mktemp -d -p /run storinit.XXXXXX)
|
||||
|
||||
if ! has_fs "${datapart}"; then
|
||||
format_dev "${datapart}"
|
||||
fi
|
||||
|
||||
copy_var "${datapart}"
|
||||
4
overlay/usr/libexec/ssh-authorized-keys
Executable file
4
overlay/usr/libexec/ssh-authorized-keys
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
# vim: set sw=4 ts=4 sts=4 et :
|
||||
|
||||
exec wget -q -O - https://sshkeys.pyrocufflink.blue/"$1"/"$2".pub
|
||||
Reference in New Issue
Block a user