comparison zs.go @ 3:53dea9841cd9 draft

moved eval func type to the top, added some error logs
author zaitsev.serge
date Fri, 05 Dec 2014 17:26:59 +0000
parents fd79b3a90bef
children 05fc24caac37
comparison
equal deleted inserted replaced
2:fd79b3a90bef 3:53dea9841cd9
19 const ( 19 const (
20 ZSDIR = ".zs" 20 ZSDIR = ".zs"
21 PUBDIR = ".pub" 21 PUBDIR = ".pub"
22 ) 22 )
23 23
24 type EvalFn func(args []string, vars map[string]string) (string, error)
25
24 func split2(s, delim string) (string, string) { 26 func split2(s, delim string) (string, string) {
25 parts := strings.SplitN(s, delim, 2) 27 parts := strings.SplitN(s, delim, 2)
26 if len(parts) == 2 { 28 if len(parts) == 2 {
27 return parts[0], parts[1] 29 return parts[0], parts[1]
28 } else { 30 } else {
40 key, value := split2(line, ":") 42 key, value := split2(line, ":")
41 v[strings.ToLower(strings.TrimSpace(key))] = strings.TrimSpace(value) 43 v[strings.ToLower(strings.TrimSpace(key))] = strings.TrimSpace(value)
42 } 44 }
43 return v, body 45 return v, body
44 } 46 }
45
46 type EvalFn func(args []string, vars map[string]string) (string, error)
47 47
48 func render(s string, vars map[string]string, eval EvalFn) (string, error) { 48 func render(s string, vars map[string]string, eval EvalFn) (string, error) {
49 b := []byte(s) 49 b := []byte(s)
50 delim_open := []byte("{{") 50 delim_open := []byte("{{")
51 delim_close := []byte("}}") 51 delim_close := []byte("}}")
226 buildAll(true) 226 buildAll(true)
227 case "watch": 227 case "watch":
228 buildAll(false) // pass duration 228 buildAll(false) // pass duration
229 case "var": 229 case "var":
230 if len(args) == 0 { 230 if len(args) == 0 {
231 // print error 231 log.Println("ERROR: filename expected")
232 return 232 return
233 } 233 }
234 if b, err := ioutil.ReadFile(args[0]); err == nil { 234 if b, err := ioutil.ReadFile(args[0]); err == nil {
235 vars, _ := md(string(b)) 235 vars, _ := md(string(b))
236 defaultVars(vars, args[0]) 236 defaultVars(vars, args[0])
242 for k, v := range vars { 242 for k, v := range vars {
243 fmt.Println(k + ":" + v) 243 fmt.Println(k + ":" + v)
244 } 244 }
245 } 245 }
246 } else { 246 } else {
247 // print error 247 log.Println(err)
248 } 248 }
249 default: 249 default:
250 cmd := exec.Command(path.Join(ZSDIR, cmd), args...) 250 cmd := exec.Command(path.Join(ZSDIR, cmd), args...)
251 cmd.Env = append(cmd.Env, "ZS="+os.Args[0]) 251 cmd.Env = append(cmd.Env, "ZS="+os.Args[0])
252 cmd.Stdout = os.Stdout 252 cmd.Stdout = os.Stdout