update... work pending

This commit is contained in:
brent saner
2025-02-04 12:14:08 -05:00
parent 3b4d712722
commit 3c984a0636
39 changed files with 2122 additions and 597 deletions

View File

@@ -7,7 +7,10 @@ import (
`text/template`
)
// ToCmd returns an (os/)exec.Cmd from a TemplateCmd. t should be a tunnelbroker.FetchedTunnel, generally.
/*
ToCmd returns an (os/)exec.Cmd from a TemplateCmd.
t should be a runner.TunnelResult.
*/
func (c *TemplateCmd) ToCmd(t any) (cmd *exec.Cmd, err error) {
var progName string
@@ -16,8 +19,15 @@ func (c *TemplateCmd) ToCmd(t any) (cmd *exec.Cmd, err error) {
var args []string
var buf *bytes.Buffer = new(bytes.Buffer)
if !c.IsTemplate {
cmd, err = c.Cmd.ToCmd()
return
}
buf.Reset()
if tpl, err = template.New("").Parse(c.Program); err != nil {
tpl = GetTpl()
if _, err = tpl.Parse(c.Program); err != nil {
return
}
if err = tpl.Execute(buf, t); err != nil {
@@ -29,7 +39,8 @@ func (c *TemplateCmd) ToCmd(t any) (cmd *exec.Cmd, err error) {
args = make([]string, len(c.Args))
for idx, arg := range c.Args {
buf.Reset()
if tpl, err = template.New("").Parse(arg); err != nil {
tpl = GetTpl()
if _, err = tpl.Parse(arg); err != nil {
return
}
if err = tpl.Execute(buf, t); err != nil {
@@ -44,7 +55,8 @@ func (c *TemplateCmd) ToCmd(t any) (cmd *exec.Cmd, err error) {
envs = make([]string, len(c.EnvVars))
for idx, env := range c.EnvVars {
buf.Reset()
if tpl, err = template.New("").Parse(env); err != nil {
tpl = GetTpl()
if _, err = tpl.Parse(env); err != nil {
return
}
if err = tpl.Execute(buf, t); err != nil {