diff options
| author | Stig Thormodsrud <stig@vyatta.com> | 2010-11-02 17:39:29 -0700 |
|---|---|---|
| committer | Stig Thormodsrud <stig@vyatta.com> | 2010-11-02 17:39:29 -0700 |
| commit | 8d874b22fd50dc3cfcd971c3d85804ffccb18789 (patch) | |
| tree | 18caae2b79952cf56845578f8f9fc37a68447387 /lib | |
| parent | 0d5c217313f8ac47944bd50d800c2bd44b4a833b (diff) | |
| download | vyatta-config-mgmt-8d874b22fd50dc3cfcd971c3d85804ffccb18789.tar.gz vyatta-config-mgmt-8d874b22fd50dc3cfcd971c3d85804ffccb18789.zip | |
Add revision compare functionality
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Vyatta/ConfigMgmt.pm | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/Vyatta/ConfigMgmt.pm b/lib/Vyatta/ConfigMgmt.pm index 7c2ab91..6a49af3 100644 --- a/lib/Vyatta/ConfigMgmt.pm +++ b/lib/Vyatta/ConfigMgmt.pm @@ -29,7 +29,8 @@ use warnings; our @EXPORT = qw(cm_commit_add_log cm_commit_get_log cm_get_archive_dir cm_get_lr_conf_file cm_get_lr_state_file cm_get_commit_hook_dir cm_write_file cm_read_file - cm_commit_get_file); + cm_commit_get_file cm_commit_get_file_name + cm_get_num_revs); use base qw(Exporter); use Vyatta::Config; @@ -92,6 +93,14 @@ sub cm_get_max_revs { return $revs; } +sub cm_get_num_revs { + + my @lines = cm_read_file($commit_log_file); + my $num_revs = scalar(@lines); + $num_revs-- if $num_revs > 0; # rev files start at 0 + return $num_revs; +} + sub cm_commit_add_log { my ($user, $via, $comment) = @_; @@ -118,7 +127,7 @@ sub cm_commit_get_log { my @lines = cm_read_file($commit_log_file); my @commit_log = (); - my $count = 1; + my $count = 0; foreach my $line (@lines) { if ($line !~ /^\|(.*)\|$/) { print "Invalid log format [$line]\n"; @@ -139,6 +148,13 @@ sub cm_commit_get_log { return @commit_log; } +sub cm_commit_get_file_name { + my ($revnum) = @_; + + my $filename = $archive_dir . "/config.boot." . $revnum . ".gz"; + return $filename; +} + sub cm_commit_get_file { my ($revnum) = @_; @@ -148,7 +164,7 @@ sub cm_commit_get_file { exit 1; } - my $filename = $archive_dir . "/config.boot." . $revnum . ".gz"; + my $filename = cm_commit_get_file_name($revnum); die "File [$filename] not found." if ! -e $filename; my $fh = new IO::Zlib; |
