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
|
||||
RELEASE=web release-man pub
|
||||
RELEASE+=release-blog release-ml
|
||||
RELEASE+=dist-freecode dist-manual dist-archlinux-aur-upload
|
||||
MANDIR=docs/man
|
||||
MAN1DSTDIR=$(MANDIR)/man1
|
||||
MAN7DSTDIR=$(MANDIR)/man7
|
||||
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
|
||||
$(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)
|
||||
echo "Run \"make release\" to release to the public"
|
||||
|
||||
release: $(RELEASE)
|
||||
dist-pypi: man version
|
||||
python3 setup.py sdist upload
|
||||
|
||||
dist-archlinux: dist-pypi
|
||||
|
||||
dist-check: clean man
|
||||
|
||||
dist-archlinux-makepkg: PKGBUILD
|
||||
$(archlinuxtar): PKGBUILD dist-pypi
|
||||
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-web: web-doc
|
||||
|
||||
PKGBUILD: 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/>.
|
||||
#
|
||||
#
|
||||
# Push a directory to a target, both sides have the same name (i.e. explorers)
|
||||
# or
|
||||
# Pull a directory from a target, both sides have the same name (i.e. explorers)
|
||||
# This file contains the heavy lifting found usually in the Makefile
|
||||
#
|
||||
|
||||
# exit on any error
|
||||
#set -e
|
||||
|
||||
basedir=${0%/*}
|
||||
version=$(cd "$basedir" && git describe)
|
||||
|
||||
|
@ -51,13 +46,6 @@ SPEECHESDIR=docs/speeches
|
|||
cd "$basedir"
|
||||
|
||||
case "$1" in
|
||||
man)
|
||||
set -e
|
||||
"$0" mangen
|
||||
"$0" mantype
|
||||
"$0" manbuild
|
||||
;;
|
||||
|
||||
manbuild)
|
||||
trap abort INT
|
||||
abort() {
|
||||
|
@ -86,13 +74,7 @@ case "$1" in
|
|||
done
|
||||
;;
|
||||
|
||||
mangen)
|
||||
${MANDIR}/cdist-reference.text.sh
|
||||
;;
|
||||
|
||||
man-pub)
|
||||
$0 man
|
||||
|
||||
release-man)
|
||||
version=$($0 changelog-version)
|
||||
|
||||
rm -rf "${WEBMAN}"
|
||||
|
@ -102,36 +84,6 @@ case "$1" in
|
|||
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)
|
||||
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/:.*//'
|
||||
;;
|
||||
|
||||
dist-check)
|
||||
set -e
|
||||
echo "Verifying documentation building works ..."
|
||||
$0 clean
|
||||
$0 man
|
||||
|
||||
check-version)
|
||||
changelog_version=$($0 changelog-version)
|
||||
echo "Target version from changelog: $changelog_version"
|
||||
|
||||
|
@ -154,7 +101,9 @@ case "$1" in
|
|||
echo "Version $changelog_version already exists, aborting."
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
check-date)
|
||||
# verify date in changelog
|
||||
date_today="$(date +%Y-%m-%d)"
|
||||
date_changelog=$(grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/.*: //')
|
||||
|
@ -164,7 +113,6 @@ case "$1" in
|
|||
echo "Changelog: $date_changelog"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
;;
|
||||
|
||||
blog)
|
||||
|
@ -186,8 +134,7 @@ For more information visit the [[cdist homepage|software/cdist]].
|
|||
eof
|
||||
;;
|
||||
|
||||
dist-blog)
|
||||
$0 blog
|
||||
release-blog)
|
||||
version=$($0 changelog-version)
|
||||
file=cdist-${version}-released.mdwn
|
||||
cd "$WEBBLOG"
|
||||
|
@ -196,8 +143,7 @@ eof
|
|||
git push
|
||||
;;
|
||||
|
||||
dist-ml)
|
||||
$0 blog
|
||||
release-ml)
|
||||
version=$($0 changelog-version)
|
||||
to_a=cdist
|
||||
to_d=l.schottelius.org
|
||||
|
@ -233,16 +179,6 @@ eof
|
|||
;;
|
||||
|
||||
|
||||
dist-manual)
|
||||
cat << notes
|
||||
|
||||
To be done manually...
|
||||
|
||||
- linkedin entry
|
||||
notes
|
||||
|
||||
;;
|
||||
|
||||
dist-tag)
|
||||
version=$($0 changelog-version)
|
||||
# add tag
|
||||
|
@ -267,23 +203,7 @@ notes
|
|||
fi
|
||||
;;
|
||||
|
||||
dist-archlinux)
|
||||
$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)
|
||||
release-freecode)
|
||||
version=$($0 changelog-version)
|
||||
api_token=$(awk '/machine freecode login/ { print $8 }' ~/.netrc)
|
||||
|
||||
|
@ -316,13 +236,7 @@ eof
|
|||
|
||||
;;
|
||||
|
||||
dist-pypi)
|
||||
$0 man
|
||||
$0 version
|
||||
python3 setup.py sdist upload
|
||||
;;
|
||||
|
||||
speeches)
|
||||
dist-speeches)
|
||||
cd "$SPEECHESDIR"
|
||||
for speech in *tex; do
|
||||
pdflatex "$speech"
|
||||
|
@ -339,16 +253,15 @@ eof
|
|||
cd "${WEBDIR}" && make pub
|
||||
;;
|
||||
|
||||
web)
|
||||
release-web)
|
||||
set -e
|
||||
"$0" web-doc
|
||||
# Fix ikiwiki, which does not like symlinks for pseudo security
|
||||
ssh tee.schottelius.org \
|
||||
"cd /home/services/www/nico/www.nico.schottelius.org/www/software/cdist/man &&
|
||||
rm -f latest && ln -sf "$version" latest"
|
||||
;;
|
||||
|
||||
p|pu|pub)
|
||||
pub)
|
||||
for remote in "" github sf; do
|
||||
echo "Pushing to $remote"
|
||||
git push --mirror $remote
|
||||
|
@ -376,11 +289,6 @@ eof
|
|||
rm -rf pkg/ src/
|
||||
;;
|
||||
|
||||
very-clean)
|
||||
$0 clean
|
||||
$0 clean-dist
|
||||
;;
|
||||
|
||||
test)
|
||||
shift # skip t
|
||||
export PYTHONPATH="$(pwd -P)"
|
||||
|
@ -392,22 +300,8 @@ eof
|
|||
fi
|
||||
;;
|
||||
|
||||
version)
|
||||
echo "VERSION=\"$version\"" > cdist/version.py
|
||||
;;
|
||||
|
||||
*)
|
||||
echo ''
|
||||
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
|
||||
echo "Unknown target $@ - aborting"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
|
|
Loading…
Reference in a new issue