shithub: riscv

ref: 0e632454e2d6cba7acb7e05771e027244e02416d
dir: /rc/bin/juke/

View raw version
#!/bin/rc
rfork e
wide=`{echo $vgasize | sed 's/(.*)x.*x.*/\1 > 240/' | hoc}
debug=0
tflag=''
wflag=''
host=''
flags=()
sname=$user
if (! ~ $wide 1) {
	flags=($flags -t)
}
while(! ~ $#* 0) {
	switch ($1) {
	case -d
		debug=$2
		shift
	case -t
		tflag='-t'
	case -h
		host=$2
		shift
	case -w
		wflags='-w'
	case -s
		sname=$2
		shift
	case -*
		echo usage: juke [-d level] [-tw] [-s srv] [-h srvhost] >[1=2]
		exit usage
	}
	shift
}
if (! test -f /mnt/playlist) {
	if (! ~ $debug '0') echo mounting playlistfs
	if (! test -e /srv/playlist.$sname && ! ~ $host ''){
		import -a $host /srv /srv
	}
	if (! mount -b /srv/playlist.$sname /mnt >/dev/null >[2]/dev/null){
		rm -f /srv/playlist.$sname
		if (! ~ $debug '0') echo starting playlistfs
		games/playlistfs -s $sname -d $debug
	}
}
if (~ `{ls /mnt/juke >[2]/dev/null | sed '1q'} '') {
	if (! test -e /srv/jukefs.$sname && ! ~ $host ''){
		import -a $host /srv /srv
	}
	if (! mount -b /srv/jukefs.$sname /mnt >/dev/null >[2]/dev/null){
		if (! ~ $debug '0') echo games/jukefs
		games/jukefs -s $sname
	}
}
if (~ $wflags '-w') {
	exec games/jukebox -w -d $debug $tflag &
}
exec games/jukebox -d $debug $tflag