forked from ungleich-public/cdist
		
	allow changelog-changes to print changes from any version
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
		
					parent
					
						
							
								5bdc2e1ba9
							
						
					
				
			
			
				commit
				
					
						9b9f34eb00
					
				
			
		
					 1 changed files with 46 additions and 63 deletions
				
			
		
							
								
								
									
										109
									
								
								bin/build-helper
									
										
									
									
									
								
							
							
						
						
									
										109
									
								
								bin/build-helper
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -27,46 +27,41 @@ cd "$basedir"
 | 
			
		|||
 | 
			
		||||
version=$(git describe)
 | 
			
		||||
 | 
			
		||||
# Manpage and HTML
 | 
			
		||||
A2XM="a2x -f manpage --no-xmllint -a encoding=UTF-8"
 | 
			
		||||
A2XH="a2x -f xhtml --no-xmllint -a encoding=UTF-8"
 | 
			
		||||
option=$1; shift
 | 
			
		||||
 | 
			
		||||
# Developer webbase
 | 
			
		||||
WEBDIR=$HOME/www.nico.schottelius.org
 | 
			
		||||
WEBBLOG=$WEBDIR/blog
 | 
			
		||||
WEBTOPDIR=$WEBDIR/software
 | 
			
		||||
WEBBASE=$WEBTOPDIR/cdist
 | 
			
		||||
WEBMAN=$WEBBASE/man/$version
 | 
			
		||||
WEBPAGE=${WEBBASE}.mdwn
 | 
			
		||||
 | 
			
		||||
# Documentation
 | 
			
		||||
MANDIR=docs/man
 | 
			
		||||
MAN1DSTDIR=${MANDIR}/man1
 | 
			
		||||
MAN7DSTDIR=${MANDIR}/man7
 | 
			
		||||
SPEECHESDIR=docs/speeches
 | 
			
		||||
 | 
			
		||||
case "$1" in
 | 
			
		||||
case "$option" in
 | 
			
		||||
    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"
 | 
			
		||||
        if [ "$#" -eq 1 ]; then
 | 
			
		||||
            start=$1
 | 
			
		||||
        else
 | 
			
		||||
            start="[[:digit:]]"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        end="[[:digit:]]"
 | 
			
		||||
 | 
			
		||||
        awk -F: "BEGIN { start=0 }
 | 
			
		||||
            {
 | 
			
		||||
                if(start == 0) {
 | 
			
		||||
                    if (\$0 ~ /^$start/) {
 | 
			
		||||
                        start = 1
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    if (\$0 ~ /^$end/) {
 | 
			
		||||
                        exit
 | 
			
		||||
                    } else {
 | 
			
		||||
                        print \$0 
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }" "$basedir/docs/changelog"
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    changelog-version)
 | 
			
		||||
        # get version from changelog and ensure it's not already present
 | 
			
		||||
        # get version from changelog
 | 
			
		||||
        grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/:.*//'
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    check-version)
 | 
			
		||||
        changelog_version=$($0 changelog-version)
 | 
			
		||||
        echo "Target version from changelog: $changelog_version"
 | 
			
		||||
 | 
			
		||||
        if git show --quiet $changelog_version >/dev/null 2>&1; then
 | 
			
		||||
            echo "Version $changelog_version already exists, aborting."
 | 
			
		||||
            exit 1
 | 
			
		||||
        fi
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    check-date)
 | 
			
		||||
        # verify date in changelog
 | 
			
		||||
        # verify date in changelog is today
 | 
			
		||||
        date_today="$(date +%Y-%m-%d)"
 | 
			
		||||
        date_changelog=$(grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/.*: //')
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -77,9 +72,24 @@ case "$1" in
 | 
			
		|||
        fi
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    check-unittest)
 | 
			
		||||
        "$0" test
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    check-version)
 | 
			
		||||
        changelog_version=$($0 changelog-version)
 | 
			
		||||
 | 
			
		||||
        if git show --quiet $changelog_version >/dev/null 2>&1; then
 | 
			
		||||
            echo "Version $changelog_version already exists, aborting."
 | 
			
		||||
            exit 1
 | 
			
		||||
        fi
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    blog)
 | 
			
		||||
        version=$($0 changelog-version)
 | 
			
		||||
        blogfile=$WEBBLOG/cdist-${version}-released.mdwn
 | 
			
		||||
        version=$1; shift
 | 
			
		||||
        blogfile=$1; shift
 | 
			
		||||
 | 
			
		||||
        cat << eof > "$blogfile"
 | 
			
		||||
[[!meta title="Cdist $version released"]]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -94,17 +104,13 @@ For more information visit the [[cdist homepage|software/cdist]].
 | 
			
		|||
 | 
			
		||||
[[!tag cdist config unix]]
 | 
			
		||||
eof
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    release-blog)
 | 
			
		||||
        version=$($0 changelog-version)
 | 
			
		||||
        file=cdist-${version}-released.mdwn
 | 
			
		||||
        cd "$WEBBLOG"
 | 
			
		||||
        git add "$file"
 | 
			
		||||
        git commit -m "New cdist version (blogentry): $version" "$file"
 | 
			
		||||
        git commit -m "New cdist version (blogentry): $version" "$blogfile"
 | 
			
		||||
        git push
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    release-ml)
 | 
			
		||||
        version=$($0 changelog-version)
 | 
			
		||||
        to_a=cdist
 | 
			
		||||
| 
						 | 
				
			
			@ -198,31 +204,7 @@ eof
 | 
			
		|||
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    web-doc)
 | 
			
		||||
        rsync -av "${basedir}/docs/web/" "${WEBTOPDIR}"
 | 
			
		||||
 | 
			
		||||
        cd "${WEBDIR}" && git add "${WEBBASE}"
 | 
			
		||||
        cd "${WEBDIR}" && git commit -m "cdist update" "${WEBBASE}" "${WEBPAGE}"
 | 
			
		||||
        cd "${WEBDIR}" && make pub
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    release-web)
 | 
			
		||||
        set -e
 | 
			
		||||
        # 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"
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
     pub)
 | 
			
		||||
          for remote in "" github sf; do
 | 
			
		||||
                echo "Pushing to $remote"
 | 
			
		||||
                git push --mirror $remote
 | 
			
		||||
          done
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    test)
 | 
			
		||||
        shift # skip t
 | 
			
		||||
        export PYTHONPATH="$(pwd -P)"
 | 
			
		||||
 | 
			
		||||
        if [ $# -lt 1 ]; then
 | 
			
		||||
| 
						 | 
				
			
			@ -231,6 +213,7 @@ eof
 | 
			
		|||
            python3 -m unittest "$@"
 | 
			
		||||
        fi
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
    version)
 | 
			
		||||
        echo "VERSION = \"$(git describe)\"" > cdist/version.py
 | 
			
		||||
    ;;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue