From: Akihiro MOTOKI Date: Sat, 4 May 2013 11:16:59 +0000 (+0900) Subject: (split) LDP: (Makefile) Make draft/release/stats per-po file processing X-Git-Tag: LDP-3.51-final~7 X-Git-Url: http://git.osdn.net/view?p=linuxjm%2FLDP_man-pages.git;a=commitdiff_plain;h=2e068d5037c786aacb929864302e65912251cf24 (split) LDP: (Makefile) Make draft/release/stats per-po file processing --- diff --git a/Makefile b/Makefile index d6d77807..39be62f8 100644 --- a/Makefile +++ b/Makefile @@ -5,22 +5,22 @@ THRESH_REL = 80 FLAGS ?= PO4AFLAGS ?= -k $(THRESH) $(FLAGS) +PO4A_SUBDIRS = $(notdir $(wildcard po4a/*)) + all: translate -translate: jm-setup - LC_ALL=C $(MAKE) translate \ - PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) - @# I don't know why untrans.txt is generated in release target - $(RM) untrans.txt +translate: $(patsubst %, translate-%, $(PO4A_SUBDIRS)) translate-%: jm-setup - LC_ALL=C $(MAKE) translate-$* \ + LC_ALL=C $(MAKE) process-$* \ PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) -release: jm-setup +release: $(patsubst %, release-%, $(PO4A_SUBDIRS)) + +release-%: jm-setup rm -f $(PERKAMON_DIR)/build/ja ln -s ../../release $(PERKAMON_DIR)/build/ja - LC_ALL=C $(MAKE) translate \ + LC_ALL=C $(MAKE) process-$* \ PO4AFLAGS="-k $(THRESH_REL) $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) $(RM) $(PERKAMON_DIR)/build/ja ln -s ../../draft $(PERKAMON_DIR)/build/ja @@ -30,23 +30,29 @@ release: jm-setup git status release | grep deleted | awk '{print $$3;}' | xargs -n1 echo; \ git status release | grep deleted | awk '{print $$3;}' | xargs -n1 git checkout; \ fi - @# I don't know why untrans.txt is generated in release target - $(RM) untrans.txt -update-stats: jm-setup - mkdir _transtmp +update-stats: untrans.html + +untrans.html: $(patsubst %, stats/%, $(PO4A_SUBDIRS)) + ./tools/generate-list.pl $^ > $@ + +stats/%: stamp-jm-setup po4a/%/po/ja.po + @echo "*************** $* ***************" + mkdir -p stats + mkdir -p _transtmp $(RM) $(PERKAMON_DIR)/build/ja ln -s ../../_transtmp $(PERKAMON_DIR)/build/ja - LC_ALL=C $(MAKE) translate \ + LC_ALL=C $(MAKE) process-$* \ PO4AFLAGS="-k 100 $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \ | tee _log.txt - ./untrans-list.pl < _log.txt > untrans.html + ./tools/extract-untrans.pl < _log.txt > $@ $(RM) $(PERKAMON_DIR)/build/ja ln -s ../../draft $(PERKAMON_DIR)/build/ja $(RM) -r _transtmp $(RM) _log.txt - @# I don't know why untrans.txt is generated in release target - $(RM) untrans.txt + +clean-stats: + $(RM) -r stats release-tl: set -e; if git status release | grep modified >/dev/null; then \ @@ -71,11 +77,11 @@ format-%: cd $$cur; \ done -stats: jm-setup +postats: jm-setup @LC_ALL=C $(MAKE) stats \ PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) -untrans-stats: jm-setup +untrans-postats: jm-setup @LC_ALL=C $(MAKE) stats \ PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \ 2>&1 | grep -vE ' translated messages\.$$' @@ -116,8 +122,8 @@ help: @echo " release Generate release from po files" @echo "" @echo " update-stats Update per-page trans stats" - @echo " stats Display per-po trans stats" - @echo " untrans-stats Display per-po trans stats (untrans only)" + @echo " postats Display per-po trans stats" + @echo " untrans-postats Display per-po trans stats (untrans only)" @echo "" @echo " jm-setup Setup perkamon environment" @echo " clean-setup Clean perkamon environment" diff --git a/tools/extract-untrans.pl b/tools/extract-untrans.pl new file mode 100755 index 00000000..fa0224dc --- /dev/null +++ b/tools/extract-untrans.pl @@ -0,0 +1,31 @@ +#!/usr/bin/env perl + +use File::Basename qw/basename/; + +$print_format = 1; + +while (<>) { + if (/^po4a/) { + @dat = split; + $cfg = $dat[$#dat]; + @dat = split('/', $cfg); + $poname = $dat[2]; + $poname =~ s/\.cfg$//; + $poname_print = 1; + } + next if ! /^Discard /; + s/\(//; + s/\)//; + @dat = split(' '); + $page = basename($dat[1]); + $comp = $dat[2]; + $all = $dat[4]; + $remaining = $all - $comp; + $ratio = $comp / $all * 100; + + if ($print_format) { + print "# pagename,#complete,#remaining,#all\n"; + $print_format = 0; + } + print "$page,$comp,$remaining,$all\n"; +} diff --git a/untrans-list.pl b/tools/generate-list.pl similarity index 63% rename from untrans-list.pl rename to tools/generate-list.pl index 6ae2a217..1c3c8187 100755 --- a/untrans-list.pl +++ b/tools/generate-list.pl @@ -1,5 +1,10 @@ #!/usr/bin/env perl +use File::Basename qw/basename/; + +$debug = 0; +$page_count = 0; + sub print_header { print < @@ -21,6 +26,7 @@ EOF sub print_footer { print <Total $page_count pages EOF @@ -46,33 +52,29 @@ sub print_manpage { print "\n"; } -$poname = ""; -$poname_print = 1; - -print_header(); +sub process_postat { + my $postat = shift; + my $poname = basename($postat); + my $poname_print = 1; -while (<>) { - if (/^po4a/) { - @dat = split; - $cfg = $dat[$#dat]; - @dat = split('/', $cfg); - $poname = $dat[2]; - $poname =~ s/\.cfg$//; - $poname_print = 1; + open(POSTAT, $postat); + while () { + next if /^#/; + # format: pagename, #complete, #remaining, #total + my ($page, $comp, $remaining, $total) = split(','); + $ratio = $comp / $total * 100; + if ($poname_print) { + print_poname($poname); + $poname_print = 0; + } + print_manpage($page, $total, $remaining, $ratio); + $page_count++; } - next if ! /^Discard /; - s/\(//; - s/\)//; - @dat = split(' '); - $page = $dat[1]; - $comp = $dat[2]; - $all = $dat[4]; - $ratio = $comp/$all*100; - if ($poname_print) { - print_poname($poname); - $poname_print = 0; - } - print_manpage($page, $all, $all - $comp, $ratio); } +print_header(); +foreach my $name (@ARGV) { + print STDERR "$name...\n" if $debug; + process_postat($name); +} print_footer();