compute a repository ID
And try to disable upload when there are local modifications.
This commit is contained in:
parent
3eaa25db0b
commit
ffb1b69bb0
1
Makefile
1
Makefile
@ -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}
|
||||
|
40
repoid.pl
Executable file
40
repoid.pl
Executable file
@ -0,0 +1,40 @@
|
||||
#!/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";
|
Loading…
x
Reference in New Issue
Block a user