diff options
author | Adam Mathes <adam@trenchant.org> | 2017-02-09 19:40:44 -0800 |
---|---|---|
committer | Adam Mathes <adam@trenchant.org> | 2017-02-09 19:40:44 -0800 |
commit | ded6e3b25bca083cabe21bda6f4d01f6766587bc (patch) | |
tree | 2855fa24e8b2f939bdf091f5faca411e7884ac83 /main.go | |
download | snkt-ded6e3b25bca083cabe21bda6f4d01f6766587bc.tar.gz snkt-ded6e3b25bca083cabe21bda6f4d01f6766587bc.tar.bz2 snkt-ded6e3b25bca083cabe21bda6f4d01f6766587bc.zip |
initial commit (fmstatic -> snkt)
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 65 |
1 files changed, 65 insertions, 0 deletions
@@ -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) + } +} |