Commit ffb1b69b authored by Dietmar Maurer's avatar Dietmar Maurer

compute a repository ID

And try to disable upload when there are local modifications.
parent 3eaa25db
......@@ -44,6 +44,7 @@ ${DEB} deb:
.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
......
......@@ -11,8 +11,11 @@ PERLSOURCE = \
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
......@@ -24,7 +27,7 @@ distclean: clean
.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}
......
#!/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";
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment