Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome or Safari browser. Firefox 10 (to be released soon) will also handle it.

carton in amon2-livedoor-setup.pl

Yappo

基本

ちょいちょい新規アプリを作る事が多いので Amon2 を使った雛形アプリを簡単に作れるスクリプト書いてた。 社内の仕様に特化した設定や、社内ライブラリ、デプロイツールなどが一発で入る君。

作り始めだから、特定の種類のアプリケーションに特化させてた。

使ってる環境

carton 0.9.10 cpanm 1.6000

古い carton 使ってる人と仕事するとき

in Makefile.PL

my $file = Module::CPANfile->load("cpanfile");
$file->merge_meta('MYMETA.json');
$file->merge_meta('MYMETA.yml');

before

carton 今いちわからないし、使ってる人 ikasama さんくらいしか居ないしで単純な対応してた。

setup script 叩いたら

export PERLBREW_ROOT=/home/user/[% appname %]
export PERLBREW_HOME=/home/user/[% appname %]
perlbrew install perl-5.16.2

して perl 作って、プロダクトのリポジトリに丸ごといれてね!ってやってた。

良い所

悪い所

思い直した

言われた

セットアップツールで使う bundle 作り

悲しさを乗り越える

セットアップツールで bundle 使う

セットアップツールの処理の最後らへんに

!system "mkdir local" or die $?;
!system "ln -s $FindBin::Bin/dependent-libs local/cache" or die $?;
!system "perl -e 'print qq{\n} while (1)' | carton install --cached" or die $?;
!system "rm local/cache" or die $?;

とかすると、セットアップツールの中の bundle 達からインストールしてくれる。

感想

ダウンロード速度よりもなんかインストール自体に時間かかってね?

開発環境での carton

簡単です!

以上!

CI での carton

.proverc

"--exec=carton exec -Ilib -I. -- perl -Mlib::core::only"
-Pretty
--color
-v

prove plugin

prove plugin で使ってるモジュールは carton 配下のみに入れてると起動失敗するので、 global のとこに cpanm App::Prove::Plugin::Pretty とか入れてる。

デプロイする時の carton

rsync

あとは普通に

rsync -a --delete --exclude=META.yml --exclude=MYMETA.json --exclude=MYMETA.yml --exclude=carton.lock --exclude=.carton /foo/bar/deploy_base/projname tohost:/dokka/no/dir

とかして配布する

その他のスクリプト起動

基本的に carton は使わないで

#!/bin/sh
export PLACK_ENV=production
export PERL5LIB=$PROJECT_ROOT/local/lib/perl5:$PROJECT_ROOT/lib
export PERL5OPT="-Mlib::core::only -Mlib=$PROJECT_ROOT/lib -Mlib=$PROJECT_ROOT/local/lib/perl5"
PROJECT_ROOT=$(cd `dirname $0`/.. && pwd -P)
exec "$@"

みたいな環境変数をセットしてくれるラッパースクリプトかましてる。

まとめ

とくにない

以上です

Use a spacebar or arrow keys to navigate