Skip to content

Commit

Permalink
task: introducing the kit binary
Browse files Browse the repository at this point in the history
  • Loading branch information
paganotoni committed Jun 22, 2024
1 parent 7b0d994 commit 1a7b395
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 79 deletions.
48 changes: 0 additions & 48 deletions cmd/generate/main.go

This file was deleted.

48 changes: 17 additions & 31 deletions cmd/database/main.go → cmd/kit/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,27 @@ import (

"github.com/leapkit/core/db"

// Load environment variables
// Loading .env file
_ "github.com/leapkit/core/tools/envload"
// sqlite3 driver
_ "github.com/mattn/go-sqlite3"
// postgres driver
_ "github.com/lib/pq"
)

func main() {
if len(os.Args) < 2 {
fmt.Println("Usage: tools database <command>")
fmt.Println("Available commands:")
fmt.Println(" - migrate")
fmt.Println(" - create")
fmt.Println(" - drop")
// Postgres driver
_ "github.com/lib/pq"

return
}
// Sqlite3 driver
_ "github.com/mattn/go-sqlite3"
)

// database provides operations to manage the database
// during development. It can create, drop and run migrations.
func database(args []string) error {
url := os.Getenv("DATABASE_URL")
if url == "" {
fmt.Println("[error] DATABASE_URL is not set")
fmt.Println(" DATABASE_URL is not set")

return
return nil
}

switch os.Args[1] {
switch args[1] {
case "migrate":
driver := "sqlite3"
if strings.HasPrefix(url, "postgres") {
Expand All @@ -44,41 +38,33 @@ func main() {

conn, err := sql.Open(driver, url)
if err != nil {
fmt.Println(err)

return
return err
}

err = db.RunMigrationsDir(filepath.Join("internal", "migrations"), conn)
if err != nil {
fmt.Println(err)

return
return err
}

fmt.Println("✅ Migrations ran successfully")
case "create":
err := db.Create(url)
if err != nil {
fmt.Println(err)

return
return err
}

fmt.Println("✅ Database created successfully")

case "drop":
err := db.Drop(url)
if err != nil {
fmt.Println(err)

return
return err
}

fmt.Println("✅ Database dropped successfully")
default:
fmt.Println("command not found")

return
return nil
}
}

Check failure on line 70 in cmd/kit/database.go

View workflow job for this annotation

GitHub Actions / tests

missing return
37 changes: 37 additions & 0 deletions cmd/kit/generate.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package main

import (
"fmt"
"os"
"path/filepath"

"github.com/leapkit/core/db"
"github.com/leapkit/core/db/migrations"
)

func generate(args []string) error {
if len(args) < 2 {
fmt.Println("Usage: generate <generator_name>")

return nil
}

if args[1] != "migration" {
fmt.Println("Usage: generate [generator]")

return nil
}

err := db.GenerateMigration(
os.Args[2], // name of the migration

// This is the path to the migrations folder
migrations.UseMigrationFolder(filepath.Join("internal", "migrations")),
)

if err != nil {
return err
}

return nil
}
26 changes: 26 additions & 0 deletions cmd/kit/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package main

import (
"fmt"
"os"
)

func main() {
if len(os.Args) < 2 {
fmt.Println("Usage: kit <command>")
fmt.Println("Available commands:")
fmt.Println(" - database")
fmt.Println(" - generate")

return
}

switch os.Args[1] {
case "database", "db":
database(os.Args[1:])
case "generate", "gen", "g":
generate(os.Args[1:])
default:
fmt.Printf("Unknown command `%v`.\n\n", os.Args[1])
}
}

0 comments on commit 1a7b395

Please sign in to comment.