Skip to content

Commit

Permalink
Refactor: move to internal directory, remove cmd
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandear committed Apr 1, 2023
1 parent 4f07657 commit cb955ff
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 61 deletions.
53 changes: 0 additions & 53 deletions cmd/cmd.go

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
49 changes: 47 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
@@ -1,16 +1,61 @@
package main

import (
"context"
"errors"
"fmt"
"log"
"net/url"
"os"
"time"

"github.com/alexandear/import-gitlab-commits/cmd"
app "github.com/alexandear/import-gitlab-commits/internal"
)

const (
runTimeout = 10 * time.Minute
)

func Execute(logger *log.Logger) error {
token := os.Getenv("GITLAB_TOKEN")
if token == "" {
return errors.New(`empty GITLAB_TOKEN, example "yourgitlabtoken"`)
}

baseURL, err := url.Parse(os.Getenv("GITLAB_BASE_URL"))
if err != nil {
return errors.New(`wrong GITLAB_BASE_URL, example "https://gitlab.com"`)
}

committerName := os.Getenv("COMMITTER_NAME")
if committerName == "" {
return errors.New(`empty COMMITTER_NAME, example "John Doe"`)
}

committerEmail := os.Getenv("COMMITTER_EMAIL")
if committerEmail == "" {
return errors.New(`empty COMMITTER_EMAIL, example "[email protected]"`)
}

app, err := app.New(logger, token, baseURL, committerName, committerEmail)
if err != nil {
return fmt.Errorf("create app: %w", err)
}

ctx, cancel := context.WithTimeout(context.Background(), runTimeout)
defer cancel()

if err := app.Run(ctx); err != nil {
return fmt.Errorf("app run: %w", err)
}

return nil
}

func main() {
logger := log.New(os.Stdout, "", log.Lshortfile|log.Ltime)

if err := cmd.Execute(logger); err != nil {
if err := Execute(logger); err != nil {
logger.Fatalln("Error:", err)
}
}
11 changes: 5 additions & 6 deletions cmd/cmd_test.go → main_test.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
package cmd_test
package main

import (
"testing"

"github.com/stretchr/testify/assert"

"github.com/alexandear/import-gitlab-commits/cmd"
"github.com/alexandear/import-gitlab-commits/test"
)

func TestExecute(t *testing.T) {
t.Run("error when wrong GITLAB_TOKEN", func(t *testing.T) {
t.Setenv("GITLAB_TOKEN", "")

err := cmd.Execute(test.NewLog(t))
err := Execute(test.NewLog(t))

assert.ErrorContains(t, err, "GITLAB_TOKEN")
})
Expand All @@ -22,7 +21,7 @@ func TestExecute(t *testing.T) {
t.Setenv("GITLAB_TOKEN", "yourgitlabtoken")
t.Setenv("GITLAB_BASE_URL", ":")

err := cmd.Execute(test.NewLog(t))
err := Execute(test.NewLog(t))

assert.ErrorContains(t, err, "GITLAB_BASE_URL")
})
Expand All @@ -32,7 +31,7 @@ func TestExecute(t *testing.T) {
t.Setenv("GITLAB_BASE_URL", "https://gitlab.com")
t.Setenv("COMMITTER_NAME", "")

err := cmd.Execute(test.NewLog(t))
err := Execute(test.NewLog(t))

assert.ErrorContains(t, err, "COMMITTER_NAME")
})
Expand All @@ -43,7 +42,7 @@ func TestExecute(t *testing.T) {
t.Setenv("COMMITTER_NAME", "John Doe")
t.Setenv("COMMITTER_EMAIL", "")

err := cmd.Execute(test.NewLog(t))
err := Execute(test.NewLog(t))

assert.ErrorContains(t, err, "COMMITTER_EMAIL")
})
Expand Down

0 comments on commit cb955ff

Please sign in to comment.