3 # Sets the nano version according to the number of commits on this branch, as
4 # well as the branch offset.
6 # To have git run this script on commit, first make sure you change
7 # BRANCH_OFFSET to 60000 or higher, then create a "pre-commit" text file in
8 # .git/hooks/ with the following content:
10 # if [ -x .private/pre-commit.sh ]; then
11 # . .private/pre-commit.sh
14 # NOTE: These versioning hooks are intended to be used *INTERNALLY* by the
15 # libusb development team and are NOT intended to solve versioning for any
16 # derivative branch, such as one you would create for private development.
18 # Should you wish to reuse these scripts for your own versioning, in your own
19 # private branch, we kindly ask you to first set BRANCH_OFFSET to 60000, or
20 # higher, as any offset below below 60000 is *RESERVED* for libusb official
23 ################################################################################
24 ## YOU *MUST* SET THE FOLLOWING TO 60000 OR HIGHER IF YOU REUSE THIS SCRIPT ##
25 ################################################################################
27 ################################################################################
29 if [ -n "$LIBUSB_SKIP_NANO" ]; then
33 if [ "$BASH_VERSION" = '' ]; then
34 TYPE_CMD
="type git >/dev/null 2>&1"
36 TYPE_CMD
="type -P git &>/dev/null"
39 eval $TYPE_CMD ||
{ echo "git command not found. Aborting." >&2; exit 1; }
41 NANO
=`git log --oneline | wc -l`
42 NANO
=`expr $NANO + $BRANCH_OFFSET`
43 # Amended commits need to have the nano corrected. Current versions of git hooks
44 # only allow detection of amending post commit, so we require a .amend file,
45 # which will be created post commit with a user warning if none exists when an
47 if [ -f .amend
]; then
50 echo "setting nano to $NANO"
51 echo "#define LIBUSB_NANO $NANO" > libusb
/version_nano.h
52 git add libusb
/version_nano.h