diff --git a/bin/elastic/elastic b/bin/elastic/elastic index c56ac73..4dc0b52 100755 Binary files a/bin/elastic/elastic and b/bin/elastic/elastic differ diff --git a/bin/ss/ss b/bin/ss/ss new file mode 100755 index 0000000..9e224e2 Binary files /dev/null and b/bin/ss/ss differ diff --git a/build-static.sh b/build-static.sh index 183e83a..97bfe0c 100755 --- a/build-static.sh +++ b/build-static.sh @@ -1,2 +1,3 @@ #!/usr/bin/env sh go build -ldflags="-s -extldflags=-static" -o=./bin/elastic/elastic ./cmd/elastic +go build -ldflags="-s -extldflags=-static" -o=./bin/ss/ss ./cmd/ss diff --git a/cmd/elastic/main.go b/cmd/elastic/main.go index ac24583..53bc722 100644 --- a/cmd/elastic/main.go +++ b/cmd/elastic/main.go @@ -2,7 +2,6 @@ package main import ( "bytes" - "database/sql" "encoding/csv" "encoding/json" "flag" @@ -11,14 +10,12 @@ import ( "net/http" "os" "strings" - - _ "github.com/go-sql-driver/mysql" ) var ( - csvPath = flag.String("csv", "aips.csv", "Path to the CSV file containing AIP names") - elasticSearch = flag.String("elastic", "http://127.0.0.1:62002", "elastic search URL") - // mysqlConnString = flag.String("mysql", "root:12345@tcp(localhost:62001)/MCP", "mysql connection string") + csvPath = flag.String("csv", "aips.csv", "Path to the CSV file containing AIP names") + elasticSearch = flag.String("elastic", "http://127.0.0.1:62002", "elastic search URL") + mysqlConnString = flag.String("mysql", "root:12345@tcp(localhost:62001)/MCP", "mysql connection string") ) func main() { @@ -91,14 +88,6 @@ func do(path string, payload, responsePayload any) error { return json.Unmarshal(resBody, responsePayload) } -func openDB(connStr string) *sql.DB { - db, err := sql.Open("mysql", connStr) - assertNoErr(err) - err = db.Ping() - assertNoErr(err) - return db -} - func assertNoErr(err error) { if err != nil { panic(err) diff --git a/cmd/ss/main.go b/cmd/ss/main.go new file mode 100644 index 0000000..612ec54 --- /dev/null +++ b/cmd/ss/main.go @@ -0,0 +1,59 @@ +package main + +import ( + "context" + "database/sql" + "encoding/csv" + "flag" + "fmt" + "os" + + _ "github.com/go-sql-driver/mysql" + "github.com/stephenafamo/bob" + "gitlab.artefactual.com/dcosme/am-scripts/database/mcp/models" +) + +var ( + csvPath = flag.String("csv", "aips.csv", "Path to the CSV file containing AIP names") + mysqlConnString = flag.String("mysql", "root:12345@tcp(localhost:62001)/SS?parseTime=true", "mysql connection string") +) + +func main() { + flag.Parse() + file, err := os.Open(*csvPath) + assertNoErr(err) + records, err := csv.NewReader(file).ReadAll() + assertNoErr(err) + + result, err := os.OpenFile("aip_names.txt", os.O_TRUNC|os.O_CREATE|os.O_WRONLY, 0644) + assertNoErr(err) + + db := openDB(*mysqlConnString) + bobDB := bob.NewDB(db) + + for _, record := range records { + q := models.LocationsPackages.Query() + like := fmt.Sprintf("%%%s%%", record[0]) + q.Apply(models.SelectWhere.LocationsPackages.CurrentPath.Like(like)) + res, err := q.All(context.Background(), bobDB) + assertNoErr(err) + for _, r := range res { + fmt.Println("AIP Found: " + r.CurrentPath) + _, err = result.WriteString(r.CurrentPath + "\n") + } + } +} + +func assertNoErr(err error) { + if err != nil { + panic(err) + } +} + +func openDB(connStr string) *sql.DB { + db, err := sql.Open("mysql", connStr) + assertNoErr(err) + err = db.Ping() + assertNoErr(err) + return db +}