RubyMineやPhpStormをCLIから起動する時に使っているスクリプト
ka2n
(Updated: )
普段開発する時は、Visual Studio Codeやvimも使いますが、PHPやRubyの時はPhpStormやRubyMineなどのJetBrains製IDEを使用しています。gitなファイル操作をCLIでやるのが好みなので、ターミナルでプロジェクトのディレクトリまで移動し、Visual Studio Codeであればcode .
などタイプしてIDEを起動しています。
JetBrainsのIDEはJetBrains Toolbox経由でCLI用のコマンドをインストールすることができますがVisual Studio Codeのcode
コマンドと比べるといくらか挙動が好みではない所があります。
バックグラウンドで開いてくれない
macOSで使用していた頃はそのような事はなかったと思うので、Linux環境向けのコマンド特有の問題だと思います。
おもむろに、CLIコマンドを実行するとそのままIDEの起動ログなどが流れてきます。デタッチされない。
対処
以下のようなスクリプトを作成して使用しています。
追記(2022-09-15): アップデートした後に手間なので、最新版を起動するようにスクリプトを修正しました。
RubyMine用:
#!/bin/bash
basedir="$HOME/.local/share/JetBrains/Toolbox/apps/RubyMine/ch-0/"
latest=$(/usr/bin/ls -1 "$basedir" | sort -r | grep '^[0-9\.]*$' | head -n1)
"${basedir}/${latest}/bin/rubymine.sh" "$@" </dev/null &>/dev/null & disown
PhpStorm用:
#!/bin/bash
basedir="$HOME/.local/share/JetBrains/Toolbox/apps/PhpStorm/ch-0/"
latest=$(/usr/bin/ls -1 "$basedir" | sort -r | grep '^[0-9\.]*$' | head -n1)
"${basedir}/${latest}/bin/phpstorm.sh" "$@" </dev/null &>/dev/null & disown
解説
起動時に何をやっているのか、全然わからないので調べた事をメモしておきます。
"$@"
: 受け取ったコマンドライン引数をそのまま渡す。</dev/null
:EOF
を標準入力(stdin)に渡す。(ここはよくわからない)&>/dev/null
: 標準出力(stdin)と標準エラー出力(stderr)を/dev/null
に投げて捨てる&
: バックグラウンドへdisown
: シェル(今入力しているやつ)からプロセスジョブを切り離す
ka2n
Webエンジニアです