diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2009-11-07 01:23:32 (GMT) |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2009-11-07 01:23:32 (GMT) |
commit | 48ec125cf19a441fce80ad9bf3687a4e52761345 (patch) | |
tree | 359cd61520c9f920378e7d87c3a792df20dc71fd /tools | |
parent | 9e686891791001155d535634572eb0753835e7fd (diff) | |
download | monitoring-plugins-48ec125cf19a441fce80ad9bf3687a4e52761345.tar.gz |
git-notify: Make using a state file optional
Making use of a state file in order to prevent duplicate notifications
is now optional. The user must explicitly specify a file path via the
"-t" option or by setting the git-config(1) variable "notify.statefile"
to activate this functionality.
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/git-notify | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/tools/git-notify b/tools/git-notify index 265f37b..c68ed09 100755 --- a/tools/git-notify +++ b/tools/git-notify | |||
@@ -20,7 +20,7 @@ | |||
20 | # -n max Set max number of individual mails to send | 20 | # -n max Set max number of individual mails to send |
21 | # -r name Set the git repository name | 21 | # -r name Set the git repository name |
22 | # -s bytes Set the maximum diff size in bytes (-1 for no limit) | 22 | # -s bytes Set the maximum diff size in bytes (-1 for no limit) |
23 | # -t file Set the file to use for reading and saving state | 23 | # -t file Prevent duplicate notifications by saving state to this file |
24 | # -U mask Set the umask for creating the state file | 24 | # -U mask Set the umask for creating the state file |
25 | # -u url Set the URL to the gitweb browser | 25 | # -u url Set the URL to the gitweb browser |
26 | # -i branch If at least one -i is given, report only for specified branches | 26 | # -i branch If at least one -i is given, report only for specified branches |
@@ -73,8 +73,8 @@ my @include_list = split /\s+/, git_config( "notify.include" ) || ""; | |||
73 | # branches to exclude | 73 | # branches to exclude |
74 | my @exclude_list = split /\s+/, git_config( "notify.exclude" ) || ""; | 74 | my @exclude_list = split /\s+/, git_config( "notify.exclude" ) || ""; |
75 | 75 | ||
76 | # the state file we use (can be changed with the -t option) | 76 | # the state file we use (can be set with the -t option) |
77 | my $state_file = git_config( "notify.statefile" ) || "/var/tmp/git-notify.state"; | 77 | my $state_file = git_config( "notify.statefile" ); |
78 | 78 | ||
79 | # umask for creating the state file (can be set with -U option) | 79 | # umask for creating the state file (can be set with -U option) |
80 | my $mode_mask = git_config( "notify.umask" ) || 002; | 80 | my $mode_mask = git_config( "notify.umask" ) || 002; |
@@ -90,7 +90,7 @@ sub usage() | |||
90 | print " -n max Set max number of individual mails to send\n"; | 90 | print " -n max Set max number of individual mails to send\n"; |
91 | print " -r name Set the git repository name\n"; | 91 | print " -r name Set the git repository name\n"; |
92 | print " -s bytes Set the maximum diff size in bytes (-1 for no limit)\n"; | 92 | print " -s bytes Set the maximum diff size in bytes (-1 for no limit)\n"; |
93 | print " -t file Set the file to use for reading and saving state\n"; | 93 | print " -t file Prevent duplicate notifications by saving state to this file\n"; |
94 | print " -U mask Set the umask for creating the state file\n"; | 94 | print " -U mask Set the umask for creating the state file\n"; |
95 | print " -u url Set the URL to the gitweb browser\n"; | 95 | print " -u url Set the URL to the gitweb browser\n"; |
96 | print " -i branch If at least one -i is given, report only for specified branches\n"; | 96 | print " -i branch If at least one -i is given, report only for specified branches\n"; |
@@ -144,7 +144,7 @@ sub save_commits($) | |||
144 | close STATE or die "Cannot close $state_file: $!"; | 144 | close STATE or die "Cannot close $state_file: $!"; |
145 | } | 145 | } |
146 | 146 | ||
147 | # for the given range, return the new hashes and append them to the state file | 147 | # for the given range, return the new hashes (and append them to the state file) |
148 | sub get_new_commits($$) | 148 | sub get_new_commits($$) |
149 | { | 149 | { |
150 | my ($old_sha1, $new_sha1) = @_; | 150 | my ($old_sha1, $new_sha1) = @_; |
@@ -156,9 +156,9 @@ sub get_new_commits($$) | |||
156 | 156 | ||
157 | my $revlist = git_rev_list(@args); | 157 | my $revlist = git_rev_list(@args); |
158 | 158 | ||
159 | if (not -e $state_file) # initialize the state file with all hashes | 159 | if (not defined $state_file or not -e $state_file) |
160 | { | 160 | { |
161 | save_commits(git_rev_list("--all", "--full-history")); | 161 | save_commits(git_rev_list("--all", "--full-history")) if defined $state_file; |
162 | return $revlist; | 162 | return $revlist; |
163 | } | 163 | } |
164 | 164 | ||