]> git.lizzy.rs Git - plan9front.git/blob - rc/bin/sysinfo
sysinfo: add -e to include a reply-to e-mail address
[plan9front.git] / rc / bin / sysinfo
1 #!/bin/rc
2 rfork e
3 fn logprog{
4         echo % `{echo $"* | sed 's/#/''#''/g'}
5         $*
6         echo
7 }
8 fn print{
9         echo '% cd ''#ec''; for(i in *){echo $i ''='' `{cat $i}}'
10         cd '#ec'; for(i in *){echo $i '=' `{cat $i}}
11         echo
12         logprog cat '#P/archctl'
13         logprog cat '#P/irqalloc'
14         logprog cat '#P/ioalloc'
15         logprog cat '#c/config'
16         logprog cat '#c/swap'
17         logprog cat '#c/sysstat'
18         logprog awk '/^Plan 9$/{p=1}
19 /^init: starting/{exit}
20 {if(p)print}' '#c/kmesg'
21         logprog pci -v
22         logprog aux/icanhasmsi
23         logprog aux/pcmcia
24         logprog cat '#u/usb/ctl'
25         logprog cat '#S/sdctl'
26         for(i in '#S'/sd[A-Z][0-9]*/ctl)
27                 logprog cat $i
28         for(i in '#l0/ether0' '#l1/ether1' '#l2/ether2' '#l3/ether3'){
29                 if(test -e $i){
30                         logprog cat $i/addr
31                         logprog cat $i/stats
32                         logprog cat $i/ifstats
33                 }
34         }
35         logprog cat '#v/vgactl'
36         echo '@{rfork n; aux/realemu; aux/vga -p}'
37         @{rfork n; aux/realemu; aux/vga -p}
38         logprog xd -x1 '#r/nvram'
39         logprog cat '#A/audiostat'
40         logprog cat '#A/volume'
41         logprog cat /mnt/apm/ctl
42 }
43 fn post{
44         file=/tmp/sysinfo.$user.$pid
45         if(! ~ $#e 0)
46                 echo $e >$file
47         print >>$file >[2=1] 
48         @{
49                 rfork n
50                 webfs
51                 hpost -u http://sysinfo.9front.org -p / a_body@$file submit:submit fake:fake a_func:add_post url: |
52                         grep -e '\/body\"' |
53                         sed 1q | sed 's/^.*href=\"//g; s/body\".*$/body/g; s/^/http:\/\/sysinfo.9front.org/g'
54                 rm -f $file
55         }
56 }
57 argv0=$0
58 fn usage {
59         echo usage: $argv0 '[ -e e-mail ] [ -p ]' >[1=2]
60         exit usage
61 }
62 e=()
63 p=()
64 while(~ $1 -*){
65         switch($1){
66         case -e
67                 e=$2
68                 shift
69         case -p
70                 p=1
71                 shift
72         case *
73                 usage
74         }
75         shift
76 }
77 if(~ $p 1)
78         post
79         
80 if not
81         print