From 9950157ad5f466c696010466930c2bbb4d88fa27 Mon Sep 17 00:00:00 2001 From: Hadi <112569860+anotherhadi@users.noreply.github.com> Date: Sat, 27 Sep 2025 19:31:51 +0200 Subject: [PATCH] force header option Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com> --- leak-utils/leak-utils/main.go | 19 ++++++++++++++++++- leak-utils/misc/csv.go | 4 ++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/leak-utils/leak-utils/main.go b/leak-utils/leak-utils/main.go index f36606f..8c2dab2 100644 --- a/leak-utils/leak-utils/main.go +++ b/leak-utils/leak-utils/main.go @@ -27,6 +27,7 @@ func main() { actions := []string{ "cleanParquet", "infoParquet", + "present", // Csv "csvToParquet", // JSON @@ -59,6 +60,7 @@ func main() { var debug *bool = flag.Bool("debug", false, "Debug mode") var noColors *bool = flag.Bool("no-colors", false, "Remove all colors") var printQuery *bool = flag.BoolP("print-query", "p", false, "Print the query instead of executing it") + var forceHeader *bool = flag.BoolP("force-header", "f", false, "If there is an header (bypass detection)") flag.Parse() if *inputFile == "" || *outputFile == "" { log.Fatal("Input and output files are required") @@ -68,11 +70,26 @@ func main() { } lu.Compression = *compression lu.Debug = *debug - err := parquet.CleanParquet(lu, *inputFile, *outputFile, *skipLineFormating, *deleteFirstRow, *printQuery) + err := parquet.CleanParquet(lu, *inputFile, *outputFile, *skipLineFormating, *deleteFirstRow, *printQuery, *forceHeader) if err != nil { log.Fatal("Failed to clean Parquet file", "error", err) } return + case "present": + var inputFolder *string = flag.StringP("input", "i", "", "Input folder") + var noColors *bool = flag.Bool("no-colors", false, "Remove all colors") + flag.Parse() + if *inputFolder == "" { + log.Fatal("Input and output files are required") + } + if *noColors { + settings.DisableColors() + } + err := parquet.Present(*inputFolder) + if err != nil { + log.Fatal("Failed to present Parquet file", "error", err) + } + return case "infoParquet": var inputFile *string = flag.StringP("input", "i", "", "Input Parquet file") var debug *bool = flag.Bool("debug", false, "Debug mode") diff --git a/leak-utils/misc/csv.go b/leak-utils/misc/csv.go index 97e5fbd..ebc861e 100644 --- a/leak-utils/misc/csv.go +++ b/leak-utils/misc/csv.go @@ -13,7 +13,7 @@ import ( "github.com/charmbracelet/log" ) -func CsvToParquet(lu settings.LeakUtils, inputFile string, outputFile string, strict bool) error { +func CsvToParquet(lu settings.LeakUtils, inputFile string, outputFile string, strict, forceHeader bool) error { delimiter := getDelimiter(inputFile) hasHeader, err := csvHasHeader(inputFile, delimiter) @@ -21,7 +21,7 @@ func CsvToParquet(lu settings.LeakUtils, inputFile string, outputFile string, st return err } header := "true" - if !hasHeader { + if !hasHeader && !forceHeader { header = "false" } strictMode := "true"