Send data to script

This commit is contained in:
Magnus Åhall 2025-08-08 10:39:04 +02:00
parent ef0a20ffe0
commit 9514628710
3 changed files with 20 additions and 4 deletions

View file

@ -22,7 +22,7 @@ type ScriptExecution struct {
TimeStart sql.NullTime `db:"time_start"`
TimeEnd sql.NullTime `db:"time_end"`
Source []byte
Data string
Data []byte
SSH string
OutputStdout sql.NullString `db:"output_stdout"`
OutputStderr sql.NullString `db:"output_stderr"`
@ -84,6 +84,13 @@ func (self ScriptScheduler) HandleNextExecution() { // {{{
return
}
err = se.RunScript(fname)
if err != nil {
err = werr.Wrap(err)
logger.Error("script_execution", "op", "run_script", "id", se.ID, "error", err)
return
}
se.SSHCommand([]byte{}, false, fmt.Sprintf("rm %s", fname))
logger.Info("script_scheduler", "op", "handled", "script", fname)
@ -192,7 +199,14 @@ func (se *ScriptExecution) GetScriptTempFilename() (fname string, err error) { /
return
} // }}}
func (se *ScriptExecution) UploadScript(fname string) (err error) { // {{{
_, err = se.SSHCommand(se.Source, true, fmt.Sprintf("sh -c 'touch %s && chmod 700 %s && cat >%s && %s'", fname, fname, fname, fname))
_, err = se.SSHCommand(se.Source, true, fmt.Sprintf("sh -c 'touch %s && chmod 700 %s && cat >%s'", fname, fname, fname))
if err != nil {
err = werr.Wrap(err)
}
return
} // }}}
func (se *ScriptExecution) RunScript(fname string) (err error) { // {{{
_, err = se.SSHCommand(se.Data, true, fname)
if err != nil {
err = werr.Wrap(err)
}