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/
- Change mind; present one init subcommand which takes image type. Chris Pressey 9 years ago
- Rename init to initsys, implement it and initdist. Chris Pressey 9 years ago
- Begin fleshing out funicular.sh with commented-out scaffolding. Chris Pressey 9 years ago
- Source the platform implementation sources instead of running them. Chris Pressey 9 years ago
- Setup scripts in Funicularfiles, install image URLs. Chris Pressey 9 years ago
- Begin incorporating initsys() and initdist() in fu-platform-foo. Chris Pressey 9 years ago
- Add driver script, convert example Funicularfiles to new syntax. Chris Pressey 9 years ago
- Add fu-platform-*.sh scripts, which the driver will call. Chris Pressey 9 years ago
- Support zip_unversioned for git. Update FreeDOS funicular. Chris Pressey 10 years ago
- Update Amiga funicular to work with Github, etc. Chris Pressey 10 years ago
- Update VIC-20 funicular to use Github. Chris Pressey 10 years ago
- Update C64 funicular to use Github instead of Bitbucket. Chris Pressey 10 years ago
- Ensure version in spec exists. Add SITU-SOL to C64 Funicular. Chris Pressey 10 years ago
- Added tag 0.3 for changeset de4b41c0071b Chris Pressey 10 years ago
- Bump version number. Chris Pressey 10 years ago
- Clean up Apple-II Funicularfile. Chris Pressey 10 years ago
- Add distrepos_catalogue which can refer to an external file. Chris Pressey 10 years ago
- Better toolshelf spec parsing. Chris Pressey 10 years ago
- distrepos_specs for nascent Apple-II example. Chris Pressey 10 years ago
- Merge. Chris Pressey 10 years ago
- distrepos_{hg,git} becomes toolshelf-compat(ish) distrepos_specs. Chris Pressey 10 years ago
- Extremely rudimentary support for Linapple/Apple II. Chris Pressey 11 years ago
- Added tag 0.2 for changeset 74f53ac7f015 Chris Pressey 11 years ago
- Bump version number. Chris Pressey 11 years ago
- Add UNLICENSE, and clarify how it applies to this software. Chris Pressey 11 years ago
- Enable joystick on setup; add menu on built dist image. Chris Pressey 11 years ago
- Support building a dist in the example VIC-20 Funicular. Chris Pressey 11 years ago
- Add builddist command instead of overloading 'start'. Chris Pressey 11 years ago
- Support a dist_script being run on host when building dist image. Chris Pressey 11 years ago
- Even more self-contained: write out vicerc during funicular setup. Chris Pressey 11 years ago