Funicular
Version 0.7. Subject to change in backwards-incompatible ways.
Funicular is a system that semi-automates the creation of computing environments on eclectic architectures.
"Semi-automate" means it automates what it can, and provides repeatable instructions for you to follow for what it can't.
"Computing environment" could mean a "development environment", i.e. a system in which you can build (and perhaps even write) software, populated with interpreters and compilers, debuggers, text editors, and the like. Or it could mean any other environment that could be set up on a computer system.
"Eclectic architectures" is not terribly-well defined, but it includes retrocomputing and esoteric architectures. Basically, if you've got an emulator for it, and installation images for it, you might be able to install and outfit and run a system for it, using Funicular.
TL;DR it's kind of like a Vagrant, but instead of provisioning VMs, it provisions emulators.
It currently supports:
- i386 running NetBSD under QEMU
- i386 running FreeDOS under QEMU
- Amiga 500 (etc) running AmigaDOS under E-UAE
- Commodore 64 with a 1541 floppy drive under VICE
- VIC-20 with a 1541 floppy drive under VICE
- Apple //e running AppleDOS under Linapple
Funicular unifies and replaces the older, discrete, ad-hoc projects NetBSD-Gondola, FreeDOS-Gondola, and Amiga-Gondola, which are now deprecated.
Quick Start
cdinto a directory that has aFunicularfile.- Run
funicular init system. - Acquire the appropriate install image.
- Run
funicular install. - Run
funicular init setup. - Run
funicular setup. - You now have a configured Funicular. Run
funicular startto use it.
Documentation
The reference implementation of the funicular tool is written in Bourne
shell. A Funicularfile is also written in Bourne shell, but it mostly
contains configuration, not functionality.
You can look at the settings in the example Funicularfiles in eg/ and
look them up in the source code in script/ to divine what they mean.
Because the entire thing was recently rewritten (converting it from Lua to Bourne shell), there really isn't any further documentation right now except for this out-of-date set of notes.
License
The contents of this repository are in the public domain. This, of course,
applies only to the contents of this repository, and not to the contents of
any particular Funicular you build with with this software. See the file
UNLICENSE in this directory for more information.
Commit History
@master
git clone https://git.catseye.tc/Funicular/
- Add some files and notes for what is required for setup. Chris Pressey 8 years ago
- Restore files for attempted Amiga support. Chris Pressey 8 years ago
- Prep for release of 0.4. Chris Pressey 9 years ago
- Handle @'s in catalogs and simplify staging area creation. Chris Pressey 9 years ago
- Update README, nominally in preparation for the next release. Chris Pressey 9 years ago
- `funicular backup` can take a filename. Tweaks to NetBSD funicular. Chris Pressey 9 years ago
- Refactor build script to write out "build cookies". Chris Pressey 9 years ago
- Use two different scripts for populating and building the shelf. Chris Pressey 9 years ago
- `fu restore` named backups; don't `git pull` when not on branch. Chris Pressey 9 years ago
- Working on the populate/build script, rather ad-hoc & experimental. Chris Pressey 9 years ago
- Allow getting distrepos from catalog. Fix catalog. Chris Pressey 9 years ago
- If distrepo already exists, pull it instead of cloning it. Chris Pressey 9 years ago
- Continue to refine away from toolshelf, towards shelf. Chris Pressey 9 years ago
- It'll be something like this, I wager. Chris Pressey 9 years ago
- Continuing to transition from toolshelf to shelf. Chris Pressey 9 years ago
- The NetBSD Funicular is (almost) using shelf now. Chris Pressey 9 years ago
- Remove now-defunct Lua script; rename shell version to replace. Chris Pressey 9 years ago
- Merge pull request #2 from catseye/rewrite-in-bourne-shell Chris Pressey (commit: GitHub) 9 years ago
- Remove Amiga support. Chris Pressey 9 years ago
- For shelf, it will be something like this (untested as of yet) Chris Pressey 9 years ago
- Attempting to make the Amiga 500 funicular less weird. Chris Pressey 9 years ago
- Put repositories onto setup image, too. Chris Pressey 9 years ago
- Fixes to init setup, discovered when testing the NetBSD funicular. Chris Pressey 9 years ago
- C64 and VIC-20 setup works in a more orderly fashion now. Chris Pressey 9 years ago
- Convert setup, builddist, distboot. Chris Pressey 9 years ago
- Use HTTPS DISTREPOS_ROOT to allow anonymous cloning. Chris Pressey 9 years ago
- DISTREPO_ROOT Chris Pressey 9 years ago
- Working towards setup working, in 2 parts: init setup and setup. Chris Pressey 9 years ago
- runnable() helper, to implement instructions; install subcommand. Chris Pressey 9 years ago
- Simple backup and restore, and forget about VIRTUAL_SYSTEM_IMAGE. Chris Pressey 9 years ago