Signed-off-by: Li Ping <1477412247(a)qq.com>
---
src/lib/web_env.cr | 9 +++++++++
src/updaterepo.cr | 17 +++++++++++++++++
src/updaterepo/constants.cr | 4 ++++
src/updaterepo/updaterepo.cr | 16 ++++++++++++++++
4 files changed, 46 insertions(+)
create mode 100644 src/updaterepo.cr
create mode 100644 src/updaterepo/constants.cr
create mode 100644 src/updaterepo/updaterepo.cr
diff --git a/src/lib/web_env.cr b/src/lib/web_env.cr
index b3a90a8..d47e7e5 100644
--- a/src/lib/web_env.cr
+++ b/src/lib/web_env.cr
@@ -4,6 +4,7 @@
require "./sched"
require "./lifecycle"
require "./json_logger"
+require "./updaterepo"
class HTTP::Server
# Instances of this class are passed to an `HTTP::Server` handler.
@@ -31,5 +32,13 @@ class HTTP::Server
def create_lifecycle
@lifecycle = Lifecycle.new(self)
end
+
+ def repo
+ @repo ||= create_repo
+ end
+
+ def create_repo
+ @repo = Repo.new(self)
+ end
end
end
diff --git a/src/updaterepo.cr b/src/updaterepo.cr
new file mode 100644
index 0000000..05fa4fe
--- /dev/null
+++ b/src/updaterepo.cr
@@ -0,0 +1,17 @@
+# SPDX-License-Identifier: MulanPSL-2.0+
+# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
+
+require "./updaterepo/updaterepo"
+require "./updaterepo/constants"
+require "./lib/json_logger"
+
+
+module Updaterepo
+ log = JSONLogger.new
+
+ begin
+ Kemal.run(REPO_PORT)
+ rescue e
+ log.error(e)
+ end
+end
diff --git a/src/updaterepo/constants.cr b/src/updaterepo/constants.cr
new file mode 100644
index 0000000..25d9978
--- /dev/null
+++ b/src/updaterepo/constants.cr
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: MulanPSL-2.0+
+# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
+
+REPO_PORT = (ENV.has_key?("REPO_PORT") ? ENV["REPO_PORT"] : 10003).to_i32
diff --git a/src/updaterepo/updaterepo.cr b/src/updaterepo/updaterepo.cr
new file mode 100644
index 0000000..7ad9d20
--- /dev/null
+++ b/src/updaterepo/updaterepo.cr
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: MulanPSL-2.0+
+# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
+
+require "kemal"
+
+require "../lib/web_env"
+require "../lib/updaterepo"
+require "../lib/json_logger"
+
+module Updaterepo
+ VERSION = "0.1.0"
+ post "/upload" do |env|
+ env.repo.upload_repo
+ "done"
+ end
+end
--
2.23.0