4 import System.Environment
6 import System.Directory
7 import Prelude hiding (init)
8 import Data.List (intercalate)
10 import Data.Text hiding (intercalate, unlines, init)
12 data Project = Project {
18 main = getArgs >>= parse
22 dirExists <- doesDirectoryExist "entries"
24 then putStrLn "Project already initialised"
25 else do createDirectory "entries"
26 putStrLn "Enter a name for your project:"
27 projectName <- getLine
28 putStrLn "Enter short description for your project:"
29 projectDescription <- getLine
30 writeFile "xyz.json" . encode . toJSObject $ [("name", projectName), ("description", projectDescription), ("theme", "xyz")]
31 putStrLn "Initialised empty project"
34 ununlines :: [String] -> String
35 ununlines = intercalate "\n\n"
38 usage = putStr . ununlines $ [
39 "usage: xyz <command>",
40 "Commands:", unlines [
41 "\tinit\t\tInitialise a new site",
42 "\tbuild\t\tBuild the site"
46 parse ["init"] = init >> exit
47 parse ["build"] = putStrLn "would do a build" >> exit
48 parse [_] = usage >> exit
49 parse [] = usage >> exit
51 exit = exitWith ExitSuccess