mirror of
https://github.com/Macrame-App/Macrame
synced 2025-12-29 07:19:26 +00:00
WIP: auto env generator
This commit is contained in:
parent
3cc0a2017d
commit
0a4e798e86
5 changed files with 99 additions and 8 deletions
|
|
@ -1,15 +1,60 @@
|
|||
package helper
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net"
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"github.com/joho/godotenv"
|
||||
)
|
||||
|
||||
func EnvGet(key string) string {
|
||||
err := godotenv.Load("../.env")
|
||||
envFile := "../.env"
|
||||
fileExists := func() bool {
|
||||
_, err := os.Stat(envFile)
|
||||
return err == nil
|
||||
}
|
||||
if !fileExists() {
|
||||
createEnvFile(envFile)
|
||||
}
|
||||
err := godotenv.Load(envFile)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return os.Getenv("VITE_" + key)
|
||||
}
|
||||
|
||||
func createEnvFile(filename string) {
|
||||
log.Println("Creating .env file...")
|
||||
file, err := os.Create(filename)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
defer file.Close()
|
||||
// You can add some default values to the .env file here if needed
|
||||
// For example:
|
||||
port, err := findOpenPort()
|
||||
salt := GenerateRandomString(28)
|
||||
iv := GenerateRandomIntegerString(16)
|
||||
|
||||
log.Println(err, salt, iv)
|
||||
|
||||
_, err = file.WriteString("VITE_MCRM__PORT=" + string(port) + "\nVITE_MCRM__SALT=" + salt + "\nVITE_MCRM__IV=" + iv)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func findOpenPort() (string, error) {
|
||||
addr, err := net.ResolveTCPAddr("tcp", "localhost:0")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
l, err := net.ListenTCP("tcp", addr)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer l.Close()
|
||||
return strconv.Itoa(l.Addr().(*net.TCPAddr).Port), nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue