From 9670cf00c81682e3f42db6625e5f16dc9c4dfedb Mon Sep 17 00:00:00 2001 From: Chris <88049272+V0idMatr1x@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:55:49 -0500 Subject: [PATCH] Small refactor to reduce LOC and keep code DRY. (#53) --- main.go | 18 +++++++++--------- plugins/openai-gpt.go | 15 +++++++++------ tracer/tracer.go | 10 ++++------ 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/main.go b/main.go index 7ec4c88..e477201 100644 --- a/main.go +++ b/main.go @@ -4,16 +4,16 @@ import ( "beelzebub/builder" "beelzebub/parser" "flag" - "fmt" log "github.com/sirupsen/logrus" ) -var quit = make(chan struct{}) - func main() { - var configurationsCorePath string - var configurationsServicesDirectory string + var ( + quit = make(chan struct{}) + configurationsCorePath string + configurationsServicesDirectory string + ) flag.StringVar(&configurationsCorePath, "confCore", "./configurations/beelzebub.yaml", "Provide the path of configurations core") flag.StringVar(&configurationsServicesDirectory, "confServices", "./configurations/services/", "Directory config services") @@ -22,20 +22,20 @@ func main() { parser := parser.Init(configurationsCorePath, configurationsServicesDirectory) coreConfigurations, err := parser.ReadConfigurationsCore() - failOnError(err, fmt.Sprintf("Error during ReadConfigurationsCore: ")) + failOnError(err, "Error during ReadConfigurationsCore: ") beelzebubServicesConfiguration, err := parser.ReadConfigurationsServices() - failOnError(err, fmt.Sprintf("Error during ReadConfigurationsServices: ")) + failOnError(err, "Error during ReadConfigurationsServices: ") beelzebubBuilder := builder.NewBuilder() director := builder.NewDirector(beelzebubBuilder) beelzebubBuilder, err = director.BuildBeelzebub(coreConfigurations, beelzebubServicesConfiguration) - failOnError(err, fmt.Sprintf("Error during BuildBeelzebub: ")) + failOnError(err, "Error during BuildBeelzebub: ") err = beelzebubBuilder.Run() - failOnError(err, fmt.Sprintf("Error during run beelzebub core: ")) + failOnError(err, "Error during run beelzebub core: ") defer beelzebubBuilder.Close() diff --git a/plugins/openai-gpt.go b/plugins/openai-gpt.go index 7fe7aae..0f6ba37 100644 --- a/plugins/openai-gpt.go +++ b/plugins/openai-gpt.go @@ -5,19 +5,23 @@ import ( "errors" "fmt" "strings" - + log "github.com/sirupsen/logrus" - + "github.com/go-resty/resty/v2" ) -const ChatGPTPluginName = "OpenAIGPTLinuxTerminal" -const openAIGPTEndpoint = "https://api.openai.com/v1/completions" +const ( + // Reference: https://www.engraved.blog/building-a-virtual-machine-inside/ + promptVirtualizeLinuxTerminal = "I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do no write explanations. Do not type commands unless I instruct you to do so.\n\nA:pwd\n\nQ:/home/user\n\n" + ChatGPTPluginName = "OpenAIGPTLinuxTerminal" + openAIGPTEndpoint = "https://api.openai.com/v1/completions" +) type History struct { Input, Output string } - + type OpenAIGPTVirtualTerminal struct { Histories []History OpenAPIChatGPTSecretKey string @@ -62,7 +66,6 @@ type gptRequest struct { } // Reference: https://www.engraved.blog/building-a-virtual-machine-inside/ -const promptVirtualizeLinuxTerminal = "I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do no write explanations. Do not type commands unless I instruct you to do so.\n\nA:pwd\n\nQ:/home/user\n\n" func buildPrompt(histories []History, command string) string { var sb strings.Builder diff --git a/tracer/tracer.go b/tracer/tracer.go index 658cc90..28890a1 100644 --- a/tracer/tracer.go +++ b/tracer/tracer.go @@ -30,7 +30,10 @@ type Event struct { Description string } -type Protocol int +type ( + Protocol int + Status int +) const ( HTTP Protocol = iota @@ -42,8 +45,6 @@ func (status Protocol) String() string { return [...]string{"HTTP", "SSH", "TCP"}[status] } -type Status int - const ( Start Status = iota End @@ -105,12 +106,9 @@ func (tracer *tracer) TraceEvent(event Event) { switch event.Protocol { case HTTP.String(): eventsHTTPTotal.Inc() - break case SSH.String(): eventsSSHTotal.Inc() - break case TCP.String(): eventsTCPTotal.Inc() - break } }