Chapter 09

それでも %PATH% はあふれるのだ!

zetamatta
zetamatta
2020.10.17に更新

nyagos.envadd を使って、なるべく重複をさけたり、存在しないディレクトリの追加をしないように努力してもなお %PATH% があふれてしまう場合があります。その際のテクをご紹介します。

コマンドラインでは使わないアプリへのパスを除く

OS全体としては必要なアプリケーションでも、nyagos 使用中には使わないフォルダーが環境変数に入っていることが結構あります。

「PCのプロパティ」→「システムの詳細設定」→「環境変数」から環境変数PATHを編集して、フォルダーを不用意に削除すると OS の動作に支障をきたすかもしれません。でも、nyagos とその子プロセスの中だけなら削除しても問題ないでしょう。

nyagos-Lua には環境変数に設定されているディレクトリのリストから、特定の文字列を含む要素を削除する関数があります。

nyagos.envdel("PATH",
    "Oracle",
    "Lenovo",
    "Skype")

これを .nyagos に組み込んでおくと、環境変数 PATH にリストアップされているディレクトリのうち、Oracle , Lenove , Skype という文字列を 含む ディレクトリを除きます。「ディレクトリパスを正確に書かなくてもよく、一部の文字列だけでよい」というのがポイントです。

NYAGOSPATH のお出まし

それでもなお PATH の文字列が足りない!というケースのための最後の手段が環境変数 NYAGOSPATH です。これは nyagos のみがコマンド検索時に使う PATH のようなものです。

PATH と同様に扱いとしては「環境変数」なので、~\.nyagos に

nyagos.env.nyagospath = nyagos.env.nyagospath .. ";C:\\Program Files\\Subversion\\bin"

などとベタに設定してもいいですし、nyagos.envadd で一括で設定してももちろん Ok です。

nyagos.envadd("NYAGOSPATH",
    "~\\",
    "~\\Share\\Program Files\\CarotDAV",
    "%VBOX_MSI_INSTALL_PATH%",
    "%ProgramFiles%\\Oracle\\VirtualBox",
    "%ProgramFiles%\\Mercurial",
    "%ProgramFiles%\\Subversion\\bin",
    "%ProgramFiles(x86)%\\Mercurial",
    "%ProgramFiles(x86)%\\Subversion\\bin",
    "%windir%\\Microsoft.NET\\Framework\\v4.0.30319",
    "~\\.cargo\\bin")