// serviced template compile DIR [[--map IMAGE,IMAGE] ...] func (c *ServicedCli) cmdTemplateCompile(ctx *cli.Context) { args := ctx.Args() if len(args) < 1 { fmt.Printf("Incorrect Usage.\n\n") cli.ShowCommandHelp(ctx, "compile") return } cfg := api.CompileTemplateConfig{ Dir: args[0], Map: *ctx.Generic("map").(*api.ImageMap), } if template, err := c.driver.CompileServiceTemplate(cfg); err != nil { fmt.Fprintln(os.Stderr, err) } else if template == nil { fmt.Fprintln(os.Stderr, "received nil template") } else { cmd := fmt.Sprintf("cd %s && git rev-parse HEAD", args[0]) commit, err := exec.Command("sh", "-c", cmd).Output() if err != nil { commit = []byte("unknown") } cmd = fmt.Sprintf("cd %s && git config --get remote.origin.url", args[0]) repo, err := exec.Command("sh", "-c", cmd).Output() if err != nil { repo = []byte("unknown") } cmd = fmt.Sprintf("cd %s && git rev-parse --abbrev-ref HEAD", args[0]) branch, err := exec.Command("sh", "-c", cmd).Output() if err != nil { branch = []byte("unknown") } cmd = fmt.Sprintf("cd %s && git describe --always", args[0]) tag, err := exec.Command("sh", "-c", cmd).Output() if err != nil { tag = []byte("unknown") } templateVersion := map[string]string{ "repo": strings.Trim(string(repo), "\n"), "branch": strings.Trim(string(branch), "\n"), "tag": strings.Trim(string(tag), "\n"), "commit": strings.Trim(string(commit), "\n"), } mTemplate := metaTemplate{*template, servicedversion.GetVersion(), templateVersion} jsonTemplate, err := json.MarshalIndent(mTemplate, " ", " ") if err != nil { fmt.Fprintln(os.Stderr, "failed to marshal template: %s", err) } else { fmt.Println(string(jsonTemplate)) } } }
func restGetServicedVersion(w *rest.ResponseWriter, r *rest.Request, client *node.ControlClient) { w.WriteJson(servicedversion.GetVersion()) }