From 75befcde9ca7ce1d3bf295f4577634fa152c7ba4 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 24 Aug 2021 22:02:28 -0600 Subject: Add meta-files to work with Go modules --- go.mod | 9 +++++++++ go.sum | 6 ++++++ make-release | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 go.mod create mode 100644 go.sum create mode 100755 make-release 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 -- cgit v1.2.3