標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

Lua

コマンドラインフィルターを使って nyagos の文法を手直しする

以前もコマンドラインフィルターについて次のような文書を書いたことがあるのですが、説明がほとんどなかったので、改めて解説文書を書いてみました。 Lisp を nyagos のコマンドラインに埋め込む Lua アドオン - 標準愚痴出力 Lisp を nyagos のコマンドラ…

Lisp を nyagos のコマンドラインから直接実行する Lua アドオン

前回、nyagos のコマンドラインに echo $(+ 1 2 (* 3 4)) といった形で、Lisp コードを埋め込めるようにしたわけだが、電卓用途に使う時 echo $ を打つのさえ面倒くさくなった。 コマンドラインが ( で始まっている場合は 全ての行を gmnlisp で評価するよう…

Rustでゴミ箱コマンドを作ったり

nyagos には、ファイルをゴミ箱へ移動させる trash というコマンドがあります。 実装は Lua で、こんな感じで COM オブジェクトで実現してました。 nyagos.d/trash.lua : if not nyagos then print("This is a script for nyagos not lua.exe") os.exit() en…

Goで使えるLua実装(雑にしか見てないです)

yuin/gopher-lua: GopherLua: VM and compiler for Lua in Go Lua 5.1 ☆3600 production used:現行、もっとも使われている処理系。 ほぼフルセット 。ガベコレを Go に頼ってる都合、__gc がサポートされていないので、メモリ以外のリソース管理がつらい(C…

Lua で名前付き関数パラメータ

lua

Luaでは「関数のパラメータがテーブルコンストラクター1個の時、関数コールの丸括弧を省略できる」という書式があります。 これはつまり function f(a) for key,val in pairs(a) do print(key.."="..val) end end f( { param1="12345" , param2="abcdef" } …

素の Lua で setenv

lua

環境変数を参照する場合は os.getenv が使えるが、設定するための os.setenv 相当のものはない。 が、os.execute で自分自身を呼び出せば、無理やり設定することも可能だ(ただし、起動時のみ) --- LANG=C を設定したい時: if os.getenv("LANG") ~= "C" th…

nyagos で、行番号シェルつくった

多分理解されないと思うけど、あの「入力が数字から始まっていたら、即実行中ではなく記憶しておき、runとタイプされると数字順に実行する」という「古代 8bit BASIC」のシステム、 意外とコマンドラインシェルで便利かもね。nyagos の Lua で書いてみたけど…

nyagos 内蔵 Lua 組み込みバッチファイルの雛型

nyagos内蔵Lua が 5.1 になったので前の 5.3 向けの方法が使えなくなった donyagos.cmd @setlocal & set "ARGS=%*" & nyagos.exe --norc -e "_,_,b=io.input([[%~f0]]):read('*l','*l','*a');assert(loadstring('\n'..b,[[%~f0]]))()" @endlocal & exit /b %…

続・nyagos で lua53.dll のかわりに GopherLua を使おう

続・nyagos で lua53.dll のかわりに GopherLua を使おう - Qiitaより転載 続・nyagos で lua53.dll のかわりに GopherLua を使おう 「nyagos で lua53.dll のかわりに GopherLua を使おう - Qiita」の続き: β2 を出しました。 Release 4.3_beta2 · zetamat…

nyagos で lua53.dll のかわりに GopherLua を使おう

2018/04/25 付け記事:nyagos で lua53.dll のかわりに GopherLua を使おう - Qiitaより転載 nyagos で lua53.dll のかわりに GopherLua を使おう Using GopherLua instead of lua53.dll · Issue #300 · zetamatta/nyagos lua53.dll にはいくつか問題があり…

git で特定の2つのフォルダーを使ってる履歴のみ残して、後は消す

フォルダー一つだけなら git filter-branch --subdirectory-filter が使えるが、複数の場合はそうもいかない。 複数のフォルダーだけを残すために、Lua スクリプトをさくっと書いた。 function getgitlog(files) local fd = io.popen("git log " .. table.co…

expect for Command Prompt by GopherLua

コマンドプロンプト向けの expect を Go 言語で作った。 https://github.com/zetamatta/expect 特徴 スクリプトは Lua で書く。GopherLua を使ったので、lua53.dll は不要 画面のプロンプトを待つ except() 関数は、本家だと標準出力・標準エラーを監視する…