summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go.mod9
-rw-r--r--go.sum6
-rwxr-xr-xmake-release60
3 files changed, 75 insertions, 0 deletions
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..d528c32
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,9 @@
+module git.lukeshu.com/go/libnslcd
+
+go 1.17
+
+require (
+ git.lukeshu.com/go/libgnulinux v0.0.0-20170114074148-b2bae3c73817
+ git.lukeshu.com/go/libsystemd v0.5.3
+ golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..9bc7553
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,6 @@
+git.lukeshu.com/go/libgnulinux v0.0.0-20170114074148-b2bae3c73817 h1:QmB//pm4GcjYcuy/8PQUSaT08UwP0xsZ5X9RrFYfIcg=
+git.lukeshu.com/go/libgnulinux v0.0.0-20170114074148-b2bae3c73817/go.mod h1:CVvoUmCtgX1FQn/gha4laT330Wv+rrP2iwb6zxy0RL4=
+git.lukeshu.com/go/libsystemd v0.5.3 h1:491FbFw6FUXF449cVOYtrv7p7sJRSKNldLbOU7Ajvgc=
+git.lukeshu.com/go/libsystemd v0.5.3/go.mod h1:FfDoP0i92r4p5Vn4NCLxvjkd7rCOe6otPa4L6hZg9WM=
+golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf h1:2ucpDCmfkl8Bd/FsLtiD653Wf96cW37s+iGx93zsu4k=
+golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
diff --git a/make-release b/make-release
new file mode 100755
index 0000000..fabfd02
--- /dev/null
+++ b/make-release
@@ -0,0 +1,60 @@
+#!/usr/bin/env bash
+# Copyright 2016-2018 Luke Shumaker
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+set -e
+
+branch=$(git name-rev --name-only HEAD)
+if [[ $branch == master ]]; then
+ gitdir="$(git rev-parse --git-dir)"
+ workdir="${gitdir}/release"
+ exec 8>"${workdir}.lock"
+ flock 8
+
+ rm -rf -- "$workdir"
+ git worktree prune
+ git branch -D release.tmp &>/dev/null || true
+
+ unset GIT_INDEX_FILE
+ git worktree add -b release.tmp "${gitdir}/release" master
+ (
+ unset GIT_DIR GIT_WORK_TREE
+ cd "$workdir"
+
+ go generate ./...
+ git ls-files -z '*/.gitignore' | xargs -0r rm -f --
+
+ git add .
+ git commit -m "Generate artifacts"
+
+ git checkout release # Ensure it exists locally
+ git pull --no-edit -s ours # Avoid conflicts
+
+ # What we want is
+ #
+ # git merge --no-edit -s theirs release.tmp
+ #
+ # Unfortunately, there is no 'theirs' strategy; so we
+ # have to switch branches and do it backward with the
+ # 'ours' strategry, switch back, then merge the merge
+ # commit.
+ git checkout release.tmp
+ git merge --no-edit -s ours release
+ git checkout release
+ git merge release.tmp
+
+ git branch -d release.tmp
+ )
+ rm -rf -- "$workdir"
+ git worktree prune
+fi