Iapp is a package manager for Ioke. It provides:
- a standard format for applications and libraries written in Ioke
- command line tool for installation of packages
- framework for application developers to easily load required libraries
Installing application or library:
iapp install bragi-ioke-calc
This downloads and installs application and all it’s dependencies. It also creates command line shortcuts to all binaries.
To create new iapp based library run:
iapp create library-name
- iapp is a name of executable, extension used for package format and file type. It covers both libraries and applications. To clarify sometimes:
- iappc – command line tool
- iappr – archive
- iappl – distributed application or library
- iappf – dependency loading framework
- Automatically create small launchers to all binaries from the iapp. Launchers are created in IAPP_LAUNCHER_PATH=/usr/bin. Each launcher is a simple bash script that contains: iapp launch application-name.
- All iapprs use naming schema of: author-library-name
- Iappl may provide several features, by default it provides library-name. There may be several iappls installed that provide the same feature (iappl forks by different authors!). User through a simple file may specify which feature should be default for the system, but he may also choose specific features on per-iappl basis. It’s up to user to change defaults, developer may only request feature (not specific implementation of it!)
- Iappf defines versioning scheme.
- Iappf defines directory structure. This is however flexible:
- All files are kept in a single, top-level directory
- There must be at least one file called application.ik. This file lists all dependencies and specifies kind of iappr. Kinds include:
- Iapp Library
- Iapp Application
- Iapp Plugin
- Kind may also specify testing framework, documentation framework. Each of those frameworks may require specific directory/file structure.
- Each kind may add other requirements, Iapp Application for example requires listing binary names and Kind that will be used to start given binary
Example of application.ik for bragi-ioke-calc
Iapp Application("ioke-calc", "1.0.0") do( use("calculator-library") binary("ioke-calc", BragiCalculator) )