#!/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