nitro_plugin 0.30.0

Plugin loading and definition for Nitrolaunch
Documentation
package nitro:plugin;

world interface-world {
	export run-plugin: func(hook: string, arg: string, hook-version: u32) -> u32;
	export get-result: func() -> string;

	import get-custom-config: func() -> option<string>;
	import get-persistent-state: func() -> string;
	import set-persistent-state: func(state: string);

	import get-data-dir: func() -> string;
	import get-config-dir: func() -> string;
	import get-plugin-dir: func() -> string;
	import get-current-dir: func() -> string;
	import get-home-dir: func() -> string;
	import get-os-string: func() -> string;
	import get-arch-string: func() -> string;
	import get-pointer-width: func() -> u32;

	import update-hardlink: func(src: string, tgt: string) -> result<_, string>;
	import update-link: func(src: string, tgt: string) -> result<_, string>;
	import run-command: func(cmd: string, args: list<string>, working-dir: option<string>, stdout-file: option<string>, suppress-command-window: bool, silent: bool, wait: bool) -> result<tuple<s32, u32>, string>;

	import get-instances: func() -> option<list<tuple<string, string>>>;
	import get-templates: func() -> option<list<tuple<string, string>>>;
	import get-instance-dir: func(instance: string) -> result<option<string>, string>;
	import create-instance: func(id: string, config: string) -> result<_, string>;
	import create-template: func(id: string, config: string) -> result<_, string>;
	import launch-instance: func(instance: string, account: option<string>) -> result<_, string>;

	import download-bytes: func(url: string) -> result<list<u8>, string>;
	import download-text: func(url: string) -> result<string, string>;
	import download-file: func(url: string, path: string) -> result<_, string>;
	import download-files: func(urls: list<string>, paths: list<string>, skip-existing: bool) -> result<_, string>;

	import output-display-text: func(text: string, level: u8);
	import output-display-message: func(message: string, level: u8);
	import output-start-process: func();
	import output-end-process: func();
	import output-start-section: func();
	import output-end-section: func();
}