diff --git a/textarchive/lib/TA/ObjReg.pm b/textarchive/lib/TA/ObjReg.pm index b7e0ef04ce910ebda07d2348f75c8c7ea4e2249a..06be7c5b5cf19e1da8c79e715718678af856c57e 100644 --- a/textarchive/lib/TA/ObjReg.pm +++ b/textarchive/lib/TA/ObjReg.pm @@ -60,13 +60,25 @@ sub new =cut +sub _get_project_paths +{ + my $proj_name= shift; + + my $proj_cfg_dir= join ('/', $ENV{'TABASE'}, 'projects', $proj_name); + my $proj_cfg_fnm= join ('/', $proj_cfg_dir, 'config.json'); + + return ($proj_cfg_dir, $proj_cfg_fnm); +} + sub get_project { my $obj= shift; my $proj_name= $obj->{'project'}; - $obj->{'proj_cfg_dir'}= my $proj_cfg_dir= join ('/', $ENV{'TABASE'}, 'projects', $proj_name); - $obj->{'proj_cfg_fnm'}= my $proj_cfg_fnm= join ('/', $proj_cfg_dir, 'config.json'); + my ($proj_cfg_dir, $proj_cfg_fnm)= _get_project_paths ($proj_name); + + $obj->{'proj_cfg_dir'}= $proj_cfg_dir; + $obj->{'proj_cfg_fnm'}= $proj_cfg_fnm; my $proj_cfg; unless ($proj_cfg= TA::Util::slurp_file ($proj_cfg_fnm, 'json')) @@ -822,7 +834,7 @@ sub ta_match my $all_reg= shift; my $search= shift; - my @k= keys $search; + my @k= keys %$search; my @e= @{$all_reg->{'entries'}}; REG: for (my $i= 0; $i <= $#e; $i++) { @@ -848,7 +860,7 @@ sub ta_filter my $all_reg= shift; my $search= shift; - my @k= keys $search; + my @k= keys %$search; my @e= @{$all_reg->{'entries'}}; my @m= (); my @n= (); diff --git a/textarchive/vlib001.pl b/textarchive/vlib001.pl index 29c66642da78ac7c641e4243c3a44d84f4ab4e45..62f9b2c862244e04b1d98b0fe212d0507dbed79b 100755 --- a/textarchive/vlib001.pl +++ b/textarchive/vlib001.pl @@ -86,6 +86,14 @@ unless (defined ($project)) } # &usage ('no store specified') unless (defined ($store)); +if ($op_mode eq 'edit') +{ + my ($proj_cfg_dir, $proj_cfg_fnm)= TA::ObjReg::_get_project_paths($project); + system ("\$EDITOR '$proj_cfg_fnm'"); + # print "store_cfg: ", Dumper ($store_cfg); + exit; +} + my $objreg= new TA::ObjReg ('project' => $project, 'store' => $store, 'key' => 'md5'); &usage ('no config found') unless (defined ($objreg)); print "objreg: ", Dumper ($objreg) if ($DEBUG || $STOP); @@ -112,13 +120,6 @@ elsif ($op_mode eq 'verify') { $objreg->verify_toc (\&verify_toc_item, \@hdr); } -elsif ($op_mode eq 'edit') -{ - print "objreg: ", Dumper ($objreg); - my $proj_cfg_fnm= $objreg->{'proj_cfg_fnm'}; - system ("\$EDITOR '$proj_cfg_fnm'"); - # print "store_cfg: ", Dumper ($store_cfg); -} elsif ($op_mode eq 'lookup') { foreach my $key (@PAR) @@ -405,3 +406,11 @@ __END__ file metadata in one place and let other hashes point to that place. +=head1 BUGS + +option --edit fails when when config is broken: + $ vlib001.pl -p ph001 --edit + debug level: 0 , or } expected while parsing object/hash, at character + offset 74 (before ""backend": "MongoDB"...") at /home/gg/perl/TA/Util.pm + line 38. +