Mercurial > mercurial > hgweb_rsearcher.cgi
diff go/client.go @ 12:240752cbe11b
db-upload.(by go)
author | pyon@macmini |
---|---|
date | Tue, 13 Nov 2018 21:11:20 +0900 |
parents | 82f9af6aa7e4 |
children | f5ffc34f045a |
line wrap: on
line diff
--- a/go/client.go Mon Nov 12 19:35:50 2018 +0900 +++ b/go/client.go Tue Nov 13 21:11:20 2018 +0900 @@ -1,17 +1,17 @@ /* client.go : client-program. - Version : 1.2 - Last Change: 2018-10-30 火 09:13:24. + Version : 1.3 + Last Change: 2018-11-13 火 12:03:00. install to: rsearcher_root/ rsearcher_root/client.exe + grsearcher.exe + app.conf - + verup.bat + + upgrade.bat + auth.db ( temporary ) + hhs.db ( temporary ) - + index.db ( 10 days ) + + index.db ( 14 days ) + image/*.png, *.jpg + doc/ + .cache/* ( temporary ) @@ -19,7 +19,8 @@ $ client.exe -r 192.168.0.1:3910 # get new release $ client.exe -u 192.168.0.1:3910 # get new dbs $ client.exe 192.168.0.1:3910 0800012345 20171231 # get images - $ client.exe -a 192.168.0.1:3910 upfile.txt # upload file + $ client.exe -a 192.168.0.1:3910 upfile.txt # upload file to /upload + $ client.exe -m 192.168.0.1:3910 hhs.db # upload file to /db */ package main @@ -42,15 +43,16 @@ var version string func init() { - version = "1.2" + version = "1.3" // manage-db version } func main() { - var upgrade = flag.Bool( "r", false, "" ) // get grsearcher.exe, crypto.exe client.exe - var update = flag.Bool( "u", false, "" ) // get auth.db, hhs.db, index.db(14,28) - var upload = flag.Bool( "a", false, "" ) // post somefile - var cnttime = flag.Bool( "t", false, "" ) // count time - var printver = flag.Bool( "v", false, "" ) // print version + var upgrade = flag.Bool( "r", false, "get new release" ) // get grsearcher.exe, crypto.exe client.exe + var update = flag.Bool( "u", false, "get new DBs" ) // get auth.db, hhs.db, index.db(14,28) + var managedb = flag.Bool( "m", false, "upload to /db" ) // management db + var upload = flag.Bool( "a", false, "upload to /upload" ) // post somefile + var cnttime = flag.Bool( "t", false, "measure work time" ) // count time + var printver = flag.Bool( "v", false, "print version" ) // print version flag.Parse() // print version @@ -64,26 +66,36 @@ // upload if *upload { if flag.NArg() != 2 { - fmt.Fprintf( os.Stderr, "bad host or file.\n" ) + fmt.Fprint( os.Stderr, "bad host or file.\n" ) os.Exit( 1 ) } host := flag.Args()[0] file := flag.Args()[1] fmt.Printf( "Sending %s...", file ) - f, err := os.Open( file ) - if err != nil { + if message, err := post_file( host, "/upload", file ); err != nil { + log.Fatal( err ) + } else { + fmt.Println( string( message ) ) + } + + if *cnttime { + fmt.Println( "---", time.Now().Sub( st ) ) + } + os.Exit( 0 ) + } + + // management db + if *managedb { + if flag.NArg() != 2 { + fmt.Fprint( os.Stderr, "bad remote host.\n" ) + os.Exit( 1 ) + } + host := flag.Args()[0] + file := flag.Args()[1] + fmt.Print( "Management DB..." ) + if _, err := post_file( host, "/mngdb/", file ); err != nil { log.Fatal( err ) } - defer f.Close() - - res, err := http.Post( "http://" + host + "/upload", "binary/octet-stream", f ) - if err != nil { - log.Fatal( err ) - } - defer res.Body.Close() - message, _ := ioutil.ReadAll( res.Body ) - fmt.Println( string( message ) ) - if *cnttime { fmt.Println( "---", time.Now().Sub( st ) ) } @@ -93,7 +105,7 @@ // software upgrade if *upgrade { if flag.NArg() != 1 { - fmt.Fprintf( os.Stderr, "bad remote host.\n" ) + fmt.Fprint( os.Stderr, "bad remote host.\n" ) os.Exit( 1 ) } fmt.Print( "Getting grsearcher.exe..." ) @@ -118,7 +130,7 @@ // database update if *update { if flag.NArg() != 1 { - fmt.Fprintf( os.Stderr, "bad remote host.\n" ) + fmt.Fprint( os.Stderr, "bad remote host.\n" ) os.Exit( 1 ) } fmt.Print( "Getting auth.db..." ) @@ -146,7 +158,7 @@ // main : image download if flag.NArg() != 3 { - fmt.Fprintf( os.Stderr, "bad argument.\n" ) + fmt.Fprint( os.Stderr, "bad argument.\n" ) os.Exit( 1 ) } @@ -160,11 +172,12 @@ } m := r.FindString( h ) if len( m ) == 0 { - fmt.Fprintf( os.Stderr, "bad hno.\n" ) + fmt.Fprint( os.Stderr, "bad hno.\n" ) os.Exit( 1 ) } rfile := "/images/" + d + "/" + h + ".tgz" + fmt.Print( "Getting", rfile ) b, err := get_file( host, rfile, "" ) if err != nil { log.Fatal( err ) @@ -179,6 +192,22 @@ } /* Subroutines */ +// HTTP POST +func post_file( host, path, file string ) ( []byte, error ) { + f, err := os.Open( file ) + if err != nil { + return nil, err + } + defer f.Close() + + res, err := http.Post( "http://" + host + path + file, "binary/octet-stream", f ) + if err != nil { + return nil, err + } + defer res.Body.Close() + return ioutil.ReadAll( res.Body ) +} + // HTTP GET func get_file( host, rfile, lfile string ) ( []byte, error ) { res, err := http.Get( "http://" + host + "/" + rfile )