From cdc0205d036c78e8ce1c27e8dd4f71542959f889 Mon Sep 17 00:00:00 2001 From: Bryan McNulty Date: Thu, 17 Apr 2025 02:02:13 -0500 Subject: Remote output file deletion after --- cmd/tsch.go | 36 +++++++++--------------------------- 1 file changed, 9 insertions(+), 27 deletions(-) (limited to 'cmd/tsch.go') 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 } } }, -- cgit v1.2.3