run

run は変数、条件、結果の取得、入れ子スクリプト、予行実行、パック済みファイルを含む .lil ワークフローを、対話型端末と同じコマンド実行経路で処理します。OS のコマンドシェルは呼び出しません。

自動化バージョン 1.2.4安定版
lil-terminal

概要

繰り返す保守作業は .lil ファイルに保存し、run で順番に実行します。まず -n で確認してください。

自動化は lil-terminal の中に留まる

各文は通常の lil-terminal コマンドとして解決されます。依存関係は事前に導入し、ワークフロー内では @command を使いません。-n は展開後のコマンドを実行せずに表示し、php や ses など権限の強い非対話型コマンドには -x が必要です。

構文

lil-terminal
run <file.lil|[script]> [-n|-v|-k|-x] · run -p <source.lil> [target.lil]

リファレンス

run task.lil

通常またはパック済みの .lil スクリプトを実行する

run [md backup | copy public backup/public]

インラインスクリプトを実行する。引用符なしの | で文を区切る

run <script> -n

実行せずに検証し、展開されたコマンドを表示する

run <script> -v

コマンドの完全な出力を表示する

run <script> -k

失敗後も続行する。既定では最初の失敗で停止する

run <script> -x

php や ses などの特権付き非対話コマンドを許可する

run -p <source.lil> [target.lil]

チェックサムで保護されたパック済みスクリプトを作成する

lil <script>

run のエイリアス

plain .lil

1 行に 1 文を記述する UTF-8 テキスト

packed .lil

SHA-256 と DEFLATE データを持つ @LIL1 ヘッダー

setup.lil

認証後に一度実行し、成功後に削除する

autoload.lil

認証済みセッションごとに一度実行する

@<command>

自動インストールは対話操作専用であり、スクリプト内では拒否される

#lil file

通常の端末コマンドだけで構成する core 線形スクリプト。パスまたは < で起動する

run workflow

変数、条件、入れ子、capture などのフロー制御が必要な場合は run を使う

実際の使い方

同じ保守作業を繰り返すなら、コマンドを .lil テキストファイルに保存し、run で順番に実行できます。OS のシェルではなく lil-terminal のコマンドを使います。

まず run sandbox/scripts/workflow.lil -n で、何も実行せずに内容を確認します。問題なければ -n を外してください。短い作業なら run [pwd | pwd] と書き、| でコマンドを区切れます。

ファイルは 1 行 1 命令です。set は値を保存し、capture は出力を取り込み、if/else は条件分岐を選び、run は子スクリプトを呼びます。例の if file ${source} はファイルの存在を確認します。

-v は各コマンドの出力を表示します。通常は最初の失敗で停止します。-k では後続も実行しますが、失敗があれば最終状態は Stopped のままです。プレビューが成功しても、本番実行の成功は保証されません。

先頭が #lil のファイルは Base Core が単純な連続コマンドとして直接処理できます。変数や条件、ネストが必要なら run を使います。Minimum は単一のファイル引数を想定しています。run [pwd] のように空白のない短い形式が動く場合もありますが、複数コマンドのインラインスクリプトや高度なオプションには Base が必要です。

lil.php と同じ場所の setup.lil は認証後に実行され、すべて成功した場合だけ削除されます。autoload.lil は認証済みセッションごとに 1 回動きます。-p は SHA-256 と DEFLATE で @LIL1 にまとめますが、**暗号化しません**。

スクリプトは PHP プロセスの権限で実行されます。対話操作と @install は禁止で、php/ses には -x が必要です。上限はテキスト 256 KiB、パック形式 384 KiB、1000 命令、ネスト 10 階層、60 秒です。実行済みのファイル変更は自動で取り消されません。

詳細

通常テキストは 256 KiB、パック入力は 384 KiB、スクリプトは 1000 文、10 階層、60 秒までです。SHA-256 と DEFLATE は整合性を守りますが暗号化ではありません。

セキュリティ

スクリプトは現在の PHP プロセス権限で動作します。対話コマンドは禁止され、php と ses には明示的な -x が必要です。未確認のスクリプトを実行しないでください。

自動インストール

@command の省略記法は対話コアの機能であり、自動化言語の機能ではありません。.lil スクリプト内で @ から始まるコマンドは拒否されます。実行中に利用可能なモジュール集合が暗黙に変化しないよう、スクリプトの依存関係は自動化を始める前に明示的にインストールしてください。

Core 線形スクリプトと Run

#lil で始まるファイルは、Run workflow より意図的に単純です。コメント以外の各行は通常の端末コマンドで、トップレベルの | は左から右へ実行され、最初の失敗で停止します。ファイルはパスを直接入力するか < file.lil で起動します。変数、条件、入れ子スクリプト、capture、dry-run などの workflow 機能が必要な場合は run を使用します。

入れ子の .lil を含むワークフロー全体でコメント以外の命令は最大 1000 件です。-n で検証が失敗した場合、Checked ではなく Stopped を表示し、コマンドは実行しません。

インタラクティブな sandbox プレビュー

用意された例をページ上でそのまま実行できます。結果は事前に生成されてブラウザに表示され、サーバーではターミナルコマンドを実行しません。

通常またはパック済みの .lil スクリプトを実行する

インストールと管理

現在の互換バージョンをインストールします。全機能は Base、縮小版は Minimum を選び、すでに導入済みのモジュール更新には upgrade を使います。

Base と Minimum は同じ現在のモジュールリリースの二つのパッケージです。

Base パッケージ

ローカル参照と公開済みの全モードを含む完全パッケージをインストールします。

install run
Minimum パッケージ

縮小パッケージをインストールします。ローカルリファレンスは含まれず、help <cmd> -i で現在のサーバーリファレンスを開きます。

install run -m
正確な公開版

この公開済みバージョンを正確に指定してインストールします。

install run -v 1.2.4
確認または更新

upgrade が互換性を確認し、必要な場合だけブロックを置換します。

upgrade run
モジュールを削除

コアや他のモジュールに触れず拡張ブロックを削除します。

install run -u

例

例はコピーできますが、サイトは実行しません。実プロジェクトではパス、権限、破壊的オプションを確認してください。

通常またはパック済みの .lil スクリプトを実行する
run sandbox/scripts/workflow.lil
001 + pwd
002 + pwd
Completed: 2
コマンドの完全な出力を表示する
run sandbox/scripts/workflow.lil -v
001 + pwd
    sandbox
002 + pwd
    sandbox
Completed: 2
実行せずに検証し、展開されたコマンドを表示する
run sandbox/scripts/workflow.lil -n
001 · pwd
002 · pwd
Checked: 2
実行せずに検証し、展開されたコマンドを表示する
run sandbox/scripts/workflow.lil -n -v
001 · pwd
002 · pwd
Checked: 2
Run のエイリアス
lil sandbox/scripts/workflow.lil
001 + pwd
002 + pwd
Completed: 2

lil は run の短い別名です。保存した .lil ワークフローも貼り付けた自動化も、同じコマンド実行経路を使います。

インラインスクリプトを実行する。引用符なしの | で文を区切る
run [pwd | pwd]
001 + pwd
002 + pwd
Completed: 2
Run · name
run [set name demo | if eq demo demo | pwd | else | stop mismatch | end]
001 + pwd
Completed: 1
Run · file
run [if file sandbox/data/sample.txt | pwd | end]
001 + pwd
Completed: 1
Run · not
run [if not exists sandbox/missing.txt | pwd | end]
001 + pwd
Completed: 1
Run · location
run [capture location pwd | pwd] -v
001 + pwd
    sandbox
002 + pwd
    sandbox
Completed: 2
変数、条件、入れ子、capture などのフロー制御が必要な場合は run を使う
run sandbox/scripts/nested.lil -v
001 + pwd
    sandbox
002 + pwd
    sandbox
Completed: 2
通常またはパック済みの .lil スクリプトを実行する
run [upload | pwd]
001 – upload
    Command is not allowed in scripts
Stopped: 1
失敗後も続行する。既定では最初の失敗で停止する
run [upload | pwd] -k
001 – upload
    Command is not allowed in scripts
002 + pwd
Stopped: 2
Run · 14
run [stop maintenance]
Line 001 – maintenance
Stopped: 0
Php や ses などの特権付き非対話コマンドを許可する
run [pwd | php -v]
001 + pwd
002 – php -v
    Command is not allowed in scripts
Stopped: 2
Php や ses などの特権付き非対話コマンドを許可する
run [pwd | php -v] -x -v
001 + pwd
    sandbox
002 + php -v
    PHP 8.4.24
Completed: 2
Php や ses などの特権付き非対話コマンドを許可する
run sandbox/scripts/privileged.lil
001 – php -v
    Command is not allowed in scripts
Stopped: 1
Php や ses などの特権付き非対話コマンドを許可する
run sandbox/scripts/privileged.lil -x -v
001 + php -v
    PHP 8.4.24
Completed: 1
実行せずに検証し、展開されたコマンドを表示する
run sandbox/scripts/invalid.lil -n
001 · pwd
Line 003 – Missing end
Stopped: 1
変数、条件、入れ子、capture などのフロー制御が必要な場合は run を使う
run sandbox/scripts/recursive.lil
Recursive script detected
Stopped: 0
通常またはパック済みの .lil スクリプトを実行する
run sandbox/scripts/blocked.lil
001 – @install find
    Automatic installation is not allowed in scripts
Stopped: 1
失敗後も続行する。既定では最初の失敗で停止する
run sandbox/scripts/recover.lil -k
001 – upload
    Command is not allowed in scripts
002 + pwd
Stopped: 2
チェックサムで保護されたパック済みスクリプトを作成する
run -p sandbox/scripts/workflow.lil sandbox/scripts/workflow.export.lil
Packed workflow.lil > sandbox/scripts/workflow.export.lil
182 B > 256 B
通常またはパック済みの .lil スクリプトを実行する
run sandbox/scripts/workflow.packed.lil
001 + pwd
002 + pwd
Completed: 2
実行せずに検証し、展開されたコマンドを表示する
run sandbox/scripts/workflow.packed.lil -n
001 · pwd
002 · pwd
Checked: 2
通常またはパック済みの .lil スクリプトを実行する
run [@install find]
001 – @install find
    Automatic installation is not allowed in scripts
Stopped: 1
通常またはパック済みの .lil スクリプトを実行する
run [upload]
001 – upload
    Command is not allowed in scripts
Stopped: 1
通常またはパック済みの .lil スクリプトを実行する
run sandbox/scripts/missing.lil
Script file not found
通常またはパック済みの .lil スクリプトを実行する
run sandbox/data/sample.txt
Script must use the .lil extension
通常またはパック済みの .lil スクリプトを実行する
run sandbox/scripts/workflow.lil -z
Unknown run option: -z
インラインスクリプトを実行する。引用符なしの | で文を区切る
run [pwd
Inline script is missing ]
通常またはパック済みの .lil スクリプトを実行する
run
?

この例で使うファイル: sandbox/scripts/demo.lil

例では、保護されたドキュメント用 /sandbox/ ワークスペースのファイルまたはディレクトリを使います。

# lil-sandbox workflow
pwd
dir 1 sandbox
echo sandbox/data/sample.txt

関連ドキュメント

現在の公開版

v1.2.42026-11-01

プロダクション向け調整

run の現在の安定版。run は変数、条件、結果の取得、入れ子スクリプト、予行実行、パック済みファイルを含む `.