From a53b11fb2d40bf11e36f0c9c02e9981e9ff040e9 Mon Sep 17 00:00:00 2001 From: 4lxprime Date: Wed, 19 Jun 2024 18:14:11 +0200 Subject: [PATCH 1/2] [Installer]: upgrade cloning with gitdl --- go.mod | 4 ++- install.go | 76 ++++++++++++------------------------------------------ 2 files changed, 19 insertions(+), 61 deletions(-) diff --git a/go.mod b/go.mod index 29db43d..97d4d70 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,9 @@ module github.com/anthdm/superkit -go 1.22.0 +go 1.22.2 require ( + github.com/4lxprime/gitdl v0.0.0-20240619153508-50e6f992ff80 github.com/a-h/templ v0.2.707 github.com/gorilla/sessions v1.3.0 github.com/stretchr/testify v1.9.0 @@ -12,5 +13,6 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/install.go b/install.go index 438edd1..1f66656 100644 --- a/install.go +++ b/install.go @@ -4,13 +4,11 @@ import ( "crypto/rand" "encoding/hex" "fmt" - "io/fs" "log" "os" - "os/exec" "path" - "path/filepath" - "strings" + + "github.com/4lxprime/gitdl" ) const ( @@ -42,46 +40,21 @@ func main() { } } - fmt.Println("-- cloning", reponame) - clone := exec.Command("git", "clone", reponame) - if err := clone.Run(); err != nil { - log.Fatal(err) - } - - fmt.Println("-- renaming bootstrap ->", projectName) - if err := os.Rename(path.Join("superkit", bootstrapFolderName), projectName); err != nil { - log.Fatal(err) - } - - err = filepath.Walk(path.Join(projectName), func(fullPath string, info fs.FileInfo, err error) error { - if err != nil { - return err - } - if info.IsDir() { - return nil - } - - b, err := os.ReadFile(fullPath) - if err != nil { - return err - } + secret := generateSecret() - contentStr := string(b) - if strings.Contains(contentStr, replaceID) { - replacedContent := strings.ReplaceAll(contentStr, replaceID, projectName) - file, err := os.OpenFile(fullPath, os.O_WRONLY|os.O_TRUNC, 0644) - if err != nil { - return err - } - defer file.Close() - _, err = file.WriteString(replacedContent) - if err != nil { - return err - } - } - return nil - }) - if err != nil { + fmt.Println("-- setting up bootstrap") + fmt.Println("-- generating secure secret") + if err = gitdl.DownloadGit( + "anthdm/superkit", + "bootstrap", + projectName, + gitdl.WithBranch("master"), + gitdl.WithReplace(gitdl.Map{ + replaceID: projectName, + "{{app_secret}}": secret, + }), + //gitdl.WithLogs, + ); err != nil { log.Fatal(err) } @@ -93,23 +66,6 @@ func main() { log.Fatal(err) } - fmt.Println("-- generating secure secret") - pathToDotEnv := path.Join(projectName, ".env") - b, err := os.ReadFile(pathToDotEnv) - if err != nil { - log.Fatal(err) - } - secret := generateSecret() - replacedContent := strings.Replace(string(b), "{{app_secret}}", secret, -1) - file, err := os.OpenFile(pathToDotEnv, os.O_WRONLY|os.O_TRUNC, 0644) - if err != nil { - log.Fatal(err) - } - defer file.Close() - _, err = file.WriteString(replacedContent) - if err != nil { - log.Fatal(err) - } fmt.Printf("-- project (%s) successfully installed!\n", projectName) } From 78effeec2a0f16b662acff275e70eab5a1394a69 Mon Sep 17 00:00:00 2001 From: 4lxprime Date: Thu, 20 Jun 2024 14:40:55 +0200 Subject: [PATCH 2/2] [Modules]: update gitdl version --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 97d4d70..5e31b73 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/anthdm/superkit go 1.22.2 require ( - github.com/4lxprime/gitdl v0.0.0-20240619153508-50e6f992ff80 + github.com/4lxprime/gitdl v0.0.0-20240620095131-2e04094de04a github.com/a-h/templ v0.2.707 github.com/gorilla/sessions v1.3.0 github.com/stretchr/testify v1.9.0