Been thinking a bit about how to handle multi-application environments, and one case that comes up immediately is the command shell (i.e. bash). With the overlay approach, we could start bash in an empty workspace, but then how do we get access to the files we want to manipulate?
We could alter bash to allow it to request that a file be added, but why not make the whole thing unix-ish instead:
We provide a pipe in "/tmp" (or wherever) which, when a request is written to it, asks the overlay manager to allow the user to add project workspaces (Journal entries) or individual files (or search query results) to the workspace. A simple utility command-line program can parse some arguments and send a message to the pipe that lets us choose our files using the GUI chooser. (Note that this avoids the high overhead of a glib import just to get access to dbus/RPC for a single call).
Now, working in our "Bash Activity" inside our Union FS we can manipulate the files as we wish using standard tools (no need to alter the programs to be Sugar/Bitfrost aware, cp is cp, rm is rm, awk is awk, etceteras). As with any activity, when we exit, the deltas are automatically logged in the Journal.
[Update] Forgot to mention, pending issue is what to do with naming conflicts when doing additions from multiple environments. It's the same issue as with normal addition, though, so not a new problem for this approach specifically.
Pingbacks are closed.