comparison go/client.go @ 4:06342fc544e4

mouse gesture.
author pyon@macmini
date Mon, 15 Oct 2018 20:07:38 +0900
parents db4813125eb8
children 29829e98d510
comparison
equal deleted inserted replaced
3:db4813125eb8 4:06342fc544e4
1 /* 1 /*
2 client.go : client-program. 2 client.go : client-program.
3 Version : 1.0a 3 Version : 1.1
4 Last Change: 2018-10-03 水 13:44:11. 4 Last Change: 2018-10-12 金 13:42:55.
5 5
6 install to: rsearcher_root/ 6 install to: rsearcher_root/
7 7
8 rsearcher_root/client.exe 8 rsearcher_root/client.exe
9 + grsearcher.exe 9 + grsearcher.exe
12 + auth.db ( temporary ) 12 + auth.db ( temporary )
13 + hhs.db ( temporary ) 13 + hhs.db ( temporary )
14 + index.db ( 10 days ) 14 + index.db ( 10 days )
15 + image/*.png, *.jpg 15 + image/*.png, *.jpg
16 + doc/ 16 + doc/
17 + .cache/*.jpg ( temporary ) 17 + .cache/* ( temporary )
18 18
19 $ client.exe -r 192.168.0.1:3910 # get new release 19 $ client.exe -r 192.168.0.1:3910 # get new release
20 $ client.exe -u 192.168.0.1:3910 # get new dbs 20 $ client.exe -u 192.168.0.1:3910 # get new dbs
21 $ client.exe 192.168.0.1:3910 0800012345 20171231 # get images 21 $ client.exe 192.168.0.1:3910 0800012345 20171231 # get images
22 */ 22 */
36 "path/filepath" 36 "path/filepath"
37 "regexp" 37 "regexp"
38 "time" 38 "time"
39 ) 39 )
40 40
41 var version string
42
43 func init() {
44 version = "1.1"
45 }
46
41 func main() { 47 func main() {
42 var upgrade = flag.Bool( "r", false, "" ) // get grsearcher.exe, client.exe 48 var upgrade = flag.Bool( "r", false, "" ) // get grsearcher.exe, client.exe
43 var update = flag.Bool( "u", false, "" ) // get auth.db, hhs.db, index.db(5day) 49 var update = flag.Bool( "u", false, "" ) // get auth.db, hhs.db, index.db(14,28)
50 var upload = flag.Bool( "a", false, "" ) // post somefile
51 var printver = flag.Bool( "v", false, "" ) // print version
44 flag.Parse() 52 flag.Parse()
45 53
54 // print version
55 if *printver {
56 fmt.Println( "client ( version ", version, ")" )
57 os.Exit( 0 )
58 }
59
60 // upload
61 if *upload {
62 if flag.NArg() != 2 {
63 fmt.Fprintf( os.Stderr, "bad host or file.\n" )
64 os.Exit( 1 )
65 }
66 host := flag.Args()[0]
67 file := flag.Args()[1]
68 fmt.Printf( "Sending %s...", file )
69 f, err := os.Open( file )
70 if err != nil {
71 log.Fatal( err )
72 }
73 defer f.Close()
74
75 res, err := http.Post( "http://" + host + "/upload", "binary/octet-stream", f )
76 if err != nil {
77 log.Fatal( err )
78 }
79 defer res.Body.Close()
80 message, _ := ioutil.ReadAll( res.Body )
81 fmt.Println( string( message ) )
82
83 os.Exit( 0 )
84 }
85
86 // software upgrade
46 if *upgrade { 87 if *upgrade {
47 if flag.NArg() != 1 { 88 if flag.NArg() != 1 {
48 fmt.Fprintf( os.Stderr, "no remote host.\n" ) 89 fmt.Fprintf( os.Stderr, "bad remote host.\n" )
49 os.Exit( 1 ) 90 os.Exit( 1 )
50 } 91 }
51 fmt.Print( "Getting grsearcher.exe..." ) 92 fmt.Print( "Getting grsearcher.exe..." )
52 host := flag.Args()[0] 93 host := flag.Args()[0]
53 if _, err := get_file( host, "/release/grsearcher.exe", "grsearcher.exe" ); err != nil { 94 if _, err := get_file( host, "/release/grsearcher.exe", "grsearcher.exe" ); err != nil {
54 log.Fatal( err ) 95 log.Fatal( err )
55 } 96 }
97 fmt.Print( "Getting crypto.exe..." )
98 if _, err := get_file( host, "/release/crypto.exe", "crypto.exe" ); err != nil {
99 log.Fatal( err )
100 }
56 fmt.Print( "Getting client.exe..." ) 101 fmt.Print( "Getting client.exe..." )
57 if _, err := get_file( host, "/release/client.exe", "client1.exe" ); err != nil { 102 if _, err := get_file( host, "/release/client.exe", "client1.exe" ); err != nil {
58 log.Fatal( err ) 103 log.Fatal( err )
59 } 104 }
60 os.Exit( 0 ) 105 os.Exit( 0 )
61 } 106 }
62 107
108 // database update
63 if *update { 109 if *update {
64 if flag.NArg() != 1 { 110 if flag.NArg() != 1 {
65 fmt.Fprintf( os.Stderr, "no remote host.\n" ) 111 fmt.Fprintf( os.Stderr, "bad remote host.\n" )
66 os.Exit( 1 ) 112 os.Exit( 1 )
67 } 113 }
68 fmt.Print( "Getting auth.db..." ) 114 fmt.Print( "Getting auth.db..." )
69 host := flag.Args()[0] 115 host := flag.Args()[0]
70 if _, err := get_file( host, "/db/auth.db", "auth.db" ); err != nil { 116 if _, err := get_file( host, "/db/auth.db", "auth.db" ); err != nil {
73 fmt.Print( "Getting hhs.db..." ) 119 fmt.Print( "Getting hhs.db..." )
74 if _, err := get_file( host, "/db/hhs.db", "hhs.db" ); err != nil { 120 if _, err := get_file( host, "/db/hhs.db", "hhs.db" ); err != nil {
75 log.Fatal( err ) 121 log.Fatal( err )
76 } 122 }
77 123
78 if time.Now().Day() % 10 == 0 { 124 if time.Now().Day() % 14 == 0 {
79 fmt.Print( "Getting index.db..." ) 125 fmt.Print( "Getting index.db..." )
80 if _, err := get_file( host, "/db/index.db", "index.db" ); err != nil { 126 if _, err := get_file( host, "/db/index.db", "index.db" ); err != nil {
81 log.Fatal( err ) 127 log.Fatal( err )
82 } 128 }
83 } 129 }
84 os.Exit( 0 ) 130 os.Exit( 0 )
85 } 131 }
86 132
87 // main 133 // main : image download
88 if flag.NArg() != 3 { 134 if flag.NArg() != 3 {
89 fmt.Fprintf( os.Stderr, "bad argument.\n" ) 135 fmt.Fprintf( os.Stderr, "bad argument.\n" )
90 os.Exit( 1 ) 136 os.Exit( 1 )
91 } 137 }
92 138
157 if err != nil { 203 if err != nil {
158 return err 204 return err
159 } 205 }
160 //f, _ := os.Create( hdr.Name ) 206 //f, _ := os.Create( hdr.Name )
161 fn := fmt.Sprintf( "%s_%d", d, i ) // 1.0a 207 fn := fmt.Sprintf( "%s_%d", d, i ) // 1.0a
162 //fn = fmt.Sprintf( "00000000_%d", i ) // for test
163 208
164 fn = filepath.Join( ".cache", fn ) 209 fn = filepath.Join( ".cache", fn )
165 f, _ := os.Create( fn ) 210 f, _ := os.Create( fn )
166 if _, err := io.Copy( f, tr ); err != nil { 211 if _, err := io.Copy( f, tr ); err != nil {
167 return err 212 return err