Open new Terminal.app with Finder Current Directory

Mac の Finder から Terminal.app を開きたい。
最初から今開いているディレクトリをカレントディレクトリにして。
もちろん JXA を使って自作拡張スクリプトとして。

日本語で探すとみんなアプリを紹介している。
こういう人達って本当にプログラミングをやっているの???
その程度なら自分で作ろうと考えるのが当然だと思うんですけど。
まあそれはいいとして。

最初は sh でやろうと思ったけど pwd が $HOME になってしまう。
どうやら JXA で Finder から取得する必要があるようだ。

Open a new Terminal window for the current Finder folder – macro – Keyboard Maestro Discourse

やっぱり海外でしか手段が見つからないなぁ。

しかし上記をそのまま拡張ディレクトリに突っ込んでも動かない。
Finder から呼び出すので Finder の有無を調べる必要が無い。
つか何をやっているか解りづらいよ、読みやすく書き替えた。

#!/usr/bin/osascript

let terminal = Application("Terminal");
let finder = Application("Finder").finderWindows();

let uri = finder[0].target().url();
let path = decodeURI(uri).slice(7);

terminal.doScript("cd " + path);
terminal.doScript("clear");
terminal.activate();

このくらい分割すれば何をどうやっているか解ると思う。
しかしこの手段では 1 ページ分スクロールになってしまいイマイチ。
筆者はコッチを勧める。

terminal.js

#!/usr/bin/osascript

let finder = Application("Finder").finderWindows();

let uri = finder[0].target().url();
let path = decodeURI(uri).slice(7);

let app = Application.currentApplication();
app.includeStandardAdditions = true;
app.doShellScript("open -a Terminal " + path);

と。
open コマンドの最後にフルパスを付ければカレントディレクトリになる。
コイツを実行パーミッションを付加して拡張ディレクトリに移動

chmod +x terminal.js
mv terminal.js ~/Library/Scripts/Applications/Finder

これでスクリプトが利用できる。
Finder がアクティブの状態でメニューバーのスクリプトアイコンを。

do_script

うん、コレで JXA を実行するのがちょっとだけ楽になったぞい。
とりあえずこれだけ理解できればいくらでも拡張できると思う。