1.6 KiB
Cell structure
Cell doesn't have the notion of a file system; it has packages. Each package is a directory with a cell.toml file. You cannot have nested packages.
A package is a collection of actors, modules, and other files.
Packages are stored in a cell shop, in a development environment, located at ~/.cell.
Inside the shop there is .cell/packages/
A package can be a gitea url, like gitea.pockle.world/john/prosperon, which effectively clones to ~/.cell/packages/gitea.pockle.world/john/prosperon
Or it can be a local absolute path (on computers with a file system), like .cell/packages/User/john/work/prosperon, which is a symlink to the actual directory.
Cell itself is stored in .cell/core, and can build itself from there. Updating cell involves getting cell from somewhere, and rebuilding it. The cell core is itself a package.
When an actor or module is requested, it's loaded first from the package, if not found, it checks in packages, and if not found there, it checks in the cell core scripts (.cell/core/scripts).
Packages can declare aliases for packages, so the "accio" package can say "prosperon = gitea.pockle.world/john/prosperon", and then load "prosperon/sprite". A module in prosperon can simply load "sprite" to load its own sprite.
the "cell upgrade" command is a command to upgrade the cell version in a shop.
commands
cell update - update all packages in the shop, and builds their code for local use cell install - install a package cell remove - remove a package cell build - build the package in the current directory into a cell executable