configatron とか rails とか

むむ。中身を精査しはじめておるのですが、例えば app/models/repository.rb から見てみたり。例えば以下な記述があります。

  after_create :save_config, :add_to_git#, :initialize_repository
  after_update :update_config, :add_to_git
  after_destroy :remove_from_config, :remove_from_git

それぞれ、private なメソドとして定義されております。
save_config メソドが以下な定義。

  def save_config 
    logger.info("Adding new repository #{self.name} to config")
    config = GitosisConfig.new
    config.lock do
      config.parse
      config.add_section(self.name)
      config.add_param_to_section(self.name, 'writable', self.name)
      config.save
    end
  end

GitosisConfig の抽象化具合が素晴しい。gitosis.conf の初期状態が以下なカンジ。

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = hoge@fuga

ええと、GitosisConfig#parse で既存のナニを読み込むのか。ただ、上記実装だと members なナニが追加されんがのう、と思っていたらそのあたりは

  has_many :public_keys, :through => :permissions
  has_many :permissions, :dependent => :destroy

な permissions で云々してるのか。でもこのあたりの処理って controller に記述が無いなぁ。上記の記述によれば Permission なレコードは自動生成なのかな。昔購入した参考書に has_many :through についての解説があるけど 1.x の頃のアレだからなぁ。
とりあえず M-x find-grep してみた限りでは追加とか削除な記述は無いので、とは言え member に追加、とかどこかで明示的にヤッてるはずなんだけどどこだろ。

動作確認してみた

結果として直前エントリな不具合が出たのですが初期状態に戻してリトライしてみます。ちなみに post-update に実行権限が云々という情報があったのですが、

lrwxrwxrwx 1 gitosis gitosis   61 2011-10-26 08:55 post-update -> /usr/share/pyshared/gitosis/templates/admin/hooks/post-update

とのことで実体は以下な形でした。

-rwxr-xr-x 1 root root 69 2010-06-09 02:20 post-update

直前エントリで書いたのですが、ssh 経由したリポジトリへのアクセスが read access denied な状態なのですが何が悪いのか分からん。
Ubuntu には gitolite なパケジもあるのでこっち使おうかな。

結局

Gitolite-Manager というソレを発見しましたので、こちらにスイッチな方向です。疲労困憊。これから別件で API な資料とにらめっこ予定らしいorz
Rails いろいろ弄れると思ったんですが駄目ですか。

今日は

色々な意味で不毛な一日だったのでこれから何点かメシのおかずの作り置きを製造するます。