プロジェクトニュース

lil-terminal の重要な更新をまとめています。新しい作業フロー、互換性の変更、共有ホスティングでの作業を速くする機能が中心です。

公開

lil-terminal から直接データベースを操作

SSH なしで MySQL/MariaDB、PostgreSQL、Redis、SQLite、MongoDB に接続できます。各エンジンは専用ドライバーを保ち、db は現在のセッションで選んだドライバーへの短い入口になります。

mysqlpostgresqlredissqlitemongodb はデータモデルが異なるため独立したままです。共通化するのは、接続、確認、検索、エクスポート、書き込み、ダンプ、復元など意味のある操作だけです。

認証情報は非表示のパスワード入力から渡され、操作は指定したデータベースアカウントの権限で実行されます。本番環境では権限を絞ったアカウントとバックアップが安全です。

外部サーバーなしで試すには dbsqlite をインストールし、/sandbox/ のサンプル店舗データベースを使えます。

install db sqlite
db sqlite | db -c \sandbox\db\shop.sqlite | db -t | db -n products 5
install mysql postgresql redis mongodb
公開

パスを繰り返さずに現在のファイルを操作

$ は最後に開いた、作成した、または書き込んだファイルを指します。ファイル名だけを入力した場合も、拡張子に合うインストール済みツールで開けます。

たとえば mf scratch.json の後は、code $json $del $ で同じファイルを続けて操作できます。形式専用モジュールは汎用エディターより優先され、ファイル名を入力しただけでモジュールが自動インストールされることはありません。

inijsonxmlymltomlconfproperties は構造化ファイルを直接扱い、img は一般的な画像の確認、サイズ変更、変換を行います。必要なツールだけをインストールできます。

これらの短縮操作は Core の機能です。古い環境で認識されない場合は lil.php を現在の Core に置き換えてください。upgrade はモジュールを更新しますが Core ファイルは置き換えません。

mf scratch.json
code $
app.yml
json $ -f "pass" -k
json $ -w user.password : "Ed1g!fs:13od"
img \sandbox\images\photo.jpg
公開

入力前に現在のディレクトリを確認

コマンド欄が空のとき、現在の作業ディレクトリを控えめなヒントとして表示します。パスワード欄にも値を隠したままローカライズされたヒントを表示します。

ディレクトリ表示はターミナルのセッションに追従します。cd やコマンド列で作業ディレクトリが変わると、次の空のコマンド欄に新しいパスがすぐ表示されます。これは 入力案内 にすぎず、コマンドや履歴には入りません。

cd \sandbox
pwd
公開

@command:実行し、不足していればインストール

対話コマンドの先頭に @ を付けると、必要なモジュールがなければ lil-terminal が標準リポジトリからインストールし、そのまま元のコマンドを実行します。

コマンドがすでに使える場合はリポジトリへアクセスせず、すぐ実行されます。未導入のコマンドには通常の公開 Base パッケージを使い、@read@download などの エイリアス は所有モジュールへ解決されます。

@command は対話操作専用です。.lil スクリプトでは依存関係を明示したままにし、自動処理の予測可能性を保ちます。

@mf notes.txt
@curl https://example.com -I
@read README.md
公開

> でコマンド結果をファイルへ保存

Core の 1 つの演算子で、結果を画面に残したまま同じテキストをファイルへ書き込めます。

dns google.com > save.log は標準で結果を save.log に追記します。-a は追記を明示し、-r はファイルを置き換えます。表やその他の構造化出力は、書き込み前に読みやすいテキストへ変換されます。

history -o で直前のテキスト結果を再表示できます。デスクトップでは Cmd/Ctrl+Shistory.log に追記し、Cmd/Ctrl+Shift+S で同じコマンド機構を使ってファイルを置き換えます。

dns google.com > save.log
dns gmail.com > save.log
dns gmail.com > save.log -r
history -o > history.log -r
公開

インターフェース機能を任意パッケージとして管理

ホットキーやコードエディターなどのブラウザー機能を個別に導入・削除でき、Core と Minimum パッケージを小さく保てます。

includelilhotkeyscode など名前付きインターフェースパッケージを管理します。Base モジュールは必要なブラウザー資産を要求でき、Minimum モジュールは任意の UI コードを含みません。

各パッケージは個別に確認、更新、削除できます。任意のインターフェース機能を Core に常駐させる必要がなくなります。

include -lil -v 1.0 -s
include -hotkeys -v 1.0 -s
help hotkeys -off
include -code -v 1.0 -i
include -code -v 1.0 -u