App.swift 944 B

1234567891011121314151617181920212223242526272829303132333435
  1. //
  2. // App.swift
  3. // Swifter
  4. //
  5. // Copyright (c) 2014-2016 Damian Kołakowski. All rights reserved.
  6. //
  7. import Foundation
  8. public class App {
  9. private let server = HttpServer()
  10. public init() { }
  11. public func run(port: in_port_t = 9080) throws -> Void {
  12. Process.watchSignals { signal in
  13. switch signal {
  14. case SIGTERM, SIGINT, SIGSTOP:
  15. self.server.stop()
  16. exit(EXIT_SUCCESS)
  17. case SIGINFO:
  18. print(self.server.routes.joinWithSeparator("\n"))
  19. case SIGHUP:
  20. print("//TODO - Reload config.")
  21. default:
  22. print("signal")
  23. }
  24. }
  25. print("Starting Swifter (\(HttpServer.VERSION)) at port \(port) with PID \(Process.PID)...")
  26. try self.server.start(port)
  27. print("Server started. Waiting for requests....")
  28. NSRunLoop.mainRunLoop().run()
  29. }
  30. }