Skip to content

Commit

Permalink
Refactored naming of package and moved config to utils
Browse files Browse the repository at this point in the history
Signed-off-by: Sarunas Rakauskas <sarunas.rakauskas@coingate.com>
  • Loading branch information
sarunasrakauskas committed Jun 12, 2024
1 parent a43e3f8 commit b6de882
Show file tree
Hide file tree
Showing 10 changed files with 41 additions and 31 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package awsa
package aws_operations

import (
"context"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package awsa
package aws_operations

import (
"bytes"
Expand Down
9 changes: 7 additions & 2 deletions internal/awsa/edit.go → internal/aws-operations/edit.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package awsa
package aws_operations

import (
"context"
"fmt"
"log"
"os"
"os/exec"
"strings"
Expand Down Expand Up @@ -35,7 +36,11 @@ func EditSecret(cfg aws.Config, secretName, defaultEditor string) (string, strin
if err != nil {
return "", "", err
}
defer os.Remove(tmpfile.Name()) // Clean up the file afterwards
defer func() {
if err := os.Remove(tmpfile.Name()); err != nil {
log.Printf("Warning: failed to remove temporary file: %v", err)
}
}()

if _, err := tmpfile.WriteString(originalSecret); err != nil {
return "", "", err
Expand Down
2 changes: 1 addition & 1 deletion internal/awsa/list.go → internal/aws-operations/list.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package awsa
package aws_operations

import (
"context"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package awsa
package aws_operations

import (
"bytes"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package awsa
package aws_operations

import (
"github.com/AlecAivazis/survey/v2"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package awsa
package aws_operations

import (
"context"
Expand Down
10 changes: 8 additions & 2 deletions internal/awsa/view.go → internal/aws-operations/view.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package awsa
package aws_operations

import (
"context"
"fmt"
"log"
"os"
"os/exec"
"strings"
Expand Down Expand Up @@ -70,7 +71,12 @@ func ViewSecretVersions(cfg aws.Config, secretName, defaultEditor string) error
if err != nil {
return fmt.Errorf("error creating temp file: %w", err)
}
defer os.Remove(tmpfile.Name()) // Clean up the file afterwards

defer func() {
if err := os.Remove(tmpfile.Name()); err != nil {
log.Printf("Warning: failed to remove temporary file: %v", err)
}
}()

if _, err := tmpfile.WriteString(secretValue); err != nil {
return fmt.Errorf("error writing to temp file: %w", err)
Expand Down
39 changes: 19 additions & 20 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,20 @@ import (
"fmt"
"log"
"os"
"smeditor/config"
"smeditor/internal/awsa"
"smeditor/internal/aws-operations"
"smeditor/utils"
"strings"

"github.com/AlecAivazis/survey/v2"
"github.com/aws/aws-sdk-go-v2/aws"
aws_config "github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/config"
)

func main() {
configFlag := flag.Bool("config", false, "Set the default editor")
flag.Parse()

cfg, err := config.LoadConfig()
cfg, err := utils.LoadConfig()
if err != nil {
log.Fatalf("Error loading config: %v", err)
}
Expand All @@ -37,25 +36,25 @@ func main() {
log.Fatalf("Session Manager plugin is not installed. Please install it and try again.")
}

profile, err := awsa.SelectProfile()
profile, err := aws_operations.SelectProfile()
if err != nil {
log.Fatalf("Error selecting profile: %v", err)
}

err = awsa.CheckAndRefreshToken(profile)
err = aws_operations.CheckAndRefreshToken(profile)
if err != nil {
log.Fatalf("Error checking or refreshing token: %v", err)
}

cfgAWS, sharedConfig, err := awsa.GetConfigWithProfile(profile)
cfgAWS, sharedConfig, err := aws_operations.GetConfigWithProfile(profile)
if err != nil {
log.Fatalf("Error loading AWS config: %v", err)
}

mainMenu(cfgAWS, &cfg, sharedConfig)
}

func setDefaultEditor(cfg config.Config) {
func setDefaultEditor(cfg utils.Config) {
availableEditors := utils.DetectEditors()
if len(availableEditors) == 0 {
log.Fatalf("No known editors found on your system.")
Expand All @@ -73,14 +72,14 @@ func setDefaultEditor(cfg config.Config) {
}

cfg.DefaultEditor = selectedEditor
err = config.SaveConfig(cfg)
err = utils.SaveConfig(cfg)
if err != nil {
log.Fatalf("Error saving config: %v", err)
}
fmt.Printf("Default editor set to '%s'\n", cfg.DefaultEditor)
}

func mainMenu(cfg aws.Config, appConfig *config.Config, sharedConfig aws_config.SharedConfig) {
func mainMenu(cfg aws.Config, appConfig *utils.Config, sharedConfig config.SharedConfig) {
for {
var option string
prompt := &survey.Select{
Expand All @@ -104,8 +103,8 @@ func mainMenu(cfg aws.Config, appConfig *config.Config, sharedConfig aws_config.
}
}

func handleEC2(cfg aws.Config, sharedConfig aws_config.SharedConfig) {
instances, err := awsa.ListEC2Instances(cfg)
func handleEC2(cfg aws.Config, sharedConfig config.SharedConfig) {
instances, err := aws_operations.ListEC2Instances(cfg)
if err != nil {
log.Fatalf("Error listing EC2 instances: %v", err)
}
Expand Down Expand Up @@ -148,16 +147,16 @@ func handleEC2(cfg aws.Config, sharedConfig aws_config.SharedConfig) {
}

selectedInstanceID := strings.TrimSpace(selectedInstanceOption[maxNameLen:])
err = awsa.ConnectToEC2Instance(sharedConfig, selectedInstanceID)
err = aws_operations.ConnectToEC2Instance(sharedConfig, selectedInstanceID)
if err != nil {
log.Println(err)
fmt.Println("Returning to the main menu...")
return
}
}

func handleSecretsManager(cfg aws.Config, appConfig *config.Config) {
secretName, action, err := awsa.SelectSecret(cfg)
func handleSecretsManager(cfg aws.Config, appConfig *utils.Config) {
secretName, action, err := aws_operations.SelectSecret(cfg)
if err != nil {
log.Fatalf("Error selecting secret: %v", err)
}
Expand All @@ -169,7 +168,7 @@ func handleSecretsManager(cfg aws.Config, appConfig *config.Config) {
case "Edit latest secret version":
editSecret(cfg, appConfig, secretName)
case "View previous versions":
err := awsa.ViewSecretVersions(cfg, secretName, appConfig.DefaultEditor)
err := aws_operations.ViewSecretVersions(cfg, secretName, appConfig.DefaultEditor)
if err != nil {
log.Println(err)
fmt.Println("Returning to the main menu...")
Expand All @@ -178,8 +177,8 @@ func handleSecretsManager(cfg aws.Config, appConfig *config.Config) {
}
}

func editSecret(cfg aws.Config, appConfig *config.Config, secretName string) {
originalSecret, editedSecret, err := awsa.EditSecret(cfg, secretName, appConfig.DefaultEditor)
func editSecret(cfg aws.Config, appConfig *utils.Config, secretName string) {
originalSecret, editedSecret, err := aws_operations.EditSecret(cfg, secretName, appConfig.DefaultEditor)
if err != nil {
log.Println(err)
fmt.Println("Returning to the main menu...")
Expand All @@ -199,12 +198,12 @@ func editSecret(cfg aws.Config, appConfig *config.Config, secretName string) {
}

if versionLabel == "" {
versionLabel = awsa.GenerateVersionLabel()
versionLabel = aws_operations.GenerateVersionLabel()
}

versionStages := []string{versionLabel, "AWSCURRENT"}

err = awsa.UpdateSecret(cfg, secretName, editedSecret, versionStages)
err = aws_operations.UpdateSecret(cfg, secretName, editedSecret, versionStages)
if err != nil {
log.Fatalf("Error updating secret: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion config/config.go → utils/config.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package config
package utils

import (
"encoding/json"
Expand Down

0 comments on commit b6de882

Please sign in to comment.