From 74551bcf0eaf60cc766f92d83fe6a05bffc9e458 Mon Sep 17 00:00:00 2001 From: iBug Date: Tue, 23 Jul 2024 21:24:53 +0800 Subject: [PATCH] Add "deb" Makefile target --- .gitignore | 2 ++ Makefile | 16 ++++++++++++++++ etc/daemon.example.toml | 24 ++++++++++++++++++++++++ etc/debian-control | 9 +++++++++ {deploy => etc}/yukid.service | 5 ++++- 5 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 etc/daemon.example.toml create mode 100644 etc/debian-control rename {deploy => etc}/yukid.service (54%) diff --git a/.gitignore b/.gitignore index f3a40ea..735eaef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ # Build output files /yukictl /yukid +/*.deb .idea/ +/debian/ dist/ *.swp diff --git a/Makefile b/Makefile index da91176..9fd12a1 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,6 @@ +.PHONY: all +all: yukid yukictl + .PHONY: lint lint: golangci-lint run --fix ./... @@ -27,3 +30,16 @@ yukictl: -X github.com/ustclug/Yuki/pkg/info.GitCommit=$(git_commit) \ -X github.com/ustclug/Yuki/pkg/info.Version=$(version)" \ -trimpath ./cmd/yukictl + +.PHONY: deb + +deb_dir := $(shell mktemp -d) +deb: | yukid yukictl + mkdir -p $(addprefix $(deb_dir)/, DEBIAN etc/bash_completion.d etc/yuki lib/systemd/system usr/local/bin) + cp etc/daemon.example.toml $(deb_dir)/etc/yuki + cp etc/yukid.service $(deb_dir)/lib/systemd/system + cp yukid yukictl $(deb_dir)/usr/local/bin + $(deb_dir)/usr/local/bin/yukictl completion bash > $(deb_dir)/etc/bash_completion.d/yukictl + sed "s/\$$VERSION\>/$(version)/g;s/^Version: v/Version: /g;s/\$$ARCH\>/$(shell go env GOARCH)/g" \ + etc/debian-control > $(deb_dir)/DEBIAN/control + dpkg-deb --build -Zxz $(deb_dir) . diff --git a/etc/daemon.example.toml b/etc/daemon.example.toml new file mode 100644 index 0000000..e580cf2 --- /dev/null +++ b/etc/daemon.example.toml @@ -0,0 +1,24 @@ +debug = false + +listen_addr = "127.0.0.1:9999" +db_url = "/home/mirror/yukid.db" +repo_config_dir = "/home/mirror/repos/" + +fs = "zfs" + +# uid:gid +owner = "1000:1000" + +log_file = "/home/mirror/log/yukid.log" +repo_logs_dir = "/home/mirror/log/" +log_level = "error" + +bind_ip = "0.0.0.0" + +name_prefix = "syncing-" + +images_upgrade_interval = "1h" + +post_sync = ["/home/mirror/scripts/post_sync.sh"] + +sync_timeout = "48h" diff --git a/etc/debian-control b/etc/debian-control new file mode 100644 index 0000000..457fb7d --- /dev/null +++ b/etc/debian-control @@ -0,0 +1,9 @@ +Package: yuki +Version: $VERSION +Architecture: $ARCH +Priority: optional +Section: admin +Maintainer: USTC LUG +Homepage: https://github.com/ustclug/Yuki +Depends: docker-engine | docker.io | docker-ce +Description: USTC Mirror Manager diff --git a/deploy/yukid.service b/etc/yukid.service similarity index 54% rename from deploy/yukid.service rename to etc/yukid.service index 6dfeaf2..6475482 100644 --- a/deploy/yukid.service +++ b/etc/yukid.service @@ -1,12 +1,15 @@ [Unit] -Description=Sync Local Repos With Remote +Description=Yuki - USTC Mirror Manager After=docker.service Requires=docker.service PartOf=docker.service +ConditionPathExists=/etc/yuki/daemon.toml [Service] User=mirror ExecStart=/usr/local/bin/yukid +ExecReload=/usr/local/bin/yukictl reload [Install] +Alias=yuki.service WantedBy=multi-user.target