redmine wiki の pdf を shell で download する
背景
あるプロジェクトで仕様をredmine wikiに書きました
そのwikiページはpdfでdownloadできます
しかしその数が50ページを超えています
それをいちいちマウスでリンクをクリックしdownloadするのは手間ですね
そこで shell でまとめてdownloadできないか試しました
環境
Mac OS X の shell で行いました
Macではcurlしか入ってないようなのでcurlで行います
wgetは入っていませんでした
課題
e2info の redmine にアクセスするには
– クライアント証明が必要です
– おれおれ証明書を認める必要があります
– redmine にログインする必要があります
クライアント証明
クライアント証明書のファイルpkcs12 を
PEMファイルに分割します
具体的には your.p12 を xca.pem, xclient.pem, xkey.pem にします
次のページを参考に行いました
unable to set private key file ?
http://curl.haxx.se/mail/archive-2005-09/0138.html
$ openssl pkcs12 -in /path/to/your.p12 -out xca.pem -cacerts -nokeys Enter Import Password: ← your.p12のパスワード MAC verified OK $ openssl pkcs12 -in /path/to/your.p12 -out xclient.pem -clcerts -nokeys Enter Import Password: ← your.p12のパスワード MAC verified OK $ openssl pkcs12 -in /path/to/your.p12 -out xkey.pem -nocerts Enter Import Password: ← your.p12のパスワード MAC verified OK Enter PEM pass phrase: ← 新パスワード xxxx を入力 Verifying - Enter PEM pass phrase: ← 再入力
ログインしセッション情報をcookieに保存
$ curl -c xcookie.txt \ -d "username=your-redmine-usr" \ -d "password=your-redmine-pwd" \ --key xkey.pem --cacert ca.pem --cert xclient.pem:xxxx \ --insecure \ https://redmine.e2info.com/login
そのcookieを使って pdf を download
$ curl -b xcookie.txt --key xkey.pem --cacert ca.pem --cert \ xclient.pem:xxxx --insecure \ https://redmine.e2info.com/projects/your-project-name/wiki/the-spec-wiki-page.pdf > the-spec-wiki-page.pdf
うまくいくと the-spec-wiki-page.pdf が download されます