chore: Adding command line arguments

This commit is contained in:
Siwoo Jeon 2025-04-13 10:42:32 +09:00
parent 5ad31ab926
commit 128a0a02a4
Signed by: migan
GPG key ID: 036E9A8C5E8E48DA
3 changed files with 26 additions and 15 deletions

16
main.go
View file

@ -2,9 +2,11 @@ package main
import ( import (
"context" "context"
"fmt"
"log" "log"
"os" "os"
"os/signal" "os/signal"
"strings"
"syscall" "syscall"
"time" "time"
@ -13,12 +15,26 @@ import (
"git.wh64.net/muffin/goMuffin/configs" "git.wh64.net/muffin/goMuffin/configs"
"git.wh64.net/muffin/goMuffin/databases" "git.wh64.net/muffin/goMuffin/databases"
"git.wh64.net/muffin/goMuffin/handler" "git.wh64.net/muffin/goMuffin/handler"
dbmigrate "git.wh64.net/muffin/goMuffin/scripts/dbMigrate"
deleteallcommands "git.wh64.net/muffin/goMuffin/scripts/deleteAllCommands"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
) )
func main() { func main() {
config := configs.Config config := configs.Config
if len(os.Args) > 1 {
switch strings.ToLower(os.Args[1]) {
case "dbmigrate":
dbmigrate.DBMigrate()
case "deleteallcommands":
deleteallcommands.DeleteAllCommands()
default:
panic(fmt.Errorf("[goMuffin] 명령어 인자에는 dbmigrate나 deleteallcommands만 올 수 있어요."))
}
return
}
dg, err := discordgo.New("Bot " + config.Bot.Token) dg, err := discordgo.New("Bot " + config.Bot.Token)
if err != nil { if err != nil {
log.Println("[goMuffin] 봇의 세션을 만들수가 없어요.") log.Println("[goMuffin] 봇의 세션을 만들수가 없어요.")

View file

@ -1,4 +1,4 @@
package main package dbmigrate
import ( import (
"context" "context"
@ -18,7 +18,7 @@ import (
var wg sync.WaitGroup var wg sync.WaitGroup
// 이 스크립트는 MariaDB -> MongoDB로의 전환을 위해 만들었음. // 이 스크립트는 MariaDB -> MongoDB로의 전환을 위해 만들었음.
func main() { func DBMigrate() {
mariaURL := os.Getenv("PREVIOUS_DATABASE_URL") mariaURL := os.Getenv("PREVIOUS_DATABASE_URL")
mongoURL := configs.Config.DatabaseURL mongoURL := configs.Config.DatabaseURL

View file

@ -1,4 +1,4 @@
package main package deleteallcommands
import ( import (
"flag" "flag"
@ -8,29 +8,24 @@ import (
"os" "os"
"strings" "strings"
"git.wh64.net/muffin/goMuffin/configs"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"github.com/joho/godotenv"
) )
func main() { func DeleteAllCommands() {
godotenv.Load()
var answer string var answer string
id := flag.String("id", "", "discordBot's token") id := flag.String("id", "", "디스코드 봇의 토큰")
flag.Parse() flag.Parse()
fmt.Printf("Do you want to delete all commands? [y/N]: ") fmt.Printf("정말로 모든 명령어를 삭제하시겠어요? [y/N]: ")
fmt.Scanf("%s", &answer) fmt.Scanf("%s", &answer)
if strings.ToLower(answer) != "y" { if strings.ToLower(answer) != "y" && strings.ToLower(answer) != "yes" {
os.Exit(1) os.Exit(1)
} }
if os.Getenv("BOT_TOKEN") == "" {
panic(fmt.Errorf("You need a BOT_TOKEN environment."))
}
if *id == "" { if *id == "" {
panic(fmt.Errorf("You need a --id flag value.")) panic(fmt.Errorf("--id 플래그의 값이 필요해요."))
} }
c := http.Client{} c := http.Client{}
@ -39,7 +34,7 @@ func main() {
panic(err) panic(err)
} }
req.Header.Add("Authorization", "Bot "+os.Getenv("BOT_TOKEN")) req.Header.Add("Authorization", "Bot "+configs.Config.Bot.Token)
resp, err := c.Do(req) resp, err := c.Do(req)
if err != nil { if err != nil {