fari: To do, to make (eo) — Lighthouses (it)
Fari downloads and prepares fresh, ready-to-hack Pharo images for you, so you can forget about the usual setup dance: get image, run it, open workspace, juggle windows, copy-paste, do-it, save image under new name…
$ git clone [email protected]/$user/$repo.git
$ cd $repo
$ fari.sh build
$ fari.sh run
Drop or link
fari.sh
in
your $PATH
.
To have code automatically loaded in the fresh image, add a load.st
file
containing the needed code snippet in your project, typically something like:
"load.st"
Metacello new baseline: 'Foo';
repository: 'gitlocal://./src';
load.
This will generate a pharo.1c0ffee.image
file. The hex suffix comes from the
downloaded snapthot and identifies which sources file matches the image.
Named images: Instead of load.st
, you can also use a named load script,
e.g. foo.load.st
, resulting in a matching foo.*.image
. Several named
images can be generated, each with specific settings, by having as many named
load scripts. If present, load.st
is loaded before the named load script of
each image; this is useful for sharing configuration in all named images.
Personal settings: any existing local.st
or foo.local.st
files get
loaded after the load scripts; those are intended for loading personal tools
and settings, and should thus be left out of version control.
Environment variables: Fari takes a few environment variables into account. We recommend direnv to make any setting persistent and project-specific.
PHARO_PROJECT
: image name used in the absence of a named load script;
defaults to pharo
.
PHARO
: name of the Pharo VM command-line executable. Defaults to pharo
,
assuming that you have it in your $PATH
. If you get your VMs from
get.pharo.org, set it to ./pharo
.
PHARO_VERSION
: Pharo release, as used in the get.pharo.org URLs;
defaults to 80
.
PHARO_FILES
: URL prefix for downloading the image; defaults to
http://files.pharo.org/get-files/${PHARO_VERSION}
.
PHARO_IMAGE_FILE
: Name of the image distribution file to download; defaults
to pharo64.zip
but would be pharo.zip
for 32-bit images.
The Fari source is available on Github, and is released under the MIT license. See the Docco generated docs for more information: https://cdlm.github.io/fari.sh