This commit is contained in:
parent
8e85935969
commit
dd819dafc9
|
@ -79,12 +79,25 @@ func PrintHashFileResult(result *HashFileResult, format string, settings Postgre
|
||||||
func PostgresHashFileResult(result *HashFileResult, settings PostgresSettings) {
|
func PostgresHashFileResult(result *HashFileResult, settings PostgresSettings) {
|
||||||
var err error
|
var err error
|
||||||
var rows *sql.Rows
|
var rows *sql.Rows
|
||||||
switch settings.Mode {
|
|
||||||
case "insert":
|
if settings.Binary {
|
||||||
rows, err = settings.Handle.Query(fmt.Sprintf("INSERT INTO %s (%s, %s, %s) VALUES ($1, $2, $3);", pq.QuoteIdentifier(settings.Table), pq.QuoteIdentifier(settings.PathRow), pq.QuoteIdentifier(settings.MD5Row), pq.QuoteIdentifier(settings.SHA256Row)), result.Path, result.MD5, result.SHA256)
|
h_md5, _ := hex.DecodeString(result.MD5)
|
||||||
case "update":
|
h_sha256, _ := hex.DecodeString(result.SHA256)
|
||||||
rows, err = settings.Handle.Query(fmt.Sprintf("UPDATE %s SET %s = $2, %s = $3 WHERE %s = $1;", pq.QuoteIdentifier(settings.Table), pq.QuoteIdentifier(settings.MD5Row), pq.QuoteIdentifier(settings.SHA256Row), pq.QuoteIdentifier(settings.PathRow)), result.Path, result.MD5, result.SHA256)
|
switch settings.Mode {
|
||||||
|
case "insert":
|
||||||
|
rows, err = settings.Handle.Query(fmt.Sprintf("INSERT INTO %s (%s, %s, %s) VALUES ($1, $2, $3);", pq.QuoteIdentifier(settings.Table), pq.QuoteIdentifier(settings.PathRow), pq.QuoteIdentifier(settings.MD5Row), pq.QuoteIdentifier(settings.SHA256Row)), result.Path, h_md5, h_sha256)
|
||||||
|
case "update":
|
||||||
|
rows, err = settings.Handle.Query(fmt.Sprintf("UPDATE %s SET %s = $2, %s = $3 WHERE %s = $1;", pq.QuoteIdentifier(settings.Table), pq.QuoteIdentifier(settings.MD5Row), pq.QuoteIdentifier(settings.SHA256Row), pq.QuoteIdentifier(settings.PathRow)), result.Path, h_md5, h_sha256)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch settings.Mode {
|
||||||
|
case "insert":
|
||||||
|
rows, err = settings.Handle.Query(fmt.Sprintf("INSERT INTO %s (%s, %s, %s) VALUES ($1, $2, $3);", pq.QuoteIdentifier(settings.Table), pq.QuoteIdentifier(settings.PathRow), pq.QuoteIdentifier(settings.MD5Row), pq.QuoteIdentifier(settings.SHA256Row)), result.Path, result.MD5, result.SHA256)
|
||||||
|
case "update":
|
||||||
|
rows, err = settings.Handle.Query(fmt.Sprintf("UPDATE %s SET %s = $2, %s = $3 WHERE %s = $1;", pq.QuoteIdentifier(settings.Table), pq.QuoteIdentifier(settings.MD5Row), pq.QuoteIdentifier(settings.SHA256Row), pq.QuoteIdentifier(settings.PathRow)), result.Path, result.MD5, result.SHA256)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, result.Path, "SQL Error: ", err)
|
fmt.Fprintln(os.Stderr, result.Path, "SQL Error: ", err)
|
||||||
}
|
}
|
||||||
|
@ -96,6 +109,7 @@ func PostgresHashFileResult(result *HashFileResult, settings PostgresSettings) {
|
||||||
type PostgresSettings struct {
|
type PostgresSettings struct {
|
||||||
Handle *sql.DB
|
Handle *sql.DB
|
||||||
ConnStr string
|
ConnStr string
|
||||||
|
Binary bool
|
||||||
Mode string
|
Mode string
|
||||||
Table string
|
Table string
|
||||||
PathRow string
|
PathRow string
|
||||||
|
@ -114,6 +128,7 @@ func main() {
|
||||||
|
|
||||||
outputFormat := flag.String("format", "text", "Output formats. Allowed: text, json, postgres")
|
outputFormat := flag.String("format", "text", "Output formats. Allowed: text, json, postgres")
|
||||||
pgConnStr := flag.String("pg_connstr", "", "Postgres connection string for postgres output format")
|
pgConnStr := flag.String("pg_connstr", "", "Postgres connection string for postgres output format")
|
||||||
|
pgBinary := flag.Bool("pg_binary", false, "Postgres binary hash mode")
|
||||||
pgMode := flag.String("pg_mode", "insert", "Postgres output mode, insert or update")
|
pgMode := flag.String("pg_mode", "insert", "Postgres output mode, insert or update")
|
||||||
pgTable := flag.String("pg_table", "files", "Postgres output table")
|
pgTable := flag.String("pg_table", "files", "Postgres output table")
|
||||||
pgPathRow := flag.String("pg_row_path", "path", "Postgres output row: path")
|
pgPathRow := flag.String("pg_row_path", "path", "Postgres output row: path")
|
||||||
|
@ -125,6 +140,7 @@ func main() {
|
||||||
pgSettings := PostgresSettings{
|
pgSettings := PostgresSettings{
|
||||||
nil,
|
nil,
|
||||||
*pgConnStr,
|
*pgConnStr,
|
||||||
|
*pgBinary,
|
||||||
*pgMode,
|
*pgMode,
|
||||||
*pgTable,
|
*pgTable,
|
||||||
*pgPathRow,
|
*pgPathRow,
|
||||||
|
|
Loading…
Reference in a new issue