shithub: fork

Download patch

ref: e06e4ff0a58207476cf37424d5b9df2254003c77
parent: 4f5e576a621998ccd52de0236eea9090c637caae
author: qwx <qwx@sciops.net>
date: Sun Aug 13 23:16:43 EDT 2023

add 9pasted 9fs

diff: cannot open b/rc/bin//null: file does not exist: 'b/rc/bin//null' diff: cannot open b/rc//null: file does not exist: 'b/rc//null'
--- /dev/null
+++ b/rc/bin/9fs
@@ -1,0 +1,82 @@
+#!/bin/rc
+# 9fs filesystem [mountpoint] - srv & mount filesystem, usually from plan 9
+
+rfork e
+switch($1){
+case ''
+	echo usage: 9fs service '[mountpoint]' >[1=2]
+	exit usage
+case 9fat esp pidos dos
+	if(~ $#2 1)
+		part=`{ls $2 >[2]/dev/null}
+	if not if(~ $1 pidos)
+		part=`{ls /dev/sdM*/dos >[2]/dev/null}
+	if not
+		part=`{ls /dev/fs/$1 /dev/sd*/$1 >[2]/dev/null}
+	if(~ $#part 0) {
+		echo 'no '$1' partition found' >[1=2]
+		exit no.$1
+	}
+	part=$part(1)
+	
+	if(! test -f /srv/dos)
+		dossrv >/dev/null </dev/null >[2]/dev/null
+	
+	unmount /n/$1 >/dev/null >[2]/dev/null
+	mount -c /srv/dos /n/$1 $part
+	if(~ $1 9fat){
+		unmount /n/9 >/dev/null >[2]/dev/null
+		mount -c /srv/dos /n/9 $part
+	}
+case dump other
+	mount -C /srv/boot /n/$1 $1
+case sources
+	srv -nqC tcp!9p.io sources /n/sources
+case sourcesdump
+	9fs sources
+	mount -nC /srv/sources /n/sourcesdump main/archive
+case sourcessnap
+	9fs sources
+	mount -nC /srv/sources /n/sourcessnap main/snapshot
+case atom
+	srv -nq tcp!atom.9atom.org atom && mount -nC /srv/atom /n/atom atom
+case atomdump
+	9fs atom && mount -nC /srv/atom /n/atomdump atomdump
+case 9pio
+	srv -nq tcp!9p.io 9pio && mount -nC /srv/9pio /n/9pio
+case 9front
+	9fs tcp!9front.org!9000
+	for(i in 9front extra fqa iso lists sites)
+		bind /n/9front.org!9000/$i /n/$i
+case 9contrib
+	9fs tcp!contrib.9front.org!9000 /n/contrib
+case 9grep
+	9fs tcp!9front.org!7734
+	bind -b /n/9front.org!7734 /n/lists
+# arbitrary venti archives
+case vac:*
+	vacfs <{echo $1}
+case *.vac
+	if (test -e $1)
+		score=$1
+	if not if (! ~ $1 /* && test -e $home/lib/vac/$1)
+		score=$home/lib/vac/$1
+	if not if (! ~ $1 /* && test -e /lib/vac/$1)
+		score=/lib/vac/$1
+	if not {
+		echo $0: $1: no such score file >[1=2]
+		exit 'no score file'
+	}
+	vacfs -m /n/`{basename $1 .vac} `{cat $score}
+case wiki
+	srv -m 'net!9p.io!wiki' wiki /mnt/wiki
+case 9paste
+	srv -n fs.9paste.net 9paste /n/9paste
+case *
+	switch($#*){
+	case 1
+		srv -m $1
+	case *
+		srv -m $1 $1 $2
+	}
+}