Skip to content

Commit edd2244

Browse files
authored
Merge pull request #6 from kotet/update
Update
2 parents fb7aa31 + 1b0cf44 commit edd2244

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

content/_index.md

+11-8
Original file line numberDiff line numberDiff line change
@@ -275,12 +275,12 @@ _参考文献: [The Anti-Mac User Interface (Don Gentner and Jakob Nielsen)](htt
275275
* Julia: [ArgParse.jl](https://github.com/carlobaldassi/ArgParse.jl), [Comonicon.jl](https://github.com/comonicon/Comonicon.jl)
276276
* Kotlin: [clikt](https://ajalt.github.io/clikt/)
277277
* Node: [oclif](https://oclif.io/)
278-
* Deno: [flags](https://deno.land/std/flags)
278+
* Deno: [parseArgs](https://jsr.io/@std/cli/doc/parse-args/~/parseArgs)
279279
* Perl: [Getopt::Long](https://metacpan.org/pod/Getopt::Long)
280280
* PHP: [console](https://github.com/symfony/console), [CLImate](https://climate.thephpleague.com)
281281
* Python: [Argparse](https://docs.python.org/3/library/argparse.html), [Click](https://click.palletsprojects.com/), [Typer](https://github.com/tiangolo/typer)
282282
* Ruby: [TTY](https://ttytoolkit.org/)
283-
* Rust: [clap](https://clap.rs/)
283+
* Rust: [clap](https://docs.rs/clap)
284284
* Swift: [swift-argument-parser](https://github.com/apple/swift-argument-parser)
285285

286286
**成功時は終了コードゼロ、失敗時には非ゼロを返してください。**
@@ -300,8 +300,10 @@ _参考文献: [The Anti-Mac User Interface (Don Gentner and Jakob Nielsen)](htt
300300
**なにもオプションを指定しなかった時、`-h``--help`フラグが指定された時にはヘルプテキストを表示してください。**
301301

302302
**デフォルトでは簡潔なヘルプテキストを出力するようにしてください。**
303-
可能なら、`myapp``myapp subcommand`が実行された時はデフォルトでヘルプテキストを表示するようにしてください。
304-
プログラムが非常にシンプルで明らかなデフォルトの動作があるとき (例: `ls`) や、プログラムが入力をインタラクティブに受け取る時 (例: `cat`) はその限りではありません。
303+
`myapp``myapp subcommand`が引数なしで実行された時は、ヘルプテキストを表示してください。
304+
305+
プログラムが非常にシンプルで明らかなデフォルトの動作があるとき (例: `ls``git pull`) や、
306+
デフォルトでインタラクティブに動作するとき (例: `npm init`) はこのガイドラインを無視しても構いません。
305307

306308
簡潔なヘルプテキストは以下のもののみを含むべきです。
307309

@@ -544,7 +546,7 @@ _TTYが何かについては[参考文献を読んでください。](https://un
544546
たとえば、`grep`に出力を流して期待する出力を得ることがあります。
545547

546548
> “すべてのプログラムの出力は、未知のものも含めた他のプログラムの入力となることを期待する。”
547-
[Doug McIlroy](https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch01s06.html)
549+
[Doug McIlroy](http://web.archive.org/web/20220609080931/https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch01s06.html)
548550

549551
**人間可読な出力が機械可読な出力を壊す場合、`--plain`で出力を平易な、`grep``awk`のようなツールと統合できる表形式のテキストフォーマットにするようにしてください。**
550552
場合によっては、人間にとって読みやすいのとは異なる方法で出力を行う必要があるかもしれません。
@@ -640,7 +642,7 @@ drwxr-xr-x 2 root root 4.0K Jul 20 14:57 skel
640642

641643
- `stdout``stderr`がインタラクティブなターミナル (TTY) ではない。
642644
この2つは個別にチェックするのが最良です。`stdout`を他のプログラムにパイプ接続しているときでも、`stderr`に色がついていると便利です。
643-
- `NO_COLOR`環境変数が設定されている
645+
- `NO_COLOR`環境変数が設定されており、空でない(値は問いません)
644646
- `TERM`環境変数の値が`dumb`である。
645647
- ユーザが`--no-color`オプションを渡した。
646648
- 特にあなたのプログラムだけ色を無効化したいという場合は`MYAPP_NO_COLOR`環境変数を追加したくなるかもしれません。
@@ -688,7 +690,7 @@ verboseモードでない時にログレベルのラベル (`ERR`、`WARN`等)
688690
**大量のテキストを出力する時はページャ (例: `less`) を使ってください。**
689691
たとえば、`git diff`はデフォルトでこれを行います。
690692
ページャの使用は問題を起こしやすいので、ユーザの体験を損なわないように実装には気をつけてください。
691-
`stdin``stdout`がインタラクティブなターミナルでないならページャを使うべきではありません
693+
`stdin``stdout`がインタラクティブなターミナルである場合のみページャを使うようにしてください
692694

693695
`less`に対する優れたオプション指定は`less -FIRX`です。
694696
これによってコンテンツがスクリーンに収まる場合は動作せず、検索の際に大文字・小文字を無視し、色と書式を有効化し、`less`が終了した時に画面にコンテンツを残すようになります。
@@ -848,12 +850,13 @@ unknown flag: --foo
848850
**シークレットをフラグから直接読まないでください。**
849851
`--password`のような形でコマンドがシークレットを受け取るとき、引数の値は`ps`の出力や場合によりシェルの履歴等から漏洩します。
850852
さらに、この手のフラグはシークレットに対するセキュアでない環境変数の使用を招きます。
853+
(環境変数は他のユーザに読まれたり、値がデバッグログに残ったりすることがよくあるため、セキュアではありません。)
851854

852855
`--password-file`のようにセンシティブなデータをファイルからのみ受け取るか、`stdin`から受け取ることを検討してください。
853856
`--password-file`フラグは、様々なコンテキストにおいてシークレットをこっそりと渡すことを可能にします。
854857

855858
(Bashでは`--password $(< password.txt)`のようにファイルの内容を渡すことが可能です。
856-
このアプローチは`ps`の出力によってファイルの中身が漏洩する同じようなセキュリティリスクがあります
859+
このアプローチには環境変数と同様のセキュリティリスクがあります
857860
避けるべきです。)
858861

859862
### インタラクティブ性 {#interactivity}

0 commit comments

Comments
 (0)