コードを見るとAPGL
になってた。タイポ。誤字。
ハマった
良さそうだと思ったが使ってみた所、以下のような難点があった。
- rust製
- cargo
- インストールに数分かかった
- cargo
AGPL
が使えなかったlicense-generator --author ytyaru AGPL
Not found match license: AGPL
AGPL
,agpl
,AGPL3
,AGPLv3
,AGPL-3.0
,agpl-3.0
,agpl-3.0.txt
- 原因: 誤字 ソースコード
- ヘルプ
- ライセンスキー一覧がない
USAGE
で--author
の説明が重複している
インストールに数分かかった
5分くらいかかったんじゃないか? とにかく長かった。そして導入するパッケージ数が多すぎる。rustの標準パッケージが貧弱すぎるせいだと思う。
$ cargo install license-generator Updating crates.io index Downloaded license-generator v0.5.0 Downloaded 1 crate (45.4 KB) in 2.16s Installing license-generator v0.5.0 Downloaded chrono v0.4.10 Downloaded structopt v0.2.18 Downloaded num-traits v0.2.11 Downloaded num-integer v0.1.42 Downloaded time v0.1.42 Downloaded clap v2.33.0 Downloaded structopt-derive v0.2.18 Downloaded autocfg v1.0.0 Downloaded libc v0.2.66 Downloaded bitflags v1.2.1 Downloaded strsim v0.8.0 Downloaded unicode-width v0.1.7 Downloaded textwrap v0.11.0 Downloaded atty v0.2.14 Downloaded ansi_term v0.11.0 Downloaded vec_map v0.8.1 Downloaded proc-macro2 v0.4.30 Downloaded quote v0.6.13 Downloaded heck v0.3.1 Downloaded syn v0.15.44 Downloaded unicode-xid v0.1.0 Downloaded unicode-segmentation v1.6.0 Compiling autocfg v1.0.0 Compiling libc v0.2.66 Compiling proc-macro2 v0.4.30 Compiling unicode-xid v0.1.0 Compiling bitflags v1.2.1 Compiling syn v0.15.44 Compiling unicode-width v0.1.7 Compiling unicode-segmentation v1.6.0 Compiling strsim v0.8.0 Compiling vec_map v0.8.1 Compiling ansi_term v0.11.0 Compiling textwrap v0.11.0 Compiling heck v0.3.1 Compiling num-traits v0.2.11 Compiling num-integer v0.1.42 Compiling quote v0.6.13 Compiling atty v0.2.14 Compiling time v0.1.42 Compiling clap v2.33.0 Compiling chrono v0.4.10 Compiling structopt-derive v0.2.18 Compiling structopt v0.2.18 Compiling license-generator v0.5.0 Finished release [optimized] target(s) in 3m 38s Installing /home/pi/.cargo/bin/license-generator Installed package `license-generator v0.5.0` (executable `license-generator`)
AGPL
が使えなかった
$ license-generator AGPL error: The following required arguments were not provided: --author <author> ...
$ license-generator --author ytyaru AGPL
Not found match license: AGPL
$ license-generator AGPL --author ytyaru
Not found match license: AGPL
2020/01/25時点ではREADMEのUsage
には以下のようにAGPL
が使えるかのように書いてあった。
$ license-generator --author <name> [LICENSE_TYPE] [LICENSE_TYPE]: - AGPL - Apache - CC-BY - CC-BY-NC - CC-BY-NC-SA - CC-BY-SA - CC0 - GPL - LGPL - MIT - MPL - Unlicense Options: --author input author name --project input project name that is required by some license --year input license year
ソースコードを見てみると誤字だった。
"apgl" => Some(Box::new(license::AGPL {})), "APGL" => Some(Box::new(license::AGPL {})),
AGPL
となるべきところがAPGL
になっている……。これ、教えたほうがいいと思うのだが、どうやるのかわからん。
これは最低限の正常系テストもしていないんだろうな……。
あと、このライセンスキー名一覧がコマンドで表示できないことが発覚した。詳細は以下。
ヘルプでライセンスキー一覧が出ない
なら何のキーが使えるの? ヘルプに出ないんですけど?
$ license-generator --help license-generator 0.5.0 azu <azuciao@gmail.com> A Command line tool that generate `LICENSE` file. USAGE: license-generator [OPTIONS] <INPUT> --author <author> FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: --author <author> --project <project> --year <year> ARGS: <INPUT>
おそらくARGS
の<INPUT>
がキーなのだろう。いや、そのキー一覧を表示してくれなきゃわからんわ。
まさか毎回README見ないとダメなの? それってヘルプとしての役割果たしてなくね?
ヘルプの
USAGE
にある--author
が重複している
$ license-generator --help USAGE: license-generator [OPTIONS] <INPUT> --author <author> FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: --author <author> --project <project> --year <year>
USAGE
に--author <author>
とあるが、これは[OPTIONS]
の一部であるという説明と矛盾する。どっちなの? OPTIONS
だと思われる。たぶん以下が正しいのでは? 知らんけど。
USAGE: license-generator [OPTIONS] <INPUT> --author <author>
所感
GitHubのプルリクエスト?とかいう奴をやってみるべきかもしれん。でもわからん。調べるの面倒。
他人のコードでハマるくらいなら自前で実装したい。まずは仕様を考えてみようか。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux