aboutsummaryrefslogtreecommitdiff
path: root/cmd/tsch.go
diff options
context:
space:
mode:
authorBryan McNulty <bryanmcnulty@protonmail.com>2025-04-17 02:02:13 -0500
committerBryan McNulty <bryanmcnulty@protonmail.com>2025-04-17 02:02:13 -0500
commitcdc0205d036c78e8ce1c27e8dd4f71542959f889 (patch)
tree13aaccd4c5f232729dc11a9b59fd193ffb0e0929 /cmd/tsch.go
parent55eb4275fb760ac7a3ce1444f5ae0ded9e2ff91c (diff)
downloadgoexec-cdc0205d036c78e8ce1c27e8dd4f71542959f889.tar.gz
goexec-cdc0205d036c78e8ce1c27e8dd4f71542959f889.zip
Remote output file deletion after
Diffstat (limited to 'cmd/tsch.go')
-rw-r--r--cmd/tsch.go36
1 files changed, 9 insertions, 27 deletions
diff --git a/cmd/tsch.go b/cmd/tsch.go
index 7c0fdde..d08126b 100644
--- a/cmd/tsch.go
+++ b/cmd/tsch.go
@@ -7,7 +7,6 @@ import (
tschexec "github.com/FalconOpsLLC/goexec/pkg/goexec/tsch"
"github.com/oiweiwei/go-msrpc/ssp/gssapi"
"github.com/spf13/cobra"
- "io"
"os"
"time"
)
@@ -109,32 +108,20 @@ References:
ctx := log.WithContext(gssapi.NewSecurityContext(context.TODO()))
- var writer io.WriteCloser
-
if outputPath == "-" {
- writer = os.Stdout
+ exec.Output.Writer = os.Stdout
} else if outputPath != "" {
- if writer, err = os.OpenFile(outputPath, os.O_WRONLY|os.O_CREATE, 0644); err != nil {
+ if exec.Output.Writer, err = os.OpenFile(outputPath, os.O_WRONLY|os.O_CREATE, 0644); err != nil {
log.Fatal().Err(err).Msg("Failed to open output file")
}
- defer writer.Close()
+ defer exec.Output.Writer.Close()
}
if err = goexec.ExecuteCleanMethod(ctx, &tschDemand, &exec); err != nil {
log.Fatal().Err(err).Msg("Operation failed")
}
-
- if outputPath != "" {
- if reader, err := tschDemand.GetOutput(ctx); err == nil {
- _, err = io.Copy(writer, reader)
-
- } else {
- log.Error().Err(err).Msg("Failed to get process execution output")
- returnCode = 2
- }
- }
},
}
tschCreateCmd = &cobra.Command{
@@ -170,30 +157,25 @@ References:
ctx := log.WithContext(gssapi.NewSecurityContext(context.TODO()))
- var writer io.WriteCloser
-
if outputPath == "-" {
- writer = os.Stdout
+ exec.Output.Writer = os.Stdout
} else if outputPath != "" {
- if writer, err = os.OpenFile(outputPath, os.O_WRONLY|os.O_CREATE, 0644); err != nil {
+ if exec.Output.Writer, err = os.OpenFile(outputPath, os.O_WRONLY|os.O_CREATE, 0644); err != nil {
log.Fatal().Err(err).Msg("Failed to open output file")
}
- defer writer.Close()
+ defer exec.Output.Writer.Close()
}
- if err = goexec.ExecuteCleanMethod(ctx, &tschDemand, &exec); err != nil {
+ if err = goexec.ExecuteCleanMethod(ctx, &tschCreate, &exec); err != nil {
log.Fatal().Err(err).Msg("Operation failed")
}
if outputPath != "" {
- if reader, err := tschDemand.GetOutput(ctx); err == nil {
- _, err = io.Copy(writer, reader)
-
- } else {
+ if err = tschCreate.IO.GetOutput(ctx); err != nil {
log.Error().Err(err).Msg("Failed to get process execution output")
- returnCode = 2
+ returnCode = 4
}
}
},