From ded6e3b25bca083cabe21bda6f4d01f6766587bc Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Thu, 9 Feb 2017 19:40:44 -0800 Subject: initial commit (fmstatic -> snkt) --- main.go | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 main.go (limited to 'main.go') 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) + } +} -- cgit v1.2.3