Skip to content

Commit

Permalink
refactor(code)
Browse files Browse the repository at this point in the history
  • Loading branch information
refaldyrk committed Aug 10, 2023
1 parent 4232e08 commit 3c7ced4
Show file tree
Hide file tree
Showing 3 changed files with 174 additions and 113 deletions.
4 changes: 4 additions & 0 deletions env/env.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ func DefaultEnv() *Env {
}

func (e *Env) SetHelperConfig(filePath string, hcc *helper.HelperConfig) {
if hcc == nil {
fmt.Println("[HYDRA] Error When Set Helper Config: Myb You Key.JSON Doesn't Exists")
return
}
hcc.FilePath = filePath
e.hc = hcc
}
Expand Down
126 changes: 13 additions & 113 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ package main

import (
"flag"
"fmt"
"io/ioutil"
"os"
"strings"

"log"

"github.com/refaldyrk/hydra-env/env"
"github.com/refaldyrk/hydra-env/key"
"github.com/refaldyrk/hydra-env/present"
)

func main() {
initFlag()
}

func initFlag() {
key := key.DefaultKey()
envis := env.DefaultEnv()
presents := present.NewPresent(envis, key)

genKeyFlag := flag.Bool("gen-key", false, "Generate and print a new key")
envFlag := flag.String("env", "", "Specify the environment file path")
Expand All @@ -28,132 +28,32 @@ func main() {
flag.Parse()

if *envFlag != "" {
envis.SetHelperConfig(*envFlag, key.GetHC())
err := envis.CreateKeyFile(map[string]interface{}{})
if err != nil {
log.Fatal("[HYDRA] Failed To Create Key File Env", err.Error())
}
presents.EnvFlagPresent(*envFlag)
}

if *genKeyFlag {
key.NewKey()

err := key.CreateKeyFile()
if err != nil {
log.Fatal("[HYDRA] Error Create Key File: ", err.Error())
return
}

err = key.PrintKey()
if err != nil {
log.Fatal("[HYDRA] Error Print Key", err)
return
}

presents.GenKeyFlag()
return
}

if *addKeyFlag != "" {
if *envFlag == "" {
log.Fatal("[HYDRA] Require flag --env")
return
}

parts := strings.Split(*addKeyFlag, "|")
if len(parts) != 2 {
log.Fatal("[HYDRA] Invalid Command For Add Key: ", addKeyFlag)
return
}

keys := parts[0]
value := parts[1]

err := envis.AddKeyToFile(keys, value)
if err != nil {
log.Fatal("[HYDRA] Error When Add Key: ", err)
return
}

log.Println("[HYDRA] Success Add Key: ", keys)
presents.AddKeyFlag(*envFlag, *addKeyFlag)
}

if *getKeyFlag != "" {
if *envFlag == "" {
log.Fatal("[HYDRA] Require flag --env")
return
}

value, err := envis.GetKey(*getKeyFlag)
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
}

log.Printf("[HYDRA] Value of key '%s': %s\n", *getKeyFlag, value)
presents.GetKeyFlag(*envFlag, *getKeyFlag)
}

if *listKeysFlag {
if *envFlag == "" {
log.Fatal("[HYDRA] Require flag --env")
return
}

data, err := envis.GetExistingData()
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
}

log.Println("[HYDRA] List of keys:")
for key := range data {
fmt.Println(key)
}
log.Println("[HYDRA] Key: ", len(data))
presents.ListKeyFlag(*envFlag)
}

if *delKeyFlag != "" {
if *envFlag == "" {
log.Fatal("[HYDRA] Require flag --env")
return
}

err := envis.DeleteKey(*delKeyFlag)
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
}

log.Printf("Key '%s' deleted successfully.\n", *delKeyFlag)
presents.DelKeyFlag(*envFlag, *delKeyFlag)
}

if *loadEnvFlag != "" {
files, err := os.Open(*loadEnvFlag)
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
}

defer files.Close()
data, err := ioutil.ReadAll(files)
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
}
dataString := string(data)
arrNewLine := strings.Split(dataString, "\n")
for _, v := range arrNewLine {
if v == "" || v == "\n" {
continue
}
if v != "" || v != "\n" {
arrEnv := strings.Split(v, "=")
if len(arrEnv) <= 1 {
continue
}
err := envis.AddKeyToFile(arrEnv[0], arrEnv[1])
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
continue
}
log.Println("[HYDRA] Add Key: ", arrEnv[0])
}
}
log.Println("[HYDRA] Success Load Env ", loadEnvFlag)
presents.LoadEnvFlag(*loadEnvFlag)
}

}
157 changes: 157 additions & 0 deletions present/present.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
package present

import (
"fmt"
"io/ioutil"
"log"
"os"
"strings"

"github.com/refaldyrk/hydra-env/env"
"github.com/refaldyrk/hydra-env/key"
)

type Present struct {
envis *env.Env
key *key.Key
}

func NewPresent(env *env.Env, keys *key.Key) *Present {
return &Present{envis: env, key: keys}
}

func (p *Present) EnvFlagPresent(flag string) {
p.envis.SetHelperConfig(flag, p.key.GetHC())
err := p.envis.CreateKeyFile(map[string]interface{}{})
if err != nil {
log.Fatal("[HYDRA] Failed To Create Key File Env", err.Error())
return
}
}

func (p *Present) GenKeyFlag() {
p.key.NewKey()

err := p.key.CreateKeyFile()
if err != nil {
log.Fatal("[HYDRA] Error Create Key File: ", err.Error())
return
}

err = p.key.PrintKey()
if err != nil {
log.Fatal("[HYDRA] Error Print Key", err)
return
}

return
}

func (p *Present) AddKeyFlag(envFlag string, addKeyFlag string) {
if envFlag == "" {
log.Fatal("[HYDRA] Require flag --env")
return
}

parts := strings.Split(addKeyFlag, "|")
if len(parts) != 2 {
log.Fatal("[HYDRA] Invalid Command For Add Key: ", addKeyFlag)
return
}

keys := parts[0]
value := parts[1]

err := p.envis.AddKeyToFile(keys, value)
if err != nil {
log.Fatal("[HYDRA] Error When Add Key: ", err)
return
}

log.Println("[HYDRA] Success Add Key: ", keys)
return
}

func (p Present) GetKeyFlag(envFlag string, getKeyFlag string) {
if envFlag == "" {
log.Fatal("[HYDRA] Require flag --env")
return
}

value, err := p.envis.GetKey(getKeyFlag)
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
return
}

log.Printf("[HYDRA] Value of key '%s': %s\n", getKeyFlag, value)
return
}

func (p *Present) ListKeyFlag(envFlag string) {
if envFlag == "" {
log.Fatal("[HYDRA] Require flag --env")
return
}

data, err := p.envis.GetExistingData()
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
return
}

log.Println("[HYDRA] List of keys:")
for key := range data {
fmt.Println(key)
}
log.Println("[HYDRA] Key: ", len(data))
return
}

func (p *Present) DelKeyFlag(envFlag string, delKeyFlag string) {
if envFlag == "" {
log.Fatal("[HYDRA] Require flag --env")
return
}

err := p.envis.DeleteKey(delKeyFlag)
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
}

log.Printf("Key '%s' deleted successfully.\n", delKeyFlag)
return
}

func (p *Present) LoadEnvFlag(loadEnvFlag string) {
files, err := os.Open(loadEnvFlag)
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
}

defer files.Close()
data, err := ioutil.ReadAll(files)
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
}
dataString := string(data)
arrNewLine := strings.Split(dataString, "\n")
for _, v := range arrNewLine {
if v == "" || v == "\n" {
continue
}
if v != "" || v != "\n" {
arrEnv := strings.Split(v, "=")
if len(arrEnv) <= 1 {
continue
}
err := p.envis.AddKeyToFile(arrEnv[0], arrEnv[1])
if err != nil {
log.Fatal("[HYDRA] ERROR: ", err)
continue
}
log.Println("[HYDRA] Add Key: ", arrEnv[0])
}
}
log.Println("[HYDRA] Success Load Env ", loadEnvFlag)
}

0 comments on commit 3c7ced4

Please sign in to comment.