ハマログ

株式会社イーツー・インフォの社員ブログ

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 されます

downloadpdfredmineshellwiki

  桑原 光昭   2013年5月9日


関連記事

ガリガリ君神経衰弱つくりなおしました!

以前から公開していた、ガリガリ君公式アプリ「ガリガリ君 神経衰弱」をSwift2…

特定の文字列を検索したいときあるじゃん?

コマンド覚えてないんですよね。 ってことで、コマンドラインで作業する際に、「あ、…


← 前の投稿

次の投稿 →