プロジェクト

全般

プロフィール

提案 #1419

完了

環境固有のプラグインロードパスを追加する方法

Izumi Tsutsui さんがほぼ5年前に追加. 2年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:

説明

てオフでの会話でチケット入れてほしいとのことだったのでとりあえずパッチなしですが提案でチケット入れます。

やりたいこと

mikutter で plugin をロードする際に探索するディレクトリを追加できるようにしたい。

背景

pkgsrc を含むパッケージシステムとして
twitter plugin を始めとする「mikutter プラグインのパッケージ」
というものが欲しい、というモチベが出てくると思われる。
Twitter は入れるプログインが多いので。

実装案

  • コマンドラインオプションで追加の探索ディレクトリを追加する
  • source'core/boot/load_plugin.rb をパッチして Plugin.loadpath に追加する
  • config.rb かなんかをどうにかする

進め方

としぁさんがなんとかしてくれるに違いない

その他

Twitter 関連プラグインにリリースタグがつくとやりやすいです(とついでにメモ)

toshi_a 初音 さんがほぼ5年前に更新

とりあえず、config.rbに雑に追加できるようにはしてみましょう。

toshi_a 初音 さんがほぼ5年前に更新

  • ステータス分類待ち から 実装待ち に変更

toshi_a 初音 さんがほぼ5年前に更新

  • ステータス実装待ち から レビュー待ち に変更
  • 担当者Izumi Tsutsui にセット
  • ブランチtopic/1419-plugin-loadpath にセット

config.rbに雑に足せるようにしてみたよ

Izumi Tsutsui さんが4年以上前に更新

  • ステータスレビュー待ち から マージ待ち に変更

レビュー依頼をめっちゃ忘れてたんですが、いまさらながら 4.1.0ーalpha2 で確認してOKでした。

本体のプラグインとローカルで追加するプラグインはディレクトリをわけないと
複数の環境で使いまわすのが面倒なのに、 pkgsrc は OSC東京駆動のせいで
このチケットのこと忘れてて本体プラグインと同じところに突っ込んでしまったので
4.1 でどうするか考えます。

toshi_a 初音 さんが約4年前に更新

  • ステータスマージ待ち から 終了 に変更

merged

Izumi Tsutsui さんが約4年前に更新

鶏頭で #note-4 でどういうテストをしたのか忘却の彼方になってしまったのですが
環境変数 PLUGIN_PATH に追加したいロードパスの文字列を追加すればいいんでしたっけ……。
(いまさらながら 4.1.0 で追試したら追加したロードパスのプラグインが読まれていないっぽい)

toshi_a 初音 さんが約4年前に更新

ソースコードを直接修正して、以下に書き足します。

https://dev.mikutter.hachune.net/projects/mikutter/repository/main/revisions/master/entry/core/config.rb#L37

たしか、パッケージを配布するときにこういうことをしたいということだったので、この仕様になったんでしたっけ(よく憶えていない)

Izumi Tsutsui さんが約4年前に更新

toshi_a 初音 さんは #note-7 で書きました:

ソースコードを直接修正して、以下に書き足します。

https://dev.mikutter.hachune.net/projects/mikutter/repository/main/revisions/master/entry/core/config.rb#L37

たしか、パッケージを配布するときにこういうことをしたいということだったので、この仕様になったんでしたっけ(よく憶えていない)

経緯としては、パッケージシステムでプラグインを入れるときに本体とは別の場所に入れたいのですが、という話だったと思います。
実装としては、 config.rb をいじる、という案を聞いたのみで、具体的にどういう設定をするかまでは話をしなかったような。

pkgsrc としてお試しで
  • 本体はもともと /usr/pkg/share/mikutter 以下に入りデフォルトのプラグインは /usr/pkg/share/mikutter/plugin 以下にある
  • config.rb をパッチして以下を追加する
    File.expand_path(File.join(__dir__, '..', 'plugin-pkgsrc')),
  • pkgsrc の mikutter twitter plugin パッケージとして Twitter プラグイン一式を /usr/pkg/share/mikutter/plugin-plugin 以下に入れる

としてみたところ、以下のエラーになりました。なんか間違えているでしょうか。

ログ表示

Izumi Tsutsui さんがほぼ3年前に更新

Izumi Tsutsui さんは #note-8 で書きました:

としてみたところ、以下のエラーになりました。なんか間違えているでしょうか。

         1: from /usr/pkg/share/mikutter/plugin/mastodon/mastodon.rb:42:in `block in <top (required)>'
/usr/pkg/lib/ruby/gems/2.6.0/gems/pluggaloid-1.5.0/lib/pluggaloid/plugin.rb:321:in `method_missing': undefined method `defactivity' for #<Plugin:0xb403221c> (NoMethodError)
Did you mean?  activity

ふと思い出してので、超いまさらながら調べたところ、単に
mastodon プラグインで defactivity を参照してるのに source:plugin/mastodon/.mikutter.yml@146abc89activity プラグインを指定していない
という潜在問題がロード順によってはたまたま発現しなかったのが PLUGIN_PATH を分けたら表に出てきたということっぽいです。

チケット入れます。

Izumi Tsutsui さんが2年以上前に更新

チケット入れます。

いまさらながら参照を書くの忘れてるのに気づきましたが #1557 で修正済みです。

他の形式にエクスポート: Atom PDF