The command line tool
Installing innesta, what it does, and what it deliberately does not.
innesta opens a repository from the terminal.
innesta # the current directory
innesta . # the same
innesta ~/Projects/kettle
Installing it
From Innesta ▸ Settings… (⌘,) → General. Innesta creates a symlink:
~/.local/bin/innesta → <Innesta.app>/Contents/Helpers/innesta
Deliberately in ~/.local/bin, deliberately a symlink, and deliberately
without sudo. It does not write to /usr/local/bin or
/opt/homebrew/bin, because those belong to your package manager and an
application that installs itself into them is one you will be untangling later.
The symlink means an updated Innesta brings an updated innesta with it.
If ~/.local/bin is not on your PATH, Innesta tells you so — the link would
otherwise be installed and invisible.
Removing it deletes the link only if it is a symlink Innesta manages. A real file of that name, a Homebrew link, or a link pointing somewhere Innesta does not recognise is left alone.
What it does
Sends the path to the app and brings Innesta forward. It:
- accepts at most one path;
- treats
--as the end of the options, so a path starting with-works; - expands
~; - resolves a relative path against your current directory;
- checks only that the path exists and is a directory.
Finding the repository root is the app’s job, so innesta Sources/Kettle opens
the repository that contains it.
--help and --version do what they say. Exit codes are 0 on success, 1 if
macOS could not launch the app, and 2 for a bad path or bad arguments.
What it does not do
It does not read Git state, does not run git, and has no configuration. It is
a launcher, and keeping it to that is why it starts instantly.
Opening the same repository twice
Running innesta . again in a repository that is already open brings that
window forward. It does not open a second window, and it does not flash the
Projects window on the way.