Mercurial > mercurial > hgweb_rsearcher.cgi
view go/extsql.go @ 13:f5ffc34f045a
manage DB.
author | pyon@macmini |
---|---|
date | Wed, 14 Nov 2018 19:43:40 +0900 |
parents | 240752cbe11b |
children |
line wrap: on
line source
/* extsql.go : manipulate sqlite3. Version : 0.1 Last Change: 2018-11-14 水 13:48:23. install to: rsearcher_root/ */ package main import ( "fmt" "flag" "log" "os" "os/exec" "strings" ) var version string var sqlite string func init() { version = "0.1" // first version sqlite = "sqlite3.exe" } func main() { var printver = flag.Bool( "v", false, "print version" ) // print version flag.Parse() // print version if *printver { fmt.Println( "extsql [ ver", version, "]" ) os.Exit( 0 ) } if flag.NArg() != 3 { fmt.Fprint( os.Stderr, "argument error.\n" ) fmt.Fprint( os.Stderr, "> extsql.exe hhs.db ccn.db 20160401\n" ) os.Exit( 1 ) } hhs := flag.Args()[0] ccn := flag.Args()[1] ymd := flag.Args()[2] // make idnex.db sql := "select hhsno, date from path where date >= " + ymd ccndb, err := exec.Command( sqlite, ccn, sql ).Output() if err != nil { log.Fatal( err ) } f, _ := os.Create( "index.db" ) defer f.Close() m := make( map[string]bool ) for _, cols := range strings.Split( string( ccndb ), "\n" ) { col := strings.Split( cols, "|" ) if len( col ) == 2 { buf := fmt.Sprintf( "%s:%s\n", col[0], col[1] ) f.WriteString( buf ) m[ col[0] ] = true } } // make hhs.csv sql = "select * from hhs_master" hhsdb, err := exec.Command( sqlite, hhs, sql ).Output() if err != nil { log.Fatal( err ) } f, _ = os.Create( "hhs.csv.tmp" ) for _, cols := range strings.Split( string( hhsdb ), "\n" ) { col := strings.Split( cols, "|" ) if _, ok := m[ col[0] ]; ok == true { buf := strings.Replace( cols, "|", ",", -1 ) + "\n" f.WriteString( buf ) } } f.Close() }