aboutsummaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
authorAdam Mathes <adam@trenchant.org>2017-02-09 19:40:44 -0800
committerAdam Mathes <adam@trenchant.org>2017-02-09 19:40:44 -0800
commitded6e3b25bca083cabe21bda6f4d01f6766587bc (patch)
tree2855fa24e8b2f939bdf091f5faca411e7884ac83 /main.go
downloadsnkt-ded6e3b25bca083cabe21bda6f4d01f6766587bc.tar.gz
snkt-ded6e3b25bca083cabe21bda6f4d01f6766587bc.tar.bz2
snkt-ded6e3b25bca083cabe21bda6f4d01f6766587bc.zip
initial commit (fmstatic -> snkt)
Diffstat (limited to 'main.go')
-rw-r--r--main.go65
1 files changed, 65 insertions, 0 deletions
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..221a514
--- /dev/null
+++ b/main.go
@@ -0,0 +1,65 @@
+/*
+snkt is a static site generator for simple blog-like sites with a focus on simplicity and efficiency.
+*/
+package main
+
+import (
+ "flag"
+ "snkt/config"
+ "snkt/render"
+ "snkt/site"
+ "snkt/web"
+ "fmt"
+ "log"
+)
+
+func main() {
+
+ var configFile, init_dir string
+ var build, preview, version, verbose, help bool
+
+ flag.StringVar(&configFile, "c", "config.yml", "configuration file")
+ flag.StringVar(&init_dir, "init", "", "initialize new site at `directory`")
+ flag.BoolVar(&build, "b", false, "build the site")
+ flag.BoolVar(&preview, "p", false, "start local HTTP server for preview")
+ flag.BoolVar(&version, "v", false, "print version number")
+ flag.BoolVar(&help, "h", false, "help")
+ flag.BoolVar(&verbose, "verbose", false, "log more actions while building")
+ flag.Parse()
+
+ if !help && !build && !preview && !version && init_dir=="" {
+ flag.Usage()
+ return
+ }
+ if(init_dir != "") {
+ fmt.Printf("Initializing new site in %s\n", init_dir)
+ site.Init(init_dir)
+ return
+ }
+ if(version) {
+ fmt.Printf("0.1 alpha\n")
+ return
+ }
+ if(help) {
+ fmt.Printf("in case of emergency, break computer \n")
+ return
+ }
+ config.Init(configFile)
+ if(verbose) {
+ config.Config.Verbose = true
+ }
+
+ render.Init()
+ if build {
+ log.Printf("Building site...\n")
+ var s site.Site
+ s.Read()
+ s.Write()
+ }
+
+ if preview {
+ log.Printf("Spawning preview at [%s] of [%s]\n",
+ config.Config.PreviewDir, config.Config.PreviewServer)
+ web.Serve(config.Config.PreviewServer, config.Config.PreviewDir)
+ }
+}