.PHONY: upload
upload: ${DEB}
+ ./repoid.pl .git check
umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw
mkdir -p /pve/${RELEASE}/extra
rm -f /pve/${RELEASE}/extra/${PACKAGE}_*.deb
all: pvecfg.pm ${SUBDIRS}
+REPOID=`../repoid.pl ../.git`
+
pvecfg.pm: pvecfg.pm.in
- sed -e s/@VERSION@/${VERSION}/ -e s/@PACKAGE@/${PACKAGE}/ $< >$@
+ sed -e s/@VERSION@/${VERSION}/ -e s/@PACKAGE@/${PACKAGE}/ -e s/@REPOID@/${REPOID}/ $< >$@.tmp
+ mv $@.tmp $@
%:
set -e && for i in ${SUBDIRS}; do ${MAKE} -C $$i $@; done
.PHONY: clean
clean:
set -e && for i in ${SUBDIRS}; do ${MAKE} -C $$i $@; done
- rm -rf *~ pvecfg.pm
+ rm -rf *~ pvecfg.pm pvecfg.pm.tmp
.PHONY: install
install: pvecfg.pm ${PERLSOURCE}
--- /dev/null
+#!/usr/bin/perl -w
+
+# use use the first 8 characters from the master commit ID
+
+# git status --porcelain
+
+use strict;
+use lib qw(.);
+use PVE::Tools qw(run_command);
+
+my $gitdir = shift;
+die "no repository" if !$gitdir;
+
+my $path = "$gitdir/refs/heads/master";
+die "master branch does not exists" if ! -f $path;
+
+my $arg1 = shift;
+
+if ($arg1) {
+ die "unknown parameter '$arg1'" if $arg1 ne 'check';
+
+ my $testfunc = sub {
+ my $line = shift;
+ next if $line =~ m/^#/;
+ next if $line =~ m/^\?\?/;
+
+ die "detected modified content: $line\n";
+ };
+
+ my $cmd = ['git', '--git-dir', $gitdir ,'status', '--porcelain'];
+ run_command($cmd, outfunc => $testfunc);
+}
+
+my $repoid = `cat $path`;
+chomp $repoid;
+
+die "invalid commit format" if $repoid !~ m/^[0-9a-f]{40}$/;
+
+my $res = substr $repoid, 0, 8;
+print "$res\n";