12
|
1 /*
|
|
2 extsql.go : manipulate sqlite3.
|
|
3 Version : 0.1
|
13
|
4 Last Change: 2018-11-14 水 13:48:23.
|
12
|
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 {
|
13
|
33 fmt.Println( "extsql [ ver", version, "]" )
|
12
|
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
|
13
|
73 f, _ = os.Create( "hhs.csv.tmp" )
|
12
|
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
|