commit ecd8ede0168e19cdd076be1d3dc29b538db36ab5 from: Izzy Blacklock date: Tue Sep 26 01:42:01 2023 UTC code cleanup. Added repo_log() and repo_status() and more output commit - adb27c97ca6881b235c352fdf9b9c723cf979564 commit + ecd8ede0168e19cdd076be1d3dc29b538db36ab5 blob - fb082187e33ef3726cfa060c46263e39c2672aea blob + 6a06fb052ae8c67b865bdd47cb4b1102e20aefbc --- bin/configNow.pl +++ bin/configNow.pl @@ -28,12 +28,14 @@ my $shellConfig = new IRCNOW::ConfigNow( %config ); if ($shellConfig->repo_ready()) { $shellConfig->write_config(); $shellConfig->repo_commit(); +} else { + print "Your ConfigNow git repo is not ready. Please review and commit the pending changes.\n" + . $shellConfig->repo_status() + . "\n"; } -# get a list of commits - one line per commit with id -#$r->run(qw(git log --oneline)); +print "\n" . $shellConfig->repo_log(); # Get list of files changed in a diff #$r->run(qw(git diff 0cd562e --name-only)); - blob - 6124eb6253aa013fd2c751461cfa9120cb95fb17 blob + ea451bb8329d73a762eacfaad39176dfe7b55f1d --- lib/IRCNOW/ConfigNow/Module.pm +++ lib/IRCNOW/ConfigNow/Module.pm @@ -65,22 +65,17 @@ sub new { # -sub list { - my $self = shift; - my $type = shift; - my @list; - for my $file (keys(%{$self->{files}})) { - if (defined $type and exists $self->{files}->{type}) { - next unless ($self->{files}->{$file}->{type} eq $type); - } - push @list, $file; - } - return @list; -} - -#sub files { +#sub list { # my $self = shift; -# return keys %{$self->{files}}; +# my $type = shift; +# my @list; +# for my $file (keys(%{$self->{files}})) { +# if (defined $type and exists $self->{files}->{type}) { +# next unless ($self->{files}->{$file}->{type} eq $type); +# } +# push @list, $file; +# } +# return @list; #} sub filenames { @@ -106,17 +101,10 @@ sub output { my $type = shift; my @params; - # # Specified file doesn't exist in this module - # return unless ( - # exists $self->{files}->{$file} and - # # Shouldn't have $file without {$file}->{template} - # #XXX should track down where it's being defined into existance - # exists $self->{files}->{$file}->{template} - # ); my $mod = $self->{lists}->{filenames}->{$filename}; # If we have a type value then limit output to type specified. # Default to outputting all if not defined. - #warn "Module::output() Filename: $filename \$type=$type - \$mod->{type} = ".$mod->{type}; +#warn "Module::output() Filename: $filename \$type=$type - \$mod->{type} = ".$mod->{type}; if (not defined $type or ($type eq $mod->{type})) { for my $param ( @{$mod->{varlist}}) { # Don't have needed param so return undef blob - c3976502956c91a82a41b22ea25efc9f8d448282 blob + 8313c0351fb7e61e41288518e9203c12969db67b --- lib/IRCNOW/ConfigNow.pm +++ lib/IRCNOW/ConfigNow.pm @@ -52,34 +52,6 @@ sub filenames { return keys %{$self->{lists}->{filenames}}; } -sub list { - my $self = shift; - my $module = shift; - my $type = shift; - my @list; - - if (defined $module and exists $self->{modules}->{$module}) { - @list = $self->{modules}->{$module}->list($type); - } else { - @list = keys %{$self->{modules}}; - } - return @list; -} - -#sub output { -# my $self = shift; -# my $filename = shift || die "!!!!!!!!!!! undef for filename:"; -# my $output = ""; -# # call each modules output() -# for my $filename -# for my $mod (keys %{$self->{modules}}) { -# next unless exists $self->{modules}->{$mod}->{$file}; -# $output .= $self->{modules}->{$mod}->output($file) || ""; -# } -# return $output; -#} - - sub mod_load { my $self=shift; my $modName=shift; @@ -147,8 +119,6 @@ sub delete_file { $filename = "$workDir/$filename"; print "Deleting $filename\n"; unlink $filename; - # unlink $filename; - #unlink $self->{modules}->{$module}->filename($file); } sub write_config { @@ -183,19 +153,6 @@ sub write_config { return 1; } - -# or my $module ($self->list()) { -# #create the $type root entries. entries. -# for my $file ($self->list($module,$type)) { -#warn "write_config() \$type: $type, \$module: $module, \$file: $file\n"; -# $self->write_file($file); -# } -#warn "User Loop"; -# #Create entries for users where needed -# } -# return 1; -#} - sub repo_ready { my $self=shift; my $r = $self->{repo}; @@ -217,6 +174,35 @@ sub repo_ready { return 1; } +sub repo_status { + my $self=shift; + my $r = $self->{repo}; + my $workDir = $self->{vars}->{gitWorkDir}; + # Check status of untracked files. + my $update=0; # Flag for changes to commit + my @output = $r->run(qw(status -su)); + my $ret = ""; + for my $line (@output) { + $ret .= "$line\n"; + } + return $ret; +} + +sub repo_log { + my $self=shift; + my $r = $self->{repo}; + my $workDir = $self->{vars}->{gitWorkDir}; + # Check status of untracked files. + my $update=0; # Flag for changes to commit + #my @output = $r->run(qw(log --oneline)); + my @output = $r->run(qw(log)); + my $ret = ""; + for my $line (@output) { + $ret .= "$line\n"; + } + return $ret; +} + sub repo_connect { my $self = shift; my $config=$self->{vars}; @@ -234,7 +220,7 @@ sub repo_connect { return $self->{repo}; } -sub repo_commit() { +sub repo_commit { my $self=shift; my $r = $self->{repo}; my $workDir = $self->{vars}->{gitWorkDir}; @@ -242,12 +228,15 @@ sub repo_commit() { my $update=0; # Flag for changes to commit my @output = $r->run(qw(status -su)); for my $file (@output) { - # XXX need to verify the file is managed - # XXX what should happen with unmanaged files if ($file =~ /^\?\?\s+(.*)/) { - $r->run('add', $1); - print "$workDir/$1\n"; - $update = 1; + # if file is managed, add it to repo + if (exists $self->{lists}->{filenames}->{$1}) { + print "... adding $1\n"; + $r->run('add', $1); + $update = 1; + } else { + print "... ignoring $1\n"; + } } elsif ($file =~ /^\s+M\s+/) { $update = 1; }