From 18 Jan, 2021 0:00 UTC: All services will be temporary unavailable for maintenance
  • R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-ccocoa誰得qtrubypythonwindowsphpgamebathyscaphegui翻訳comegattwitterframeworkbtronvb.net計画中(planning stage)testdomarduinodirectxpreviewerゲームエンジン

Commit MetaInfo

Revision7c011b85a2db1c4f4cef3e3eefd9840a2b1b0488 (tree)
Time2020-10-24 23:01:15
Authormatsuand <30614168+matsuand@user...>
Commitermatsuand

Log Message

第3引数(ターゲットファイル)の追加.

Change Summary

Incremental Difference

--- a/progit2ja_diff/progit2ja_diff.perl
+++ b/progit2ja_diff/progit2ja_diff.perl
@@ -1,27 +1,52 @@
11 #!/usr/bin/perl
22
33 ### progit2ja_diff.perl
4+###
5+### 利用方法
6+### ./progit2ja_diff.perl <origdir> <jadir>
7+###
8+### <origdir>: progit2 オリジナルのソーストップディレクトリ名
9+### <jadir>: progit/progit2-ja のソーストップディレクトリ名
10+### <target>: (任意)処理対象とするascファイルのベース名。
11+### この指定がない場合は全ファイルを対象とする。
12+###
413 ### progit/progit2-ja のソース内にコメントとして示された原文部分を
5-### progit オリジナルソースと比較して、diff を取り標準出力します。
6-### 実行は ./progit2ja_diff <origdir> <jadir> とします。
7-### ここで origdir は progit2 オリジナルのソーストップディレクトリ名、
8-### jadir は progit/progit2-ja のソーストップディレクトリ名です。
9-### ディレクトリ末尾のスラッシュは取り除いて指定します。
14+### progit オリジナル全ソースと比較して、diff を取り標準出力します。
1015 ###
1116 ### 処理方法はざっと以下です。<origdir> 配下の *.asc ファイルを順に
1217 ### 処理します。そのベース名に応じた <jadir> 配下の *.asc ファイル
1318 ### (日本語版) を取得して、その英語原文コメント部分のみを抽出して、
1419 ### /tmp ディレクトリ内に *.asc.tmp というファイル名で一時保存します。
15-### その *.asc.tmp とオリジナルソース配下の *.asc との間で diff を
20+### オリジナルソース配下の *.asc とその *.asc.tmp の間で diff を
1621 ### 取ります。結果は標準出力します。/tmp 配下に生成する *.asc.tmp は
17-### 削除しません。処理が正しく行われているかどうかは、この一時ファイル
18-### を見て確認いる状態です。
22+### 削除しません。処理が正しく行われているかどうかを、この一時ファイル
23+### を見て確認することができます。
24+###
25+### 処理にあたって日本語ソース *.asc での原文コメントの記述方法は、
26+### 以下であることを大前提としています。この方法に合わないファイルは
27+### 正しく処理されません。特に(日本語訳文)の終了は(改行)をもって判断
28+### しているため、これに合わない記述(いくらか存在します)は適切に処理
29+### されません。
30+### //////////////////////////
31+### (英語原文)
32+### //////////////////////////
33+### (日本語訳文)
34+### (改行)
35+### ...
1936 ###
2037 ### <origdir> 配下にあって <jasrc> 配下にないソースファイルに対しては
2138 ### diff 取得が不能であるため、標準出力に Warning: file not found:
2239 ### *.asc のメッセージを出します。ベース名が異なるだけでも diff 処理
2340 ### は不能であり、このメッセージとなります。
2441 ###
42+### 具体的な処理例
43+###
44+### cd ~/foo/bar
45+### git clone https://github.com/progit/progit2.git
46+### git clone https://github.com/progit/progit2-ja.git
47+### perl progit2ja_diff.perl progit2 progit2-ja > diff.txt
48+### perl progit2ja_diff.perl progit2 progit2-ja aliases.asc
49+###
2550 ### 随所でのエラー処理は、ほぼまったく考慮していません。
2651 ### 無保証。ライセンスは progit2 ソース同様、
2752 ### Creative Commons Attribution-NonCommercial-ShareAlike 3.0 とします。
@@ -30,20 +55,28 @@ use strict;
3055 use File::Basename;
3156 use File::Path;
3257
33-my $orig_dir = shift; # top directory for the original progit2 sources
34-my $ja_dir = shift; # top directory for the progit2-ja sources
58+my $orig_dir = shift; # top directory for original progit2 sources
59+my $ja_dir = shift; # top directory for progit2-ja sources
60+my $target = shift; # optional: basename of target file to be processed
3561 my $fh_tempfile;
3662 my $lines = "";
3763 my $first_flag;
3864
65+$orig_dir =~ s#/$##;
66+$ja_dir =~ s#/$##;
67+
3968 &proc_all_files($orig_dir, $ja_dir);
4069
4170 sub proc_all_files {
42- my @origfiles = `find $_[0] -name "*.asc" | sort`;
71+ my @origfiles = `find $_[0]/ -name "*.asc" | sort`;
4372 chomp @origfiles;
4473 foreach my $origfile (@origfiles) {
45- my $japath = $origfile;
46- $japath =~ s/$_[0]/$_[1]/;
74+ if ($target ne "" ) {
75+ if ($target ne basename $origfile) {
76+ next;
77+ }
78+ }
79+ my $japath = $origfile; $japath =~ s/$_[0]/$_[1]/;
4780 &output_ja_tempfile($japath);
4881 }
4982 }