diff --git a/app/app.go b/app/app.go new file mode 100644 index 0000000..82a8577 --- /dev/null +++ b/app/app.go @@ -0,0 +1,17 @@ +package app + +import ( + "database/sql" + "fmt" + "gitnet.fr/deblan/database-anonymizer/config" +) + +type App struct { +} + +func (a *App) Run(db *sql.DB, schema config.SchemaConfig) error { + fmt.Printf("%+v\n", db) + fmt.Printf("%+v\n", schema) + + return nil +} diff --git a/main.go b/main.go index 05ef4fa..390e3c1 100644 --- a/main.go +++ b/main.go @@ -1,43 +1,43 @@ package main import ( + "database/sql" "fmt" + _ "github.com/go-sql-driver/mysql" + _ "github.com/lib/pq" "github.com/urfave/cli/v2" + "gitnet.fr/deblan/database-anonymizer/app" "gitnet.fr/deblan/database-anonymizer/config" - "log" + "gitnet.fr/deblan/database-anonymizer/logger" "os" ) func main() { app := &cli.App{ Flags: []cli.Flag{ - &cli.StringFlag{ - Name: "type", - Value: "", - Usage: "type of database (eg: mysql)", - }, &cli.StringFlag{ Name: "dsn", Value: "", Usage: "DSN (eg: mysql://user:pass@host/dbname)", }, &cli.StringFlag{ - Name: "config", - Value: "config.yaml", + Name: "schema", + Value: "schema.yaml", Usage: "Configuration file", }, }, Action: func(c *cli.Context) error { - err, databaseConfig := config.LoadDatabaseConfig(c) + databaseConfig, err := config.LoadDatabaseConfig(c.String("dsn")) + logger.LogFatalExitIf(err) - if err != nil { - log.Fatalf(err.Error()) - os.Exit(1) - } + db, err := sql.Open(databaseConfig.Type, databaseConfig.Dsn) + logger.LogFatalExitIf(err) - fmt.Printf("%+v\n", databaseConfig) + schema, err := config.LoadSchemaConfigFromFile(c.String("schema")) + logger.LogFatalExitIf(err) - return nil + app := app.App{} + return app.Run(db, schema) }, }