main.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "api/api_server.h"
  2. #include "store/store.h"
  3. #include "utils.h"
  4. #include <cstdlib>
  5. #include <iostream>
  6. #include <string>
  7. int main(int argc, char* argv[]) {
  8. using namespace ngs;
  9. std::string listen_addr = api::kDefaultListenAddr;
  10. uint16_t listen_port = api::kDefaultListenPort;
  11. for (int i = 1; i < argc; ++i) {
  12. const std::string arg = argv[i];
  13. if ((arg == "--port" || arg == "-p") && i + 1 < argc) {
  14. listen_port = static_cast<uint16_t>(std::atoi(argv[++i]));
  15. } else if ((arg == "--listen" || arg == "-l") && i + 1 < argc) {
  16. listen_addr = argv[++i];
  17. } else if (arg == "--help" || arg == "-h") {
  18. std::cout << "Usage: ngs [--listen 0.0.0.0] [--port 15665]\n";
  19. return 0;
  20. }
  21. }
  22. ensure_dir(software_root());
  23. ensure_dir(conf_root());
  24. ensure_dir(wwwroot_dir());
  25. if (!store::init()) {
  26. std::cerr << "初始化数据库失败: " << store::database_path() << "\n";
  27. return 1;
  28. }
  29. if (!api::run(listen_addr, listen_port)) {
  30. return 1;
  31. }
  32. return 0;
  33. }