README.md in capistrano-deploylock-0.0.1 vs README.md in capistrano-deploylock-0.0.2

- old
+ new

@@ -1,9 +1,11 @@ # Capistrano::Deploylock -TODO: Write a gem description +[![Gem Version](https://badge.fury.io/rb/capistrano-deploylock.svg)](http://badge.fury.io/rb/capistrano-deploylock) +デプロイした環境を一日だけロックする + ## Installation Add this line to your application's Gemfile: ```ruby @@ -26,9 +28,51 @@ ~~~ before "deploy:lock:start", "deploy:lock:check" before "deploy", "deploy:lock:start" ~~~ + +## なぜ作ったのか +1. デプロイしていいか聞きまわるの面倒くさい とはいえ一人ずつサーバ作って管理するというのも面倒 +1. デプロイしていいかその環境自体に聞けばイイジャンという発想 +1. 要はlockファイルさえなければあらゆる環境に自由にデプロイしたい. lockファイル作っとかないほうが悪い状態が効率が良い + +## 機能仕様 +1. `` cap deploy`` 後、 自分以外のユーザが24hデプロイできないようになる +1. `` cap deploy:lock:end`` で取り消し可能 + +## 詳細仕様 +1. `` cap deploy`` 時にdeploy_lock.ymlファイルをshared/systemに作成(`` cap deploy:lock:start`` フック) +1. `` cap deploy:lock:start `` 時にdeploy_lock.ymlファイルがshared/systemにないか確認(`` cap deploy:lock:start`` フック) +1. lockファイルが存在する場合 + * 自分が作ったやつなら無視して、`` expired_at`` を今から24h後に更新 + * 他人が作ったやつで`` expired_at > Time.now `` ならロック + +* deploy_lock.ymlにはデプロイしたuser名と, 現在時間の24時間後が、expired_at時間として入る + + +## cmd + + +* ロック開始 + +~~~ + % bundle exec cap $STAGE deploy:lock:start +~~~ + +* ロック終了 + +~~~ + % bundle exec cap $STAGE deploy:lock:end +~~~ + +* ロック確認 + +~~~ + % bundle exec cap $STAGE deploy:lock:check +~~~ + + ## Contributing 1. Fork it ( https://github.com/[my-github-username]/capistrano-deploylock/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`)