fix env
continuous-integration/drone/push Build is passing Details

This commit is contained in:
user-penguin 2024-11-12 03:10:06 +07:00
parent 6a7a1bf3d2
commit ab57c7fa41
2 changed files with 28 additions and 4 deletions

View File

@ -7,16 +7,16 @@ steps:
pull: if-not-exists pull: if-not-exists
image: golang:1.23 image: golang:1.23
environment: environment:
TELEGRAM_TOKEN: BOT_TOKEN:
from_secret: bot_token from_secret: bot_token
POSTGRES_URL_CONNECT: POSTGRES_URL_CONNECT:
from_secret: postgres_url_connect from_secret: postgres_url_connect
settings: settings:
envs: [ TELEGRAM_TOKEN,POSTGRES_URL_CONNECT ] envs: [ BOT_TOKEN,POSTGRES_URL_CONNECT ]
commands: commands:
- CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o smm_tg cmd/smm_tg/main.go - CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o smm_tg cmd/smm_tg/main.go
- touch .env - touch .env
- echo TELEGRAM_TOKEN=$${TELEGRAM_TOKEN} >> .env - echo BOT_TOKEN=$${TELEGRAM_TOKEN} >> .env
- echo POSTGRES_URL_CONNECT=$${POSTGRES_URL_CONNECT} >> .env - echo POSTGRES_URL_CONNECT=$${POSTGRES_URL_CONNECT} >> .env
- name: test - name: test

View File

@ -2,7 +2,9 @@ package main
import ( import (
"context" "context"
"fmt"
"os" "os"
"path/filepath"
"git.3crabs.ru/save_my_money/smm_tg/internal/modules/messenger/telegram" "git.3crabs.ru/save_my_money/smm_tg/internal/modules/messenger/telegram"
"git.3crabs.ru/save_my_money/smm_tg/internal/services/bot" "git.3crabs.ru/save_my_money/smm_tg/internal/services/bot"
@ -15,7 +17,7 @@ func main() {
// try get sysenv // try get sysenv
telegarmToken := os.Getenv("BOT_TOKEN") telegarmToken := os.Getenv("BOT_TOKEN")
if len(telegarmToken) == 0 { if len(telegarmToken) == 0 {
if err := godotenv.Load("../../.env"); err != nil { if err := godotenv.Load(dir(".env")); err != nil {
panic(err) panic(err)
} }
telegarmToken = os.Getenv("BOT_TOKEN") telegarmToken = os.Getenv("BOT_TOKEN")
@ -38,3 +40,25 @@ func main() {
ctx := context.Background() ctx := context.Background()
listenerService.Run(ctx) listenerService.Run(ctx)
} }
func dir(envFile string) string {
currentDir, err := os.Getwd()
if err != nil {
panic(err)
}
for {
goModPath := filepath.Join(currentDir, "go.mod")
if _, err := os.Stat(goModPath); err == nil {
break
}
parent := filepath.Dir(currentDir)
if parent == currentDir {
panic(fmt.Errorf("go.mod not found"))
}
currentDir = parent
}
return filepath.Join(currentDir, envFile)
}