本文へ移動
TURNKEYGNU / LINUX
アプリドキュメントブログスクリーンショットGitHubTurnKey Hub
文日本語
EnglishEspañol中文日本語PortuguêsDeutsch
ふりがな/Confconsole - プラグインシステム(devs 用)

ドキュメント

Confconsole - プラグインシステム(devs 用)

プラグインの方法でConfConsoleメニューオプションを簡単に追加できます。

プラグインは、ConfConsole ディレクトリーの中に置かれる Python ソースファイルです。ConfConsole は、該当するファイルを読み込み、メニューオプションとしてユーザーに提供します。

プラグインの読み込み方法は?

まずツリーは "plugins.d" から生成されます。すべてのディレクトリはメニューまたはサブメニューで、すべての実行可能 .py スクリプトは、親ディレクトリのメニューのエントリです。 plugins.d メニューから選択されていないので説明はありません。

ツリー内の各プラグインでは、プラグインの本体(トップレベル)が実行されます。 そのため、関連するコードをここに設定するのではなく、設定しないでください。 {where?} と、他のプラグインは既に設定されていないはずです。 プラグインに利用できる追加変数と関数は、この時点で NOT 可能です。

プラグインの .py file(s) docstring は、メニューの記述を confconsole で提供します。 ディレクトリにメニューエントリの説明を設定するには、ディレクトリ内のテキスト「説明」ファイルを置きます。

続いて、 doOnce プラグインが読み込まれると、関数(オプション)が一度実行されます。すべてのプラグインが読み込まれる一方で、すべてのプラグインはこの時点で準備が整えられるわけではありません。 しかし、もしそうなら、一緒に仕事をする能力があります。 {what?how?}

最後は run プラグインのメニューエントリが confconsole 内でクリックされると、関数が実行されます。もし、プラグインのメニューエントリが confconsole 内でクリックされると、関数が実行されます。 run プラグインに関数は存在しません。メニューエントリは作成されません。

ユーザとどのようにやり取りしますか?

とりあえず console 変数はインスタンスのインスタンスです。 Console confconsole.py のオブジェクト。 pythondialog-wrapper を使って、基本的なコンソール gui 機能を可能にするシンプルなインターフェイスです。 つまり、他のすべてのグローバルと同様に、すぐに利用できる doOnce 関数は実行されます。confconsole が完全に起動するまでのやりとりを NEVER が強制的に行なうべきだと注意してください。 これにより、ヘッドレスビルドの課題が生じる可能性がある。例えば、到達できる可能性がある usage (confconsoleの第一画面) どのインタラクションも前の。

次のメソッドは、 console:

  • infobox(テキスト)

    画面にテキストを表示し、瞬時にブロックするボックスをブロックしたい場合は、NOTブロックです。 time.sleep(seconds) その後。 それ以外の場合は、通常、長時間の操作中に情報を表示するために使用されます。

    0 を返します。

    事例: console.infobox("some text")

  • yno(テキスト)

    画面上のテキストを、y/no プロンプトで表示します。 0 を返します。 はい、1 なら no。

    事例: console.yesno("Are you sure?")

  • msgbox(title, text, button_label="ok") の形式

    デフォルトでは、画面上のテキストを ok プロンプトで表示します。 ok はボタンラベルで何かに変更できます。 0 を返します

    事例: console.msgbox("Warning", "You may need to restart for changes to take effect")

  • コマンドの呼び出し(title, text, init=), ok_label="OK", Cancel_label="Cancel")

    画面にテキストを入力ボックスで表示(値で表示) init)および、およびによって変更することができるok/cancelのプロンプト ok_label と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と cancel_label 引数。

    キャンセルの場合、ok または 1 のタプルを返します。

    事例: console.inputbox("Email", "Please enter you're email address", "user@example.com")

  • タイトル、テキスト、選択、no_cancel=False

    タイトルボックスの画面にテキストを表示し、選択可能なオプション(選択)のリストとオプションでキャンセルボタン。

    選択は、各タプルの各項目の長2のリストまたはタプルの文字列でなければなりません。 文字列の最初のコレクションは項目名で、第二は項目の説明です。

    キャンセルした場合、オプション(OK または 1 の場合のタプルを返します)

    以下::
    console.menu("Favorite number" は、"数値を振る")
    [

    [ '1', "1" のダミー説明 ], [ '2', "2" のダミーの説明 ], [ '3', "3" のダミー説明 ]

    ]

    )

  • フォーム(タイトル、テキスト、フィールド、ok_label="Apply", Cancel_label="Cancel")

    ラベル付き入力ボックスと、適用/cancel プロンプトの一連のとともに、タイトルボックスの画面にテキストを表示(button ラベルはラベル引数を介して変更できます)

    フィールドはコレクションでなければなりません

    (label, item, field_length, input_length)

    どこまでも label 入力ボックスの前に表示する文字列で、 item フィールドの入力で書かれているデフォルトのテキストです。

    field_length と input_length はそれぞれフィールドを表示するために使用される文字数と、可能な文字数の最大数を指定する整数です。 このフィールドに入力します。これらの値もフィールドの有意性を判断します。

    フィールドが 0 の場合、変更できず、内容がサイズを決定します。

    フィールドがネガティブな場合、フィールドが変更されず、フィールドの反対側がその値が決定します。 {huh?}

    入力長さが0の場合、フィールド_length に設定されます

    戻り値は、ステータスが(ok または 1 の場合)、(status, field) のタプルです。フィールドは、各フィールドに順番に入力した値です。

コンソールは、基本的にはラッパーだけです。 python dialog. すべてのメソッドが露出されていないと、メソッドが露出しているすべての引数がすべてではないが、 python ダイアログのドキュメントは largly がまだ適用されます。

寸法: http://pythondialog.sourceforge.net/doc/

他のプラグインとどのようにやり取りしますか?

インタープラグイン通信にはいくつかのオプションがあります。まず、 imp* プラグインのインポートを処理する関数。 プラグインと通常のプラグインではこれを使用することが重要です。 import とおり imp* 関数は、追加で設定されたグローバルバージョンを返します。 通常の import 通常の python ファイルとして読み込みます。

以下に示すように、インプ関数は

  • 名称: 名
    正確には、指定した名前の一致するすべてのプラグインのリストを返します。
  • サインイン
    指定したディレクトリ名内のすべてのプラグインのリストを返します(これは、プラグインのサブディレクトリです。d)
  • ペントパス
    プラグインを1つ返し、プラグインの相対パスをプラグインから正確に一致させます。d

これらのインプット機能に加えて、クロスプラグイン通信にも使用できるすべてのプラグイン間で共有イベントManagerがあります。 変数としてこのイベント管理者が公開される eventManager

イベントマネージャーは簡単です。イベントは、任意のハッシュ可能なオブジェクトであることができますが、通常、文字列などの明らかな何かを使用する方がより理にかなっている。 同様に、イベントハンドラは任意のコール可能なオブジェクトですが、通常は関数です。

イベントマネージャーから3つの機能が公開されています

  • add_event(name) の
    イベントマネージャーが保有するイベントのリストにイベントを追加し、イベントを消火する便利な機能を返します。 利便性機能が正確には必要ではなく、その機能が要求されることに注意してください。
  • add_handler(名前、ハンドラ)
    腐食イベントのハンドラを追加します。イベントが存在しない場合、静かに作成されます。この関数は None を返します。
  • fire_event(名前)
    与えられたイベントに登録された注文で、各ハンドラを呼び出します。

その他の情報

最小限の有効なプラグインの例では、プラグインの.d/example.py をチェックして、アクションで確認します。 chmod +x plugins.d/example.py confconsole を実行します。

他の機能の例については、提供されているプラグインのソースコードをご覧ください。

TURNKEYGNU / LINUX

ゼロから始めずに、自分のインフラを管理できます。

TurnKey を見る
概要ドキュメントよくある質問ブログGitHub
フリーでオープンソース初期設定から安全すぐに展開可能