Mercurial > yakumo_izuru > aya
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 |