init.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package common
  2. import (
  3. "flag"
  4. "fmt"
  5. "log"
  6. "os"
  7. "path/filepath"
  8. )
  9. var (
  10. Port = flag.Int("port", 3000, "the listening port")
  11. PrintVersion = flag.Bool("version", false, "print version and exit")
  12. PrintHelp = flag.Bool("help", false, "print help and exit")
  13. LogDir = flag.String("log-dir", "./logs", "specify the log directory")
  14. )
  15. func printHelp() {
  16. fmt.Println("New API " + Version + " - All in one API service for OpenAI API.")
  17. fmt.Println("Copyright (C) 2023 JustSong. All rights reserved.")
  18. fmt.Println("GitHub: https://github.com/songquanpeng/one-api")
  19. fmt.Println("Usage: one-api [--port <port>] [--log-dir <log directory>] [--version] [--help]")
  20. }
  21. func init() {
  22. flag.Parse()
  23. if *PrintVersion {
  24. fmt.Println(Version)
  25. os.Exit(0)
  26. }
  27. if *PrintHelp {
  28. printHelp()
  29. os.Exit(0)
  30. }
  31. if os.Getenv("SESSION_SECRET") != "" {
  32. ss := os.Getenv("SESSION_SECRET")
  33. if ss == "random_string" {
  34. log.Println("WARNING: SESSION_SECRET is set to the default value 'random_string', please change it to a random string.")
  35. log.Println("警告:SESSION_SECRET被设置为默认值'random_string',请修改为随机字符串。")
  36. log.Fatal("Please set SESSION_SECRET to a random string.")
  37. } else {
  38. SessionSecret = ss
  39. }
  40. }
  41. if os.Getenv("SQLITE_PATH") != "" {
  42. SQLitePath = os.Getenv("SQLITE_PATH")
  43. }
  44. if *LogDir != "" {
  45. var err error
  46. *LogDir, err = filepath.Abs(*LogDir)
  47. if err != nil {
  48. log.Fatal(err)
  49. }
  50. if _, err := os.Stat(*LogDir); os.IsNotExist(err) {
  51. err = os.Mkdir(*LogDir, 0777)
  52. if err != nil {
  53. log.Fatal(err)
  54. }
  55. }
  56. }
  57. }