diff --git a/data/insee_data.go b/data/insee_data.go index a9501d7..5bf2b66 100644 --- a/data/insee_data.go +++ b/data/insee_data.go @@ -40,7 +40,7 @@ type InseeData struct { func NewInseeData(inseeNumber string) (*InseeData, error) { if len(inseeNumber) != 15 { - return nil, fmt.Errorf("provided insee number must contain 15 characters") + return nil, fmt.Errorf("le numéro INSEE number must contain 15 characters") } num := inseeNumber departmentCode := num[5:7] diff --git a/main.go b/main.go index 142768b..20adb9b 100644 --- a/main.go +++ b/main.go @@ -4,19 +4,27 @@ import ( "flag" "fmt" "insee_number_translator/data" + "os" ) func main() { - var preProcess bool - flag.BoolVar(&preProcess, "pre-process", false, "Pre-process data files.") + flag.Usage = func() { + out := flag.CommandLine.Output() + fmt.Fprintf(out, "Usage: %s [flags] [numero_insee...]\n", os.Args[0]) + fmt.Fprintf(out, "\nCe programme décode les informations contenues dans votre numéro INSEE (numéro de sécurité sociale français)") + fmt.Fprintf(out, "et vous les affiche d'une manière lisible et claire.\n") + flag.PrintDefaults() + fmt.Fprintf(out, "\nLes arguments numero_insee doivent comporter 15 caractères. Il est possible d'en spécifier plusieurs séparés par un espace.\n") + } + flag.Parse() - if preProcess { - data.PreProcessRawData("data/raw_data", "data/curated_data") + numbers := flag.Args() + if len(numbers) == 0 { + flag.Usage() return } - numbers := flag.Args() for _, number := range numbers { insee, err := data.NewInseeData(number) if err != nil { diff --git a/data/preprocess.go b/pre_process/preprocess.go similarity index 79% rename from data/preprocess.go rename to pre_process/preprocess.go index 7c04e63..ffb7a68 100644 --- a/data/preprocess.go +++ b/pre_process/preprocess.go @@ -1,4 +1,4 @@ -package data +package main import ( "encoding/csv" @@ -8,27 +8,33 @@ import ( "os" ) +func main() { + fmt.Println("This is intended for tinkerers only, not for end users.") + PreProcessRawData("data/raw_data", "data/curated_data") +} + func PreProcessRawData(sourceFolder, targetFolder string) { err := os.MkdirAll(targetFolder, 0755) if err != nil { fmt.Printf("Error, couldn't create target folder %s: %s", targetFolder, err) return } - err = preProcessCities(sourceFolder+"/commune2021.csv", targetFolder+"/cities.json") + err = preProcessCities(sourceFolder+"/commune.csv", targetFolder+"/cities.json") if err != nil { - fmt.Println("Error during cities pre processing") - fmt.Println(err.Error()) + fmt.Fprintln(os.Stderr, "Error during cities pre processing") + fmt.Fprintln(os.Stderr, err.Error()) } - err = preProcessDepartments(sourceFolder+"/departement2021.csv", targetFolder+"/departments.json") + err = preProcessDepartments(sourceFolder+"/departement.csv", targetFolder+"/departments.json") if err != nil { - fmt.Println("Error during departments pre processing") - fmt.Println(err.Error()) + fmt.Fprintln(os.Stderr, "Error during departments pre processing") + fmt.Fprintln(os.Stderr, err.Error()) } - err = preProcessCountries(sourceFolder+"/pays2021.csv", targetFolder+"/countries.json") + err = preProcessCountries(sourceFolder+"/pays.csv", targetFolder+"/countries.json") if err != nil { - fmt.Println("Error during countries pre processing") - fmt.Println(err.Error()) + fmt.Fprintln(os.Stderr, "Error during countries pre processing") + fmt.Fprintln(os.Stderr, err.Error()) } + fmt.Println("Finished pre-processing data.") } func preProcessCities(sourceFileName, targetFileName string) error {