more stuff in the makefile
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
parent
4dfa653823
commit
96e58af1da
2 changed files with 70 additions and 133 deletions
73
Makefile
73
Makefile
|
@ -18,35 +18,78 @@
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
DIST=dist-tag dist-branch-merge dist-pypi dist-archlinux-makepkg
|
MANDIR=docs/man
|
||||||
RELEASE=web release-man pub
|
MAN1DSTDIR=$(MANDIR)/man1
|
||||||
RELEASE+=release-blog release-ml
|
MAN7DSTDIR=$(MANDIR)/man7
|
||||||
RELEASE+=dist-freecode dist-manual dist-archlinux-aur-upload
|
MANREF=$(MAN7DSTDIR)/cdist-reference.text
|
||||||
|
MANREFSH=$(MANDIR)/cdist-reference.text.sh
|
||||||
|
|
||||||
|
CHECKS=check-version check-date
|
||||||
|
|
||||||
|
DIST=dist-tag dist-branch-merge
|
||||||
|
|
||||||
|
RELEASE=release-web release-man release-pypi release-archlinux-makepkg
|
||||||
|
RELEASE+=release-blog release-ml
|
||||||
|
RELEASE+=release-freecode release-archlinux-aur-upload
|
||||||
|
|
||||||
|
helper=./build-helper
|
||||||
|
version=`git describe`
|
||||||
|
versionchangelog=`$(helper) changelog-version`
|
||||||
|
versionfile=cdist/version.py
|
||||||
|
|
||||||
|
archlinuxtar=cdist-${versionchangelog}-1.src.tar.gz
|
||||||
|
|
||||||
|
$(versionfile):
|
||||||
|
echo $(version) > $@
|
||||||
|
|
||||||
version:
|
|
||||||
|
|
||||||
$(DIST): dist-check
|
$(DIST): dist-check
|
||||||
$(RELEASE): $(DIST)
|
$(RELEASE): $(DIST) $(CHECKS)
|
||||||
|
|
||||||
man: mangen mantype manbuild
|
man: $(MANREF) mantype manbuild
|
||||||
|
|
||||||
|
$(MANREF): $(MANREFSH)
|
||||||
|
$(MANREFSH)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# generic code
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# dist code
|
||||||
|
#
|
||||||
|
dist-check: man
|
||||||
|
|
||||||
dist: $(DIST)
|
dist: $(DIST)
|
||||||
echo "Run \"make release\" to release to the public"
|
echo "Run \"make release\" to release to the public"
|
||||||
|
|
||||||
release: $(RELEASE)
|
dist-pypi: man version
|
||||||
|
python3 setup.py sdist upload
|
||||||
|
|
||||||
dist-archlinux: dist-pypi
|
$(archlinuxtar): PKGBUILD dist-pypi
|
||||||
|
|
||||||
dist-check: clean man
|
|
||||||
|
|
||||||
dist-archlinux-makepkg: PKGBUILD
|
|
||||||
makepkg -c --source
|
makepkg -c --source
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# release code
|
||||||
|
#
|
||||||
|
release: pub $(RELEASE)
|
||||||
|
echo "Don't forget...: linkedin"
|
||||||
|
|
||||||
|
|
||||||
|
release-archlinux: $(archlinuxtar)
|
||||||
|
burp -c system $^
|
||||||
|
|
||||||
|
release-blog: blog
|
||||||
|
release-ml: release-blog
|
||||||
release-pub: man
|
release-pub: man
|
||||||
|
|
||||||
|
release-web: web-doc
|
||||||
|
|
||||||
PKGBUILD: PKGBUILD.in
|
PKGBUILD: PKGBUILD.in
|
||||||
./PKGBUILD.in
|
./PKGBUILD.in
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# generic call
|
||||||
%:
|
%:
|
||||||
./build-helper $@
|
$(helper) $@
|
||||||
|
|
||||||
|
|
130
build-helper
130
build-helper
|
@ -18,14 +18,9 @@
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Push a directory to a target, both sides have the same name (i.e. explorers)
|
# This file contains the heavy lifting found usually in the Makefile
|
||||||
# or
|
|
||||||
# Pull a directory from a target, both sides have the same name (i.e. explorers)
|
|
||||||
#
|
#
|
||||||
|
|
||||||
# exit on any error
|
|
||||||
#set -e
|
|
||||||
|
|
||||||
basedir=${0%/*}
|
basedir=${0%/*}
|
||||||
version=$(cd "$basedir" && git describe)
|
version=$(cd "$basedir" && git describe)
|
||||||
|
|
||||||
|
@ -51,13 +46,6 @@ SPEECHESDIR=docs/speeches
|
||||||
cd "$basedir"
|
cd "$basedir"
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
man)
|
|
||||||
set -e
|
|
||||||
"$0" mangen
|
|
||||||
"$0" mantype
|
|
||||||
"$0" manbuild
|
|
||||||
;;
|
|
||||||
|
|
||||||
manbuild)
|
manbuild)
|
||||||
trap abort INT
|
trap abort INT
|
||||||
abort() {
|
abort() {
|
||||||
|
@ -86,13 +74,7 @@ case "$1" in
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mangen)
|
release-man)
|
||||||
${MANDIR}/cdist-reference.text.sh
|
|
||||||
;;
|
|
||||||
|
|
||||||
man-pub)
|
|
||||||
$0 man
|
|
||||||
|
|
||||||
version=$($0 changelog-version)
|
version=$($0 changelog-version)
|
||||||
|
|
||||||
rm -rf "${WEBMAN}"
|
rm -rf "${WEBMAN}"
|
||||||
|
@ -102,36 +84,6 @@ case "$1" in
|
||||||
cd ${WEBMAN} && git add . && git commit -m "Cdist Manpage update: $version"
|
cd ${WEBMAN} && git add . && git commit -m "Cdist Manpage update: $version"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dist)
|
|
||||||
set -e
|
|
||||||
# Do the checks
|
|
||||||
$0 dist-check
|
|
||||||
|
|
||||||
# Git changes - everything depends on this
|
|
||||||
$0 dist-tag
|
|
||||||
$0 dist-branch-merge
|
|
||||||
|
|
||||||
# Pypi first - is the base for others
|
|
||||||
$0 dist-pypi
|
|
||||||
|
|
||||||
# Archlinux depends on successful pypi ;-)
|
|
||||||
$0 dist-archlinux
|
|
||||||
|
|
||||||
# Update website (includes documentation)
|
|
||||||
$0 web
|
|
||||||
|
|
||||||
# Update manpages on website
|
|
||||||
$0 man-pub
|
|
||||||
|
|
||||||
# update git repos
|
|
||||||
$0 pub
|
|
||||||
|
|
||||||
$0 dist-blog
|
|
||||||
$0 dist-freecode
|
|
||||||
$0 dist-ml
|
|
||||||
$0 dist-manual
|
|
||||||
;;
|
|
||||||
|
|
||||||
changelog-changes)
|
changelog-changes)
|
||||||
awk -F: 'BEGIN { start=0 } { if ($0 ~ /^[[:digit:]]/) { if(start == 0) {start = 1 } else { exit } } else { if(start==1) {print $0 }} }' "$basedir/docs/changelog"
|
awk -F: 'BEGIN { start=0 } { if ($0 ~ /^[[:digit:]]/) { if(start == 0) {start = 1 } else { exit } } else { if(start==1) {print $0 }} }' "$basedir/docs/changelog"
|
||||||
;;
|
;;
|
||||||
|
@ -141,12 +93,7 @@ case "$1" in
|
||||||
grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/:.*//'
|
grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/:.*//'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dist-check)
|
check-version)
|
||||||
set -e
|
|
||||||
echo "Verifying documentation building works ..."
|
|
||||||
$0 clean
|
|
||||||
$0 man
|
|
||||||
|
|
||||||
changelog_version=$($0 changelog-version)
|
changelog_version=$($0 changelog-version)
|
||||||
echo "Target version from changelog: $changelog_version"
|
echo "Target version from changelog: $changelog_version"
|
||||||
|
|
||||||
|
@ -154,7 +101,9 @@ case "$1" in
|
||||||
echo "Version $changelog_version already exists, aborting."
|
echo "Version $changelog_version already exists, aborting."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
check-date)
|
||||||
# verify date in changelog
|
# verify date in changelog
|
||||||
date_today="$(date +%Y-%m-%d)"
|
date_today="$(date +%Y-%m-%d)"
|
||||||
date_changelog=$(grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/.*: //')
|
date_changelog=$(grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/.*: //')
|
||||||
|
@ -164,7 +113,6 @@ case "$1" in
|
||||||
echo "Changelog: $date_changelog"
|
echo "Changelog: $date_changelog"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
blog)
|
blog)
|
||||||
|
@ -186,8 +134,7 @@ For more information visit the [[cdist homepage|software/cdist]].
|
||||||
eof
|
eof
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dist-blog)
|
release-blog)
|
||||||
$0 blog
|
|
||||||
version=$($0 changelog-version)
|
version=$($0 changelog-version)
|
||||||
file=cdist-${version}-released.mdwn
|
file=cdist-${version}-released.mdwn
|
||||||
cd "$WEBBLOG"
|
cd "$WEBBLOG"
|
||||||
|
@ -196,8 +143,7 @@ eof
|
||||||
git push
|
git push
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dist-ml)
|
release-ml)
|
||||||
$0 blog
|
|
||||||
version=$($0 changelog-version)
|
version=$($0 changelog-version)
|
||||||
to_a=cdist
|
to_a=cdist
|
||||||
to_d=l.schottelius.org
|
to_d=l.schottelius.org
|
||||||
|
@ -233,16 +179,6 @@ eof
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
||||||
dist-manual)
|
|
||||||
cat << notes
|
|
||||||
|
|
||||||
To be done manually...
|
|
||||||
|
|
||||||
- linkedin entry
|
|
||||||
notes
|
|
||||||
|
|
||||||
;;
|
|
||||||
|
|
||||||
dist-tag)
|
dist-tag)
|
||||||
version=$($0 changelog-version)
|
version=$($0 changelog-version)
|
||||||
# add tag
|
# add tag
|
||||||
|
@ -267,23 +203,7 @@ notes
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dist-archlinux)
|
release-freecode)
|
||||||
$0 dist-archlinux-makepkg
|
|
||||||
$0 dist-archlinux-aur-upload
|
|
||||||
;;
|
|
||||||
|
|
||||||
dist-archlinux-makepkg)
|
|
||||||
./PKGBUILD.in
|
|
||||||
makepkg -c --source
|
|
||||||
;;
|
|
||||||
|
|
||||||
dist-archlinux-aur-upload)
|
|
||||||
version=$($0 changelog-version)
|
|
||||||
tar=cdist-${version}-1.src.tar.gz
|
|
||||||
burp -c system "$tar"
|
|
||||||
;;
|
|
||||||
|
|
||||||
dist-freecode)
|
|
||||||
version=$($0 changelog-version)
|
version=$($0 changelog-version)
|
||||||
api_token=$(awk '/machine freecode login/ { print $8 }' ~/.netrc)
|
api_token=$(awk '/machine freecode login/ { print $8 }' ~/.netrc)
|
||||||
|
|
||||||
|
@ -316,13 +236,7 @@ eof
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dist-pypi)
|
dist-speeches)
|
||||||
$0 man
|
|
||||||
$0 version
|
|
||||||
python3 setup.py sdist upload
|
|
||||||
;;
|
|
||||||
|
|
||||||
speeches)
|
|
||||||
cd "$SPEECHESDIR"
|
cd "$SPEECHESDIR"
|
||||||
for speech in *tex; do
|
for speech in *tex; do
|
||||||
pdflatex "$speech"
|
pdflatex "$speech"
|
||||||
|
@ -339,16 +253,15 @@ eof
|
||||||
cd "${WEBDIR}" && make pub
|
cd "${WEBDIR}" && make pub
|
||||||
;;
|
;;
|
||||||
|
|
||||||
web)
|
release-web)
|
||||||
set -e
|
set -e
|
||||||
"$0" web-doc
|
|
||||||
# Fix ikiwiki, which does not like symlinks for pseudo security
|
# Fix ikiwiki, which does not like symlinks for pseudo security
|
||||||
ssh tee.schottelius.org \
|
ssh tee.schottelius.org \
|
||||||
"cd /home/services/www/nico/www.nico.schottelius.org/www/software/cdist/man &&
|
"cd /home/services/www/nico/www.nico.schottelius.org/www/software/cdist/man &&
|
||||||
rm -f latest && ln -sf "$version" latest"
|
rm -f latest && ln -sf "$version" latest"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
p|pu|pub)
|
pub)
|
||||||
for remote in "" github sf; do
|
for remote in "" github sf; do
|
||||||
echo "Pushing to $remote"
|
echo "Pushing to $remote"
|
||||||
git push --mirror $remote
|
git push --mirror $remote
|
||||||
|
@ -376,11 +289,6 @@ eof
|
||||||
rm -rf pkg/ src/
|
rm -rf pkg/ src/
|
||||||
;;
|
;;
|
||||||
|
|
||||||
very-clean)
|
|
||||||
$0 clean
|
|
||||||
$0 clean-dist
|
|
||||||
;;
|
|
||||||
|
|
||||||
test)
|
test)
|
||||||
shift # skip t
|
shift # skip t
|
||||||
export PYTHONPATH="$(pwd -P)"
|
export PYTHONPATH="$(pwd -P)"
|
||||||
|
@ -392,22 +300,8 @@ eof
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
version)
|
|
||||||
echo "VERSION=\"$version\"" > cdist/version.py
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo ''
|
echo "Unknown target $@ - aborting"
|
||||||
echo 'Welcome to cdist!'
|
|
||||||
echo ''
|
|
||||||
echo 'Here are the possible targets:'
|
|
||||||
echo ''
|
|
||||||
echo ' clean: Remove build stuff'
|
|
||||||
echo ' man: Build manpages (requires Asciidoc)'
|
|
||||||
echo ' test: Run tests'
|
|
||||||
echo ''
|
|
||||||
echo ''
|
|
||||||
echo "Unknown target, \"$1\"" >&2
|
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue