Mercurial > yakumo_izuru > aya
comparison zs_ext.go @ 23:40f55059fbfa draft
fixed output file names in html pages, fixed amber function bindings, replaced print command with build, fixed plugin functions, implemented zs and exec functions
| author | zaitsev.serge |
|---|---|
| date | Sun, 30 Aug 2015 12:20:35 +0000 |
| parents | |
| children | 42b0a9fa5883 |
comparison
equal
deleted
inserted
replaced
| 22:f5627d4212a3 | 23:40f55059fbfa |
|---|---|
| 1 package main | |
| 2 | |
| 3 import ( | |
| 4 "strconv" | |
| 5 "strings" | |
| 6 "time" | |
| 7 | |
| 8 "github.com/drhodes/golorem" | |
| 9 ) | |
| 10 | |
| 11 // zs var <filename> -- returns list of variables and their values | |
| 12 // zs var <filename> <var...> -- returns list of variable values | |
| 13 func Var(args []string) string { | |
| 14 if len(args) == 0 { | |
| 15 return "var: filename expected" | |
| 16 } else { | |
| 17 s := "" | |
| 18 if vars, _, err := md(args[0], globals()); err != nil { | |
| 19 return "var: " + err.Error() | |
| 20 } else { | |
| 21 if len(args) > 1 { | |
| 22 for _, a := range args[1:] { | |
| 23 s = s + vars[a] + "\n" | |
| 24 } | |
| 25 } else { | |
| 26 for k, v := range vars { | |
| 27 s = s + k + ":" + v + "\n" | |
| 28 } | |
| 29 } | |
| 30 } | |
| 31 return strings.TrimSpace(s) | |
| 32 } | |
| 33 } | |
| 34 | |
| 35 // zs lorem <n> -- returns <n> random lorem ipsum sentences | |
| 36 func Lorem(args []string) string { | |
| 37 if len(args) > 1 { | |
| 38 return "lorem: invalid usage" | |
| 39 } | |
| 40 if len(args) == 0 { | |
| 41 return lorem.Paragraph(5, 5) | |
| 42 } | |
| 43 if n, err := strconv.Atoi(args[0]); err == nil { | |
| 44 return lorem.Paragraph(n, n) | |
| 45 } else { | |
| 46 return "lorem: " + err.Error() | |
| 47 } | |
| 48 } | |
| 49 | |
| 50 // zs datefmt <fmt> <date> -- returns formatted date from unix time | |
| 51 func DateFmt(args []string) string { | |
| 52 if len(args) == 0 || len(args) > 2 { | |
| 53 return "datefmt: invalid usage" | |
| 54 } | |
| 55 if n, err := strconv.ParseInt(args[1], 10, 64); err == nil { | |
| 56 return time.Unix(n, 0).Format(args[0]) | |
| 57 } else { | |
| 58 return "datefmt: " + err.Error() | |
| 59 } | |
| 60 } | |
| 61 | |
| 62 // zs dateparse <fmt> <date> -- returns unix time from the formatted date | |
| 63 func DateParse(args []string) string { | |
| 64 if len(args) == 0 || len(args) > 2 { | |
| 65 return "dateparse: invalid usage" | |
| 66 } | |
| 67 if d, err := time.Parse(args[0], args[1]); err != nil { | |
| 68 return "dateparse: " + err.Error() | |
| 69 } else { | |
| 70 return strconv.FormatInt(d.Unix(), 10) | |
| 71 } | |
| 72 } |
