#!/bin/sh # Writes a "CGIT_VERSION = ..." line into the output file, which the build # then includes. Run it from the project root, as gen-version.sh # [output], so that git describe reports cgit rather than the bundled git # submodule. The output file defaults to VERSION. version=$1 output=${2:-VERSION} # Prefer what git describe reports, but only at the top of the cgit working # tree, and keep the fallback when it has nothing to say, as in a shallow or # tagless clone. if test "$(git rev-parse --git-dir 2>/dev/null)" = '.git' then described=$(git describe --abbrev=4 HEAD 2>/dev/null) test -n "$described" && version=$described fi new="CGIT_VERSION = $version" old=$(cat "$output" 2>/dev/null) # Leaving the file untouched when nothing changed keeps make from rebuilding # everything that depends on it. test "$old" = "$new" && exit 0 echo "$new" > "$output" cat "$output"