Mercurial > mercurial > hgweb_rsearcher.cgi
comparison go/extsql.go @ 12:240752cbe11b
db-upload.(by go)
author | pyon@macmini |
---|---|
date | Tue, 13 Nov 2018 21:11:20 +0900 |
parents | |
children | f5ffc34f045a |
comparison
equal
deleted
inserted
replaced
11:799b6008db8e | 12:240752cbe11b |
---|---|
1 /* | |
2 extsql.go : manipulate sqlite3. | |
3 Version : 0.1 | |
4 Last Change: 2018-11-13 火 15:22:56. | |
5 | |
6 install to: rsearcher_root/ | |
7 */ | |
8 package main | |
9 | |
10 import ( | |
11 "fmt" | |
12 "flag" | |
13 "log" | |
14 "os" | |
15 "os/exec" | |
16 "strings" | |
17 ) | |
18 | |
19 var version string | |
20 var sqlite string | |
21 | |
22 func init() { | |
23 version = "0.1" // first version | |
24 sqlite = "sqlite3.exe" | |
25 } | |
26 | |
27 func main() { | |
28 var printver = flag.Bool( "v", false, "print version" ) // print version | |
29 flag.Parse() | |
30 | |
31 // print version | |
32 if *printver { | |
33 fmt.Println( "mngdb [ ver", version, "]" ) | |
34 os.Exit( 0 ) | |
35 } | |
36 | |
37 if flag.NArg() != 3 { | |
38 fmt.Fprint( os.Stderr, "argument error.\n" ) | |
39 fmt.Fprint( os.Stderr, "> extsql.exe hhs.db ccn.db 20160401\n" ) | |
40 os.Exit( 1 ) | |
41 } | |
42 hhs := flag.Args()[0] | |
43 ccn := flag.Args()[1] | |
44 ymd := flag.Args()[2] | |
45 | |
46 // make idnex.db | |
47 sql := "select hhsno, date from path where date >= " + ymd | |
48 ccndb, err := exec.Command( sqlite, ccn, sql ).Output() | |
49 if err != nil { | |
50 log.Fatal( err ) | |
51 } | |
52 | |
53 f, _ := os.Create( "index.db" ) | |
54 defer f.Close() | |
55 | |
56 m := make( map[string]bool ) | |
57 for _, cols := range strings.Split( string( ccndb ), "\n" ) { | |
58 col := strings.Split( cols, "|" ) | |
59 if len( col ) == 2 { | |
60 buf := fmt.Sprintf( "%s:%s\n", col[0], col[1] ) | |
61 f.WriteString( buf ) | |
62 m[ col[0] ] = true | |
63 } | |
64 } | |
65 | |
66 // make hhs.csv | |
67 sql = "select * from hhs_master" | |
68 hhsdb, err := exec.Command( sqlite, hhs, sql ).Output() | |
69 if err != nil { | |
70 log.Fatal( err ) | |
71 } | |
72 | |
73 f, _ = os.Create( "hhs.csv" ) | |
74 for _, cols := range strings.Split( string( hhsdb ), "\n" ) { | |
75 col := strings.Split( cols, "|" ) | |
76 if _, ok := m[ col[0] ]; ok == true { | |
77 buf := strings.Replace( cols, "|", ",", -1 ) + "\n" | |
78 f.WriteString( buf ) | |
79 } | |
80 } | |
81 f.Close() | |
82 } | |
83 |