Planter

Planter is a project directory generator. Its sole purpose is to encourage and assist with good file management.

Strengths [Weaknesses]

Simple

Planter is an unglamourous and quick way to create a project folder where you will keep all of your artistic assets being used in a specific project. That's all it does; there is no learning curve or special tricks.

Universal

Planter uses standard, universal technology. It is not specific to Slackware, and what it produces is not even specific to Linux. Its goal is to make your projects future-proof.

Weaknesses [Strengths]

Manual

Planter is, like Slackermedia itself, a manual process. It helps you create project directories, but you yourself must take JACK snapshots, save synth sessions, keep video organised, and so on.

Install

Install Planter directly from Gitlab. It is built primarily with Slackware in mind (although it is not limited to Slackware), so after you download it, all you have to do is run the SlackBuild bundled with it.

$ git clone https://gitlab.com/planter/planter.git
$ cd planter
$ su -c 'sh ./planter.SlackBuild'
$ su -c 'installpkg /tmp/planter*t?z

Or if you use sport:

$ git clone https://gitlab.com/planter/planter.git
$ cd planter
$ su -c 'sport i .'

There are two problems that Planter solves:

Scattered Assets

You make great art, but you forget to consolidate all the assets that go into making the art. You put the art project on a drive and take it to your collaborator's studio to work on it together (or you move the art project files to a backup drive to free up space on your main computer). When you open the project, you discover that your fonts are missing, or that your samples are missing, or that your video clips are offline, and so on.

Shared Assets

It doesn't make sense to make copies of some assets because they are either too big or they just get used in every project you work on. They are, for lack of word, your “operating environment”, or your standard toolkit. Planter recognises this, and allows for certain directories to be relative, so that you point back to big or ubiquitous assets, like stock footage, fonts, loops, soundfonts, samples, and so on; as long as you have one back up copy of these assets, then all of your projects will continue to work.

Usage

Planter is a hybrid application that works both in a terminal as a command, or as stand-alone applications. In practise, Planter will surely require some configuration from you so that it fits how you work, but there's no harm in trying it first:

GUI

Launch Planter from the K menu or from a terminal:

$ planter --gui &
It doesn't get simpler than this.

There isn't much to it; fill in the fields:

  • Project Name: enter a name for your project directory
  • Location: enter the file path where you want your directory saved. By default, it will be saved in your home directory.
  • Shared Directory: the location of any shared assets that you use across projects. If you have no shared assets, you can leave this as is, or just set it to /usr/local/share.

When finished, click the Create button.

Terminal

Planter can be used entirely from a terminal, too, so it can be scripted or invoked remotely or by other applications. To use it from the terminal:

$ planter --destination $HOME \
--shared /usr/local/share/artkit myGreatProject

The results of either method is a new directory in the destination location. The directory contains several folders which, by default, might represent departments within your production. It's based on the needs of a typical multimedia production, but it can and should be customised by you for your own needs. The defaults are:

  • production: for production documents (budgets, schedules, deal memos)
  • graphics: promotional graphics, fonts, photos
  • story: for the screenplay or script
  • video: for footage sources, title cards, and so on
  • vfx: for textures, mattes, models, and related assets
  • sound: for audio sources, synth presets, samples, rack sessions, jack sessions
  • dist: distributable files; final renders and mixdowns

Several of the directories within the project are symlinks (“aliases” or “shortcuts”) to your shared asset directory, while others are symlinks to other directories in that project (which assumes that each department sometimes share assets).

Custom Configuration

The default set of departments and assets are meant to be generic and all-purpose. Of course, one size does not fit all, and you have the ability to either modify the master configuration file (located in /etc/planter) or create a local default for yourself.

Master Config

To customise the systemwide configuration, edit /etc/planter/tree.list:

$ kdesu 'emacs /etc/planter/tree.list'

The tree.list contains two types of entries; there are mkdir entries and symlink entries. The mkdir entries tell Planter to make a directory within the project directory. The symlink entries tell Planter to create a pointer to another directory on your filesystem, or to another folder inside the project folder.

For example, if your ideal project structure is one project directory containing one folder for photographs, a folder for an ICC profile, and a folder for fonts, then the tree.list would look like this:

mkdir:photo
mkdir:fonts
mkdir:icc

Or you might want the fonts directory to point to your personal collection of fonts, use the symlink entry, defining first the location of the shared asset and then the name of the directory that should be created within your project:

mkdir:photo
synlink:$HOME/.local/share/fonts:fonts
mkdir:icc

Local Config

You can create any number of configurations, as long as you point Planter to the configuration when you launch it. In this way, you can create a configuration for video projects, a configuration for music projects, a configuration for graphic design, and so on.

When you launch planter:

$ planter --config ~/video.tree --gui

Or use it directly from the shell:

$ planter --config ~/video.tree \
--share $HOME/artkit myGreatProject

Moving Your Project

As long as you save relevant files in your project directory, your project becomes, essentially a self-contained entity. Assuming you have no shared assets, then your project becomes entirely self-contained (but for the applications and operating system itself, obviously).

If you move your project off of your computer, you must use the -L flag with cp.

$ cp -rL myGreatProject /run/media/$USER/backup/

The -L option de-references symlinks; that is, it grabs the files from the symlinked location and makes a copy of it along with all of your other files.

This copies all of the contents of a shared asset folder; even if you only actually need one sample, if you have linked to a shared folder of samples, then all of the samples will be copied with your project directory. This could theoretically make a 1 GB project file take 8 GB in storage.

Your alternative is to manually copy any asset you need to your project folder as you use them, but from experience, it is highly unlikely that you will think to do this!

Alternately, if you don't want to copy your shared assets every time you move a project folder, then you must back up one copy of your shared asset directory on your backup drive along with all of your projects. As long as you have your shared assets available, all of your projects are able to point to the shared asset directory and all of your project directories will load as expected.

This isn't magic, and it's not automated; it's all a manual process that requires you to keep track of your data. All Planter does is create the framework that lets you be organised about tracking your assets.

For example:

  • You create a project with your shared assets in /usr/local/share/artkit
  • At the end of the job, you archive the project on a backup drive along with the shared assets folder
  • A year later, you get a new computer and install a fresh image of Slackware onto it
  • You perform the Slackermedia mods and install all of your multimedia software
  • You copy your project file to your computer, and the shared assets to /usr/local/share/artkit
  • Your project loads as if you'd never been away

This assumes that your non-default fonts are installed to your personal font collection in $HOME/.local/share/fonts. For more information on managing your fonts, read the fonts appendix.

You

The important thing to remember is that it is up to you to know how you manage your production assets, and to remember to do sensible things, like:

  • Create a project file at the beginning of your project before you start generating files for it. If you start out saving files all over your harddrive and only later decide to try to organise them, you risk forgetting about files that are important.
  • Save everything into the project directory.
  • When you transport your projects, copy with cp -rL, or make sure that your shared assets are carefully managed and backed up.

With a little bit of effort and a solid infrastructure, there is no reason for you to ever open a project and find that you have missing assets. Not now, and not in five years. Your art is important; take care of it.

R S Q