shithub: secgefs

ref: d7a6e8434a31af68314d243ae4f2804aedfa51e6
dir: /create/

View raw version
#!/bin/rc

if (! ~ $#* 2) {
	echo usage: mksecgefs name size >[1=2]
	exit usage
}

rfork en

filename=$1
name=`{basename $filename}
size=`{echo $2 '* 1024' | hoc}

if (test -e $filename) {
	echo file $filename already exists >[1=2]
	exit error
}

if (test -e /srv/$name || test -e /srv/$name.cmd) {
	echo srv files name collision >[1=2]
	exit error
}

dd -if /dev/zero -bs 1024 -count $size > $filename
disk/cryptsetup -f $filename
disk/cryptsetup -i $filename

gefs -f /dev/fs/$name -r $user
gefs -f /dev/fs/$name -n $name

if (! test -e /srv/$name.cmd) {
	echo /srv/$name.cmd does not exist >[1=2]
	exit error
}

echo 'set retain ''''' >> /srv/$name.cmd
echo halt >>/srv/$name.cmd

echo del $name > /dev/fs/ctl

ls /dev/fs/$name >[2]/dev/null
ls /srv/$name.cmd >[2]/dev/null