diff --git a/.gitignore b/.gitignore index feee9f70e884268351b7eff4f571b945cf0a12a0..edd2caf2cf04125662c1dcc495a78b029023e77d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ -/gomodinit -/gomodinit.exe +/gomodinit* .idea/ \ No newline at end of file diff --git a/.goreleaser.yaml b/.goreleaser.yaml deleted file mode 100644 index da8139b3a77a124f68fd4c94d4a512ba438a1fed..0000000000000000000000000000000000000000 --- a/.goreleaser.yaml +++ /dev/null @@ -1,25 +0,0 @@ -builds: - - env: - - CGO_ENABLED=0 - goos: - - linux - - windows - - darwin - ldflags: - - "-s -w -X go.jolheiser.com/gomodinit.Version={{.Version}}" -archives: - - replacements: - 386: i386 - amd64: x86_64 - format_overrides: - - goos: windows - format: zip -checksum: - name_template: 'checksums.txt' -release: - gitea: - owner: jolheiser - name: gomodinit -gitea_urls: - api: https://git.jojodev.com/api/v1/ - download: https://git.jojodev.com diff --git a/.woodpecker/goreleaser.yml b/.woodpecker/goreleaser.yml deleted file mode 100644 index da850982fc2c4417325fc30a36010982bbfb4d3c..0000000000000000000000000000000000000000 --- a/.woodpecker/goreleaser.yml +++ /dev/null @@ -1,39 +0,0 @@ -clone: - git: - image: woodpeckerci/plugin-git - settings: - tags: true - -pipeline: - compliance: - image: golang:1.18 - commands: - - go test -race ./... - - go vet ./... - - go run github.com/rs/zerolog/cmd/lint@latest go.jolheiser.com/gomodinit - when: - event: pull_request - - build: - image: goreleaser/goreleaser - commands: - - goreleaser build --snapshot - when: - event: pull_request - - release: - image: goreleaser/goreleaser - commands: - - goreleaser release - secrets: [ gitea_token ] - when: - event: tag - - prune: - image: jolheiser/drone-gitea-prune - settings: - base: https://git.jojodev.com - token: - from_secret: gitea_token - when: - event: tag diff --git a/README.md b/README.md index 7eb06bcfad61409fcc44c1372c51a2d66d5bbf96..7fcba9ce7da2b5fb161559f5d032a627ff68387b 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ # gomodinit `go mod init` -`gomodinit` walks up the current dir path until it finds something vaguely resembling a URI (i.e. a path part with at least one `.`) +1. Set your base URL prefix via flag or env variable -and constructs a `go mod init ` call from it. +2. `gomodinit` will default to the current directory name as the module, otherwise the first command argument ## This seems like a trivial thing diff --git a/go.mod b/go.mod index 1473f2c893908696578a76e1fed9234001f3b073..00896c03073a462150ef4b19f9b9ff93c6ec21e0 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,5 @@ module go.jolheiser.com/gomodinit -go 1.18 +go 1.17 -require ( - github.com/matryer/is v1.4.0 - github.com/peterbourgon/ff/v3 v3.1.2 -) +require github.com/peterbourgon/ff/v3 v3.1.0 diff --git a/go.sum b/go.sum index 77069500ccf075f4c2f7ec82312cf9052fb9f48e..5dc37d8b91097f43a460e33d6272ada14fd44d13 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,7 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= -github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= -github.com/peterbourgon/ff/v3 v3.1.2 h1:0GNhbRhO9yHA4CC27ymskOsuRpmX0YQxwxM9UPiP6JM= +github.com/peterbourgon/ff/v3 v3.1.0 h1:5JAeDK5j/zhKFjyHEZQXwXBoDijERaos10RE+xamOsY= -github.com/peterbourgon/ff/v3 v3.1.2/go.mod h1:XNJLY8EIl6MjMVjBS4F0+G0LYoAqs0DTa4rmHHukKDE= +github.com/peterbourgon/ff/v3 v3.1.0/go.mod h1:XNJLY8EIl6MjMVjBS4F0+G0LYoAqs0DTa4rmHHukKDE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/gomodinit_test.go b/gomodinit_test.go deleted file mode 100644 index bb5bb02185fb0e7a76850999617d2e029f753fe6..0000000000000000000000000000000000000000 --- a/gomodinit_test.go +++ /dev/null @@ -1,61 +0,0 @@ -package main - -import ( - "fmt" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/matryer/is" -) - -func TestModule(t *testing.T) { - tmp := t.TempDir() - - tt := []struct { - Name string - Path string - Expected string - }{ - { - Name: "gitea", - Path: "gitea.com/user1/repo", - Expected: "gitea.com/user1/repo", - }, - { - Name: "gitea_sub", - Path: "gitea.com/user2/repo/subpkg", - Expected: "gitea.com/user2/repo/subpkg", - }, - { - Name: "no_uri", - Path: "giteacom/user3/repo", - Expected: "%s/giteacom/user3/repo", - }, - } - - for _, tc := range tt { - t.Run(tc.Name, func(t *testing.T) { - assert := is.New(t) - - dir := filepath.Join(tmp, tc.Path) - - err := os.MkdirAll(dir, os.ModePerm) - assert.NoErr(err) // Should create temp dir - - err = os.Chdir(dir) - assert.NoErr(err) // Should chdir to temp dir - - name, err := module() - assert.NoErr(err) // Should get module name - - expected := tc.Expected - if strings.Contains(expected, "%s") { - expected = fmt.Sprintf(expected, tmp) - } - - assert.Equal(name, expected) // Module name should match expected name - }) - } -} diff --git a/main.go b/main.go index e903f4bb19e3f70ad14d473264e7fa29ded812a7..1e74a63d6204131dd23e34603cf200402a4727c5 100644 --- a/main.go +++ b/main.go @@ -12,67 +12,46 @@ "github.com/peterbourgon/ff/v3" ) package main - - -package main import ( fs := flag.NewFlagSet("gomodinit", flag.ExitOnError) -package main "fmt" if err := ff.Parse(fs, os.Args[1:], ff.WithEnvVarPrefix("GMI")); err != nil { fmt.Println(err) return } - if *versionFlag { + if *base == "" { + "fmt" -package main return } - var name string - import ( + "strings" - "flag" - } else { - n, err := module() - +package main "os/exec" - +package main "path/filepath" - return - } - name = n } - cmd := exec.Command("go", "mod", "init", name) - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout -import ( "fmt" import ( - "os" -} import ( - "path/filepath" - dir, err := os.Getwd() + "flag" - return "", err } + "fmt" "flag" - - name := list[len(list)-1] - for idx := len(list) - 2; idx >= 0; idx-- { + - "flag" + "fmt" "fmt" - name = fmt.Sprintf("%s/%s", part, name) + cmd.Stdin = os.Stdin +import ( "flag" - "os/exec" - break + cmd.Stderr = os.Stderr import ( - } - return name, nil + "os" }