From 42a73c90312a448a62c82525e656efa059402b6a Mon Sep 17 00:00:00 2001 From: Mercier Pierre-Olivier Date: Fri, 20 Sep 2013 02:50:12 +0200 Subject: [PATCH] Long tag for defense --- hooks/subjects.pl | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/hooks/subjects.pl b/hooks/subjects.pl index 3e81370..ef18267 100755 --- a/hooks/subjects.pl +++ b/hooks/subjects.pl @@ -87,13 +87,7 @@ sub tag_defense my $version = $_[2] // 1; my $project_id = repository_name(); - if ($_[3]) - { - # Check on ID/flavour_id - if ($_[3] =~ /^\d+$/) { - log ERROR, "defense:* tag can't take version. Tag format: defense:version:id:year"; - } - + if ($_[3]) { $project_id .= "-" . $_[3]; } $project_id = lc $project_id; @@ -144,6 +138,13 @@ sub tag_defense $year = LDAP::get_year; } + # Determine full tag + my $long_tag; + { + my $proj_id = $_[3] // ""; + $long_tag = "defense,$version,$proj_id,$path,$year"; + } + if ($creation) { my $newref = $ARGV[2]; @@ -175,6 +176,29 @@ sub tag_defense } } + if ($long_tag) + { + qx(git tag -f $long_tag); + if (! $?) { + log INFO, "Tag long créé : $long_tag."; + } + } + } + else + { + # Is the long tag existing + qx(git tag | egrep "^$long_tag\$"); + if ($?) { + log ERROR, "Tag long correspondant introuvable : $long_tag."; + } + + if ($long_tag) + { + qx(git tag -d $long_tag); + if (! $?) { + log INFO, "Tag long supprimé : $long_tag."; + } + } } }