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 |
