Skip to content

Commit 1dbe603

Browse files
committed
update the default dir setup logic to make it more homebrew friendly
1 parent 6a4ed05 commit 1dbe603

File tree

7 files changed

+48
-18
lines changed

7 files changed

+48
-18
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ env_config.json
77
gitclient
88
/*.exe
99
/*.dll
10+
gitconvex
11+
gitconvex-server

generators/default_dir_const_gen.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"log"
6+
"os"
7+
"text/template"
8+
)
9+
10+
func main() {
11+
templateString := fmt.Sprintf("package global\n\nfunc GetDefaultDirectory() string {\n\treturn \"{{ .DefaultDirFromEnv }}\"\n}\n")
12+
var fileTemplate = template.Must(template.New("").Parse(templateString))
13+
14+
var defaultDirFromEnv = os.Getenv("GITCONVEX_DEFAULT_PATH")
15+
file, fileErr := os.Create("./global/default_dir_const.go")
16+
if fileErr != nil {
17+
log.Fatal(fileErr.Error())
18+
}
19+
20+
err := fileTemplate.ExecuteTemplate(file, "", struct {
21+
DefaultDirFromEnv string
22+
}{
23+
DefaultDirFromEnv: defaultDirFromEnv,
24+
})
25+
if err != nil {
26+
log.Fatal(err.Error())
27+
}
28+
}

global/default_dir_const.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package global
2+
3+
func GetDefaultDirectory() string {
4+
return "GENERATED_ENV_STRING_GOES_HERE"
5+
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/libgit2/git2go/v31 v31.4.10
1010
github.com/rs/cors v1.7.0
1111
github.com/sirupsen/logrus v1.8.1
12-
github.com/stretchr/testify v1.4.0
12+
github.com/stretchr/testify v1.7.0
1313
github.com/vektah/gqlparser/v2 v2.1.0
1414
golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c
1515
)

go.sum

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,9 @@ github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic
6161
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6262
github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
6363
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
64-
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
6564
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
65+
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
66+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
6667
github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
6768
github.com/vektah/dataloaden v0.2.1-0.20190515034641-a19b9a6e7c9e/go.mod h1:/HUdMve7rvxZma+2ZELQeNh88+003LL7Pf/CZ089j8U=
6869
github.com/vektah/gqlparser/v2 v2.1.0 h1:uiKJ+T5HMGGQM2kRKQ8Pxw8+Zq9qhhZhz/lieYvCMns=
@@ -96,5 +97,7 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8
9697
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
9798
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
9899
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
100+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
101+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
99102
sourcegraph.com/sourcegraph/appdash v0.0.0-20180110180208-2cc67fd64755/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
100103
sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k=

server.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ var (
2424

2525
var logger global.Logger
2626

27+
//go:generate go run ./generators/default_dir_const_gen.go
28+
2729
func main() {
2830
versionFlag := flag.Bool("version", false, "To get the current version of gitconvex")
2931
portFlag := flag.String("port", "", "To define the port dynamically while starting gitconvex")

utils/default_dir_setup.go

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package utils
22

33
import (
4-
"flag"
54
"github.com/neel1996/gitconvex/global"
65
"go/types"
76
"os"
@@ -10,19 +9,10 @@ import (
109
)
1110

1211
func DefaultDirSetup() (string, error) {
13-
var baseDirPath *string
14-
baseDirFlag := flag.Lookup("basedir")
12+
baseDirPath := global.GetDefaultDirectory()
1513

16-
if baseDirFlag == nil {
17-
baseDirPath = flag.String("basedir", "/usr/local/gitconvex", "Default gitconvex directory path for Linux and MacOS")
18-
flag.Parse()
19-
} else {
20-
flagPath := baseDirFlag.Value.String()
21-
baseDirPath = &flagPath
22-
}
23-
24-
if baseDirPath == nil {
25-
return "", types.Error{Msg: "Unable to parse basedir flag"}
14+
if baseDirPath == "" {
15+
return "", types.Error{Msg: "Default directory path value is empty"}
2616
}
2717

2818
if runtime.GOOS == "windows" {
@@ -38,15 +28,15 @@ func DefaultDirSetup() (string, error) {
3828
return execPath, nil
3929
}
4030

41-
_, statErr := os.Stat(*baseDirPath)
31+
_, statErr := os.Stat(baseDirPath)
4232
if statErr != nil {
43-
err := os.Mkdir(*baseDirPath, 0755)
33+
err := os.Mkdir(baseDirPath, 0644)
4434
if err != nil {
4535
logger.Log(err.Error(), global.StatusError)
4636
return "", err
4737
}
4838
} else {
49-
return *baseDirPath, nil
39+
return baseDirPath, nil
5040
}
5141

5242
return "", nil

0 commit comments

Comments
 (0)