annotate go/extsql.go @ 12:240752cbe11b

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