diff --git a/main.go b/main.go index 779a50c..d6b4f50 100644 --- a/main.go +++ b/main.go @@ -2,9 +2,11 @@ package main import ( "context" + "fmt" "log" "os" "os/signal" + "strings" "syscall" "time" @@ -13,12 +15,26 @@ import ( "git.wh64.net/muffin/goMuffin/configs" "git.wh64.net/muffin/goMuffin/databases" "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" ) func main() { 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) if err != nil { log.Println("[goMuffin] 봇의 세션을 만들수가 없어요.") diff --git a/scripts/dbMigrate/main.go b/scripts/dbMigrate/main.go index bac70e2..e91249a 100644 --- a/scripts/dbMigrate/main.go +++ b/scripts/dbMigrate/main.go @@ -1,4 +1,4 @@ -package main +package dbmigrate import ( "context" @@ -18,7 +18,7 @@ import ( var wg sync.WaitGroup // 이 스크립트는 MariaDB -> MongoDB로의 전환을 위해 만들었음. -func main() { +func DBMigrate() { mariaURL := os.Getenv("PREVIOUS_DATABASE_URL") mongoURL := configs.Config.DatabaseURL diff --git a/scripts/deleteAllCommands/main.go b/scripts/deleteAllCommands/main.go index 6320917..61b8a0c 100644 --- a/scripts/deleteAllCommands/main.go +++ b/scripts/deleteAllCommands/main.go @@ -1,4 +1,4 @@ -package main +package deleteallcommands import ( "flag" @@ -8,29 +8,24 @@ import ( "os" "strings" + "git.wh64.net/muffin/goMuffin/configs" "github.com/bwmarrin/discordgo" - "github.com/joho/godotenv" ) -func main() { - godotenv.Load() +func DeleteAllCommands() { var answer string - id := flag.String("id", "", "discordBot's token") + id := flag.String("id", "", "디스코드 봇의 토큰") flag.Parse() - fmt.Printf("Do you want to delete all commands? [y/N]: ") + fmt.Printf("정말로 모든 명령어를 삭제하시겠어요? [y/N]: ") fmt.Scanf("%s", &answer) - if strings.ToLower(answer) != "y" { + if strings.ToLower(answer) != "y" && strings.ToLower(answer) != "yes" { os.Exit(1) } - if os.Getenv("BOT_TOKEN") == "" { - panic(fmt.Errorf("You need a BOT_TOKEN environment.")) - } - if *id == "" { - panic(fmt.Errorf("You need a --id flag value.")) + panic(fmt.Errorf("--id 플래그의 값이 필요해요.")) } c := http.Client{} @@ -39,7 +34,7 @@ func main() { 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) if err != nil {