mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-08 10:32:50 +00:00
compute a repository ID
And try to disable upload when there are local modifications.
This commit is contained in:
parent
4f0608f74a
commit
e38a88ca0a
1
Makefile
1
Makefile
@ -44,6 +44,7 @@ ${DEB} deb:
|
|||||||
|
|
||||||
.PHONY: upload
|
.PHONY: upload
|
||||||
upload: ${DEB}
|
upload: ${DEB}
|
||||||
|
./repoid.pl .git check
|
||||||
umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw
|
umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw
|
||||||
mkdir -p /pve/${RELEASE}/extra
|
mkdir -p /pve/${RELEASE}/extra
|
||||||
rm -f /pve/${RELEASE}/extra/${PACKAGE}_*.deb
|
rm -f /pve/${RELEASE}/extra/${PACKAGE}_*.deb
|
||||||
|
@ -11,8 +11,11 @@ PERLSOURCE = \
|
|||||||
|
|
||||||
all: pvecfg.pm ${SUBDIRS}
|
all: pvecfg.pm ${SUBDIRS}
|
||||||
|
|
||||||
|
REPOID=`../repoid.pl ../.git`
|
||||||
|
|
||||||
pvecfg.pm: pvecfg.pm.in
|
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
|
set -e && for i in ${SUBDIRS}; do ${MAKE} -C $$i $@; done
|
||||||
@ -24,7 +27,7 @@ distclean: clean
|
|||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
set -e && for i in ${SUBDIRS}; do ${MAKE} -C $$i $@; done
|
set -e && for i in ${SUBDIRS}; do ${MAKE} -C $$i $@; done
|
||||||
rm -rf *~ pvecfg.pm
|
rm -rf *~ pvecfg.pm pvecfg.pm.tmp
|
||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: pvecfg.pm ${PERLSOURCE}
|
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…
Reference in New Issue
Block a user