From 23136281f16433f558b868e9e898f741cb20a0bd Mon Sep 17 00:00:00 2001 From: xuthus5 Date: Fri, 22 Jul 2022 00:05:59 +0800 Subject: [PATCH] init --- .gitignore | 4 ++++ cmd.go | 21 +++++++++++++++++++++ deploy.go | 1 + go.mod | 10 ++++++++++ init.go | 25 +++++++++++++++++++++++++ page.go | 1 + post.go | 1 + serve.go | 1 + utils.go | 16 ++++++++++++++++ 9 files changed, 80 insertions(+) create mode 100644 .gitignore create mode 100644 cmd.go create mode 100644 deploy.go create mode 100644 go.mod create mode 100644 init.go create mode 100644 page.go create mode 100644 post.go create mode 100644 serve.go create mode 100644 utils.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..53fc767 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.vscode/ +.idea/ +*.exe +go.sum diff --git a/cmd.go b/cmd.go new file mode 100644 index 0000000..c372b5c --- /dev/null +++ b/cmd.go @@ -0,0 +1,21 @@ +package main + +import ( + "github.com/spf13/cobra" +) + +var ( + rootCmd = &cobra.Command{ + Use: "mder", + Short: "mder is a very fast static site generator", + } +) + +func init() { + // create a new mder folder + rootCmd.AddCommand(initCmd()) +} + +func main() { + rootCmd.Execute() +} diff --git a/deploy.go b/deploy.go new file mode 100644 index 0000000..06ab7d0 --- /dev/null +++ b/deploy.go @@ -0,0 +1 @@ +package main diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c36bc83 --- /dev/null +++ b/go.mod @@ -0,0 +1,10 @@ +module mder + +go 1.18 + +require github.com/spf13/cobra v1.5.0 + +require ( + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect +) diff --git a/init.go b/init.go new file mode 100644 index 0000000..703d355 --- /dev/null +++ b/init.go @@ -0,0 +1,25 @@ +package main + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" +) + +func initCmd() *cobra.Command { + var name string + cmd := &cobra.Command{ + Use: "init", + Short: "create a new mder folder", + Run: func(cmd *cobra.Command, args []string) { + if err := cloneTemplate(name); err != nil { + panic(err) + } + _, _ = fmt.Fprintf(os.Stdout, "create folder %s success.\n", name) + }, + } + + cmd.Flags().StringVar(&name, "name", "mder", "Name of the folder to create") + return cmd +} diff --git a/page.go b/page.go new file mode 100644 index 0000000..06ab7d0 --- /dev/null +++ b/page.go @@ -0,0 +1 @@ +package main diff --git a/post.go b/post.go new file mode 100644 index 0000000..06ab7d0 --- /dev/null +++ b/post.go @@ -0,0 +1 @@ +package main diff --git a/serve.go b/serve.go new file mode 100644 index 0000000..06ab7d0 --- /dev/null +++ b/serve.go @@ -0,0 +1 @@ +package main diff --git a/utils.go b/utils.go new file mode 100644 index 0000000..9b4279d --- /dev/null +++ b/utils.go @@ -0,0 +1,16 @@ +package main + +import ( + "fmt" + "os" + "os/exec" +) + +func cloneTemplate(base string) error { + _, err := exec.Command("git", "clone", "https://gitter.top/mder/template", base).Output() + if err != nil { + _, _ = fmt.Fprintf(os.Stderr, "get latest template failed: %v\n", err) + return err + } + return nil +}