APPLICATE
Package OQL programs, HTML, JS, CSS, and assets into native application files for any target platform. Source is a folder — any mix of OQL, HTML, JS, and assets. Output is a platform-native package.
[pending] — APPLICATE is designed and specified. Runtime implementation is in progress.
Syntax
(* Minimal — uses Ocalt default signer *)
APPLICATE TYPE "android/apk" FROM "/root/appfolder/" TO "/root/new.apk"
(* Full — custom signing and identity *)
APPLICATE TYPE "android/apk" FROM "/root/appfolder/" TO "/root/new.apk"
SIGN WITH "/root/keys/my.keystore"
AS "com.ocalt.myapp"
TITLE "MyApp"
SET ?file
Output targets
| Type string | Output |
|---|---|
"android/apk" | Android APK — direct install |
"android/aab" | Android App Bundle — Play Store submission |
"windows/exe" | Windows executable |
"windows/installer" | Windows installer (MSI/NSIS) |
"macos/app" | macOS application bundle |
"ios/app" | iOS application package |
"linux/app" | Linux binary |
"linux/appimage" | Linux AppImage — portable |
"linux/deb" | Debian package |
"linux/rpm" | RPM package |
"web/pwa" | Progressive Web App — generates manifest + service worker |
Modifiers
| Modifier | Syntax | Description |
|---|---|---|
| SIGN WITH | SIGN WITH "/root/keys/my.keystore" | Path to signing key, keystore, certificate, or provisioning profile. Omit to use the Ocalt-managed default signer. |
| AS | AS "com.ocalt.myapp" | Bundle identifier / package name |
| TITLE | TITLE "MyApp" | Application display name |
Default signer
If SIGN WITH is omitted, Ocalt generates and manages a default signing key per namespace. The app is signed and installable — the identity is Ocalt's rather than the developer's own. Override at any time by providing a key.
Manifest file
Place ocalt.manifest.json in the source folder root to set app metadata that applies to all builds from that folder:
{
"version": "1.0.0",
"icon": "appicon.png",
"permissions": ["camera", "location"],
"min_os": "12.0",
"orientation": "portrait",
"description": "My app built with OQL",
"author": "Ocalt (Pty) Ltd"
}
Icon defaults to /appfolder/appicon.png if ocalt.manifest.json is absent or does not specify an icon. APPLICATE modifiers (AS, TITLE) override manifest values.
Examples
(* PWA from HTML+JS folder *)
APPLICATE TYPE "web/pwa" FROM "/root/mysite/" TO "/root/mysite.pwa/" SET ?out
(* Android APK — custom identity *)
APPLICATE TYPE "android/apk" FROM "/root/myapp/"
TO "/root/releases/myapp-v1.apk"
SIGN WITH "/root/keys/release.keystore"
AS "com.myco.myapp"
TITLE "My App"
SET ?file
(* Linux Debian package *)
APPLICATE TYPE "linux/deb" FROM "/root/myapp/" TO "/root/myapp.deb" SET ?pkg