shithub: patches

ref: 4ac3a0224ed9d54818f858fba69c8e94f38f2c12
dir: /9front/2235c398fa9e7b48e0c84cda05c6994a14736e55.patch/

View raw version
From: Romano <[email protected]>
Date: Tue, 13 Aug 2024 05:33:53 +0000
Subject: [PATCH] newuser:

* make bin subdirs for all archs, as well as rc
* make lib/drawterm user dir for drawterm-specific config
** add lib/drawterm/default for default config
* change console prompt to con#
* update man page newuser source to match, and doc changes
---
diff c32dabd4853888f62f09a6d3f8e0deed4077b6a7 2235c398fa9e7b48e0c84cda05c6994a14736e55
--- a/sys/lib/newuser
+++ b/sys/lib/newuser
@@ -1,5 +1,4 @@
 #!/bin/rc
-
 user=`{cat /dev/user}
 home=/usr/$user
 if(test -f $home/lib/profile){
@@ -8,10 +7,10 @@
 }
 cd $home
 x='$'
-mkdir bin bin/rc bin/mips bin/386 bin/amd64 bin/power bin/arm bin/arm64 
-mkdir lib tmp
+mkdir bin/^('' rc spim arm arm64 amd64 386 power power64 mips)
+mkdir lib lib/drawterm tmp
 chmod +t tmp
-bind -qc /n/other/usr/$user/tmp $home/tmp
+if(test -d /n/other/usr/$user/tmp) bind -qc /n/other/usr/$user/tmp $home/tmp
 bind -c $home/tmp /tmp
 mail -c
 auth/cron -c
@@ -22,38 +21,41 @@
 font=/lib/font/bit/vga/unicode.font
 switch($x^service){
 case terminal
-	webcookies
-	webfs
-	plumber
 	echo -n accelerated > '#m/mousectl'
 	echo -n 'res 3' > '#m/mousectl'
 	prompt=('term% ' '	')
 	fn term%{ $x^* }
+	webcookies
+	webfs
+	plumber
 	rio
 case cpu
-	bind /mnt/term/dev/cons /dev/cons
-	bind -q /mnt/term/dev/consctl /dev/consctl
-	>[2] /dev/null {
-		cp /dev/sysname /mnt/term/dev/label
-		if(wsys=`{cat /mnt/term/env/wsys} && ~ $x^#wsys 1) {
-			wsys=/mnt/term^$x^wsys
-		}
-		if not {
-			wsys=()
-		}
-	} 
-	bind -a /mnt/term/dev /dev
+	# if rcpu or drawterm:
+	if(test -d /mnt/term/dev){
+		bind /mnt/term/dev/cons /dev/cons
+		bind -q /mnt/term/dev/consctl /dev/consctl
+		>[2] /dev/null {
+			cp /dev/sysname /mnt/term/dev/label
+			if(wsys=`{cat /mnt/term/env/wsys} && ~ $x^#wsys 1)
+				wsys=/mnt/term^$x^wsys
+			if not
+				wsys=()
+		} 
+		bind -a /mnt/term/dev /dev
+	}
 	prompt=('cpu% ' '	')
 	fn cpu%{ $x^* }
-	if(! test -e /mnt/term/dev/wsys){
-		# call from drawterm
-		if(test -e /mnt/term/dev/secstore){
-			auth/factotum -n
-			read -m /mnt/term/dev/secstore >/mnt/factotum/ctl
-			echo >/mnt/term/dev/secstore
-		}
-		if not
-			auth/factotum
+
+	# if drawterm, load profile based on incoming sysname:
+	if(test -d /mnt/term/cmd){
+		dtsys=`{cat /mnt/term/dev/sysname}
+		if(! test -f $x^home/lib/drawterm/^$x^dtsys)
+			dtsys=default
+		. $x^home/lib/drawterm/^$x^dtsys
+	}
+
+	# otherwise start the typical programs
+	if not if(! test -e /mnt/term/dev/wsys){
 		webcookies
 		webfs
 		plumber
@@ -60,9 +62,25 @@
 		rio
 	}
 case con
-	prompt=('cpu% ' '	')
+	prompt=('con# ' '	')
 }
 !
+
+cat > lib/drawterm/default <<!
+if(test -e /mnt/term/dev/secstore){
+	auth/factotum -n
+	read -m /mnt/term/dev/secstore >/mnt/factotum/ctl
+	echo >/mnt/term/dev/secstore
+}
+if not auth/factotum
+
+webcookies
+webfs
+plumber
+rio
+
+!
+
 cat > lib/plumbing <<!
 # to update: cp $$home/lib/plumbing /mnt/plumb/rules
 
--- a/sys/man/8/newuser
+++ b/sys/man/8/newuser
@@ -63,49 +63,61 @@
 looks like this:
 .IP
 .EX
-bind -a $home/bin/rc /bin
-bind -a $home/bin/$cputype /bin
-bind -c tmp /tmp
-font = /lib/font/bit/pelm/euro.9.font
+bind -qa $home/bin/rc /bin
+bind -qa $home/bin/$cputype /bin
+font=/lib/font/bit/vga/unicode.font
 switch($service){
 case terminal
-	plumber
-	upas/fs
 	echo -n accelerated > '#m/mousectl'
 	echo -n 'res 3' > '#m/mousectl'
 	prompt=('term% ' '	')
 	fn term%{ $* }
-	exec rio
+	webcookies
+	webfs
+	plumber
+	rio
 case cpu
-	if (test -e /mnt/term/mnt/wsys) {
-		# rio already running
-		wsys = /mnt/term^`{cat /mnt/term/env/wsys}
-		bind -a /mnt/term/mnt/wsys /dev
-		echo -n $sysname > /dev/label
+	# if rcpu or drawterm:
+	if(test -d /mnt/term/dev){
+		bind /mnt/term/dev/cons /dev/cons
+		bind -q /mnt/term/dev/consctl /dev/consctl
+		>[2] /dev/null {
+			cp /dev/sysname /mnt/term/dev/label
+			if(wsys=`{cat /mnt/term/env/wsys} && ~ $#wsys 1)
+				wsys=/mnt/term^$wsys
+			if not
+				wsys=()
+		} 
+		bind -a /mnt/term/dev /dev
 	}
-	bind /mnt/term/dev/cons /dev/cons
-	bind /mnt/term/dev/consctl /dev/consctl
-	bind -a /mnt/term/dev /dev
 	prompt=('cpu% ' '	')
 	fn cpu%{ $* }
-	upas/fs
-	news
-	if (! test -e /mnt/term/mnt/wsys) {
-		# cpu call from drawterm
-		font=/lib/font/bit/pelm/latin1.8.font
-		auth/factotum
+
+	# if drawterm, load profile based on incoming sysname:
+	if(test -d /mnt/term/cmd){
+		dtsys=`{cat /mnt/term/dev/sysname}
+		if(! test -f $home/lib/drawterm/^$dtsys)
+			dtsys=default
+		. $home/lib/drawterm/^$dtsys
+	}
+
+	# otherwise start the typical programs
+	if not if(! test -e /mnt/term/dev/wsys){
+		webcookies
+		webfs
 		plumber
-		exec rio
+		rio
 	}
 case con
-	prompt=('cpu% ' '	')
-	news
+	prompt=('con# ' '	')
 }
 .EE
 .PP
 Sites may make changes to
 .B /sys/lib/newuser
-that reflect the properties of the local environment.
+that reflect the properties of the local environment, as well as drawterm-specific
+loading changes under
+.B /usr/$user/lib/drawterm .
 .SH "SEE ALSO"
 .IR passwd (1),
 .IR rio (1),