code: plan9front

ref: 5a807265a819206f8342ab3a23b940a0c75049fc
dir: /rc/bin/sysinfo/

View raw version
#!/bin/rc
rfork e
fn logprog{
	echo % `{echo $"* | sed 's/#/''#''/g'}
	$*
	echo
}
fn print{
	echo '% cd ''#ec''; for(i in *){echo $i ''='' `{cat $i}}'
	cd '#ec'; for(i in *){echo $i '=' `{cat $i}}
	echo
	logprog cat '#P/archctl'
	logprog cat '#P/irqalloc'
	logprog cat '#P/ioalloc'
	logprog cat '#c/config'
	logprog cat '#c/sysstat'
	logprog cat '#¶/swap'
	logprog awk '/^Plan 9/{p=1}
/^init: starting/{exit}
{if(p)print}' '#c/kmesg'
	logprog pci -v
	logprog aux/cpuid
	logprog aux/icanhasmsi
	logprog aux/icanhasvmx -v
	logprog aux/pcmcia
	logprog cat '#u/usb/ctl'
	logprog cat '#S/sdctl'
	for(i in '#S'/sd[A-Z][0-9]*/ctl)
		logprog cat $i
	for(i in '#l0/ether0' '#l1/ether1' '#l2/ether2' '#l3/ether3'){
		if(test -e $i){
			logprog cat $i/addr
			logprog cat $i/stats
			logprog cat $i/ifstats
		}
	}
	if(test -e '#v/vgactl'){
		logprog cat '#v/vgactl'
		echo '@{rfork n; aux/realemu; aux/vga -p}'
		@{rfork n; aux/realemu; aux/vga -p}
	}
	if(~ $cputype 386 amd64)
		logprog xd -x1 '#r/nvram'
	logprog cat '#A/audiostat'
	logprog cat '#A/volume'
	logprog cat /mnt/apm/ctl
}
fn post{
	file=/tmp/sysinfo.$user.$pid
	if(! ~ $#e 0)
		echo $e >$file
	print >>$file >[2=1] 
	@{
		rfork n
		webfs
		hpost -u http://sysinfo.9front.org -p / a_body@$file submit:submit fake:fake a_func:add_post url: |
			grep -e '\/body\"' |
			sed 1q | sed 's/^.*href=\"//g; s/body\".*$/body/g'
		rm -f $file
	}
}
argv0=$0
fn usage {
	echo usage: $argv0 '[ -e e-mail ] [ -p ]' >[1=2]
	exit usage
}
e=()
p=()
while(~ $1 -*){
	switch($1){
	case -e
		e=$2
		shift
	case -p
		p=1
		shift
	case *
		usage
	}
	shift
}
if(~ $p 1)
	post
	
if not
	print