summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatthieu <matthieu.cneude@gmail.com>2021-04-24 07:57:17 +0200
committermatthieu <matthieu.cneude@gmail.com>2021-04-24 07:57:17 +0200
commit0b6c3b2ecc94cd48d2b9a7aa2262536df7bbf6e6 (patch)
tree596b89c2021141e768fc712cdfa51e12b592d0e9
parenteb1f2645720d5852c047fc7a4c2eaa26c1913259 (diff)
Add template project
-rw-r--r--cmd/generate.go66
1 files changed, 62 insertions, 4 deletions
diff --git a/cmd/generate.go b/cmd/generate.go
index c2928c0..65ba534 100644
--- a/cmd/generate.go
+++ b/cmd/generate.go
@@ -1,5 +1,7 @@
package cmd
+// TODO need to test all of that!
+
import (
"bytes"
"fmt"
@@ -28,8 +30,10 @@ func generateCmd() *cobra.Command {
func generate(args []string) string {
switch configType {
- case "ga":
+ case "blog":
return createBlogDefaultConfig()
+ case "project", "githubProject", "github_project":
+ return createGitHubDefaultConfig()
default:
return createBlogDefaultConfig()
}
@@ -43,7 +47,7 @@ func createBlogDefaultConfig() string {
address := askSiteAddress()
viewID := askViewID()
- ut, err := template.New("Ga").Parse(internal.GA())
+ ut, err := template.New("blog").Parse(internal.Blog())
if err != nil {
panic(err)
}
@@ -51,11 +55,32 @@ func createBlogDefaultConfig() string {
b := bytes.NewBuffer([]byte{})
err = ut.Execute(b, internal.CreateBlogConfig(keyfile, address, viewID))
+ return createOrDisplayTemplate(b.String())
+}
+
+func createGitHubDefaultConfig() string {
+ wizardIntro("a project on GitHub")
+ token := askGitHubToken()
+ owner := askGitHubOwner()
+ repo := askGitHubRepo()
+
+ ut, err := template.New("github").Parse(internal.GitHubProject())
+ if err != nil {
+ panic(err)
+ }
+
+ b := bytes.NewBuffer([]byte{})
+ err = ut.Execute(b, internal.CreateGitHubProjectConfig(token, owner, repo))
+
+ return createOrDisplayTemplate(b.String())
+}
+
+func createOrDisplayTemplate(content string) string {
if templateFile != "" {
- cfg := createTemplateFile(templateFile, b.String())
+ cfg := createTemplateFile(templateFile, content)
return fmt.Sprintf("The file %s has been created.", cfg)
} else {
- return b.String()
+ return content
}
}
@@ -105,3 +130,36 @@ func askViewID() string {
return viewID
}
+
+func askGitHubToken() string {
+ fmt.Fprintln(os.Stdout, "")
+ fmt.Fprintln(os.Stdout, "A token is required for GitHub.")
+ fmt.Fprintln(os.Stdout, "See https://thedevdash.com/reference/services/github/")
+ fmt.Fprintln(os.Stdout, "")
+ fmt.Fprint(os.Stdout, "Enter the GitHub token: ")
+
+ var token string
+ fmt.Scanf("%s", &token)
+
+ return token
+}
+
+func askGitHubOwner() string {
+ fmt.Fprintln(os.Stdout, "")
+ fmt.Fprint(os.Stdout, "Enter your GitHub username: ")
+
+ var owner string
+ fmt.Scanf("%s", &owner)
+
+ return owner
+}
+
+func askGitHubRepo() string {
+ fmt.Fprintln(os.Stdout, "")
+ fmt.Fprint(os.Stdout, "Enter the name of the GitHub repo: ")
+
+ var repo string
+ fmt.Scanf("%s", &repo)
+
+ return repo
+}