Project

General

Profile

Actions

提案 #1419

closed

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

Added by Izumi Tsutsui almost 5 years ago. Updated about 2 years ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
プラグイン名:

Description

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

やりたいこと

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

背景

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

実装案

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

進め方

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

その他

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

Actions #1

Updated by toshi_a 初音 almost 5 years ago

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

Actions #2

Updated by toshi_a 初音 almost 5 years ago

  • Status changed from 分類待ち to 実装待ち
Actions #3

Updated by toshi_a 初音 almost 5 years ago

  • Status changed from 実装待ち to レビュー待ち
  • Assignee set to Izumi Tsutsui
  • ブランチ set to topic/1419-plugin-loadpath

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

Actions #4

Updated by Izumi Tsutsui about 4 years ago

  • Status changed from レビュー待ち to マージ待ち

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

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

Actions #5

Updated by toshi_a 初音 about 4 years ago

  • Status changed from マージ待ち to 終了

merged

Actions #6

Updated by Izumi Tsutsui about 4 years ago

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

Actions #7

Updated by toshi_a 初音 about 4 years ago

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

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

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

Actions #8

Updated by Izumi Tsutsui about 4 years ago

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 以下に入れる

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

ログ表示

Actions #9

Updated by Izumi Tsutsui almost 3 years ago

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 を分けたら表に出てきたということっぽいです。

チケット入れます。

Actions #10

Updated by Izumi Tsutsui about 2 years ago

チケット入れます。

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

Actions

Also available in: Atom PDF