URI:
       tmkroot.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tmkroot.c (1178B)
       ---
            1 #include <u.h>
            2 #include <libc.h>
            3 #include <venti.h>
            4 #include <thread.h>
            5 
            6 char *host;
            7 
            8 void
            9 usage(void)
           10 {
           11         fprint(2, "usage: mkroot [-h host] name type score blocksize prev\n");
           12         threadexitsall("usage");
           13 }
           14 
           15 void
           16 threadmain(int argc, char *argv[])
           17 {
           18         uchar score[VtScoreSize];
           19         uchar buf[VtRootSize];
           20         VtConn *z;
           21         VtRoot root;
           22 
           23         ARGBEGIN{
           24         case 'h':
           25                 host = EARGF(usage());
           26                 break;
           27         default:
           28                 usage();
           29                 break;
           30         }ARGEND
           31 
           32         if(argc != 5)
           33                 usage();
           34 
           35         fmtinstall('V', vtscorefmt);
           36         fmtinstall('F', vtfcallfmt);
           37 
           38         strecpy(root.name, root.name+sizeof root.name, argv[0]);
           39         strecpy(root.type, root.type+sizeof root.type, argv[1]);
           40         if(vtparsescore(argv[2], nil, root.score) < 0)
           41                 sysfatal("bad score '%s'", argv[2]);
           42         root.blocksize = atoi(argv[3]);
           43         if(vtparsescore(argv[4], nil, root.prev) < 0)
           44                 sysfatal("bad score '%s'", argv[4]);
           45         vtrootpack(&root, buf);
           46 
           47         z = vtdial(host);
           48         if(z == nil)
           49                 sysfatal("could not connect to server: %r");
           50 
           51         if(vtconnect(z) < 0)
           52                 sysfatal("vtconnect: %r");
           53 
           54         if(vtwrite(z, score, VtRootType, buf, VtRootSize) < 0)
           55                 sysfatal("vtwrite: %r");
           56         if(vtsync(z) < 0)
           57                 sysfatal("vtsync: %r");
           58         vthangup(z);
           59         print("%V\n", score);
           60         threadexitsall(0);
           61 }