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) {
|
||||
var err error
|
||||
var rows *sql.Rows
|
||||
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 settings.Binary {
|
||||
h_md5, _ := hex.DecodeString(result.MD5)
|
||||
h_sha256, _ := hex.DecodeString(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 {
|
||||
fmt.Fprintln(os.Stderr, result.Path, "SQL Error: ", err)
|
||||
}
|
||||
|
@ -96,6 +109,7 @@ func PostgresHashFileResult(result *HashFileResult, settings PostgresSettings) {
|
|||
type PostgresSettings struct {
|
||||
Handle *sql.DB
|
||||
ConnStr string
|
||||
Binary bool
|
||||
Mode string
|
||||
Table string
|
||||
PathRow string
|
||||
|
@ -114,6 +128,7 @@ func main() {
|
|||
|
||||
outputFormat := flag.String("format", "text", "Output formats. Allowed: text, json, postgres")
|
||||
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")
|
||||
pgTable := flag.String("pg_table", "files", "Postgres output table")
|
||||
pgPathRow := flag.String("pg_row_path", "path", "Postgres output row: path")
|
||||
|
@ -125,6 +140,7 @@ func main() {
|
|||
pgSettings := PostgresSettings{
|
||||
nil,
|
||||
*pgConnStr,
|
||||
*pgBinary,
|
||||
*pgMode,
|
||||
*pgTable,
|
||||
*pgPathRow,
|
||||
|
|
Loading…
Reference in a new issue