The OS: module provides operating-system services: working directory, directory listing, environment variables, and process control.
| Call | Effect |
|---|---|
OS:Args(listName) |
Populate a pre-declared List:String with the positional script arguments |
OS:Cwd(outVar) / OS:CurrentDirectory(outVar) |
Current working directory → outVar |
OS:ChDir(p) / OS:ChangeDirectory(p) |
Change working directory |
OS:ListDir(p, listName) / OS:ListDirectory(p, listName) |
Populate a pre-declared List:String with filenames (sorted) |
OS:MkDir(p, outVar) / OS:MakeDirectory(p, outVar) |
Create directory; true if newly created → outVar |
OS:MkDirs(p, outVar) / OS:MakeDirectories(p, outVar) |
Create directory tree; true if any dir was created → outVar |
OS:Remove(p, outVar) |
Remove file or empty dir; true if removed → outVar |
OS:Rename(old, new) |
Rename/move a file or directory |
OS:GetEnv(name, outVar) / OS:GetEnvironment(name, outVar) |
Environment variable value ("" if not set) → outVar |
OS:SetEnv(name, value) / OS:SetEnvironment(name, value) |
Set environment variable |
OS:System(cmd, outVar) |
Run shell command; exit code → outVar |
OS:Exit(code) |
Terminate the process |
// Script arguments: minks script.ks hello world
List:String args;
OS:Args(args);
Var:Number count;
List:Size(args, count);
Konsol:Print(count); // 2
Var:String first;
List:Get(args, 0, first);
Konsol:Print(first); // hello
Var:String cwd;
OS:Cwd(cwd);
Konsol:Print(cwd); // /home/user/project (or C:\… on Windows)
Var:String greeting;
OS:SetEnv("GREETING", "hi");
OS:GetEnv("GREETING", greeting);
Konsol:Print(greeting); // hi
Var:Boolean ok;
OS:MkDir("output", ok);
List:String entries;
OS:ListDir(".", entries);
Var:Number sz;
List:Size(entries, sz);
Konsol:Print(sz); // number of entries in current directory
// 27_os_path.ks — OS and Path modules
Var:String result;
Var:Boolean exists;
Var:Boolean isFile;
Var:Boolean isDir;
Var:String envVal;
Var:String cwd;
Var:Boolean ok;
Var:Number sz;
List:String entries;
// ── Path: pure string operations (no filesystem access) ──────────────────────
Konsol:Print("=== Path:BaseName ===");
Path:BaseName("foo/bar/baz.ks", result);
Konsol:Print(result); // baz.ks
Konsol:Print("=== Path:DirName ===");
Path:DirName("foo/bar/baz.ks", result);
Konsol:Print(result); // foo/bar
Konsol:Print("=== Path:Stem ===");
Path:Stem("foo/bar/baz.ks", result);
Konsol:Print(result); // baz
Konsol:Print("=== Path:Extension ===");
Path:Extension("foo/bar/baz.ks", result);
Konsol:Print(result); // .ks
Konsol:Print("=== Path:Join ===");
Path:Join("foo/bar", "baz.ks", result);
Konsol:Print(result); // foo/bar/baz.ks (separator is platform-native)
// ── Path: filesystem queries ─────────────────────────────────────────────────
Konsol:Print("=== Path:Exists / IsFile / IsDir ===");
Path:Exists("27_os_path.ks", exists);
Konsol:Print(exists); // true
Path:IsFile("27_os_path.ks", isFile);
Konsol:Print(isFile); // true
Path:IsDir("27_os_path.ks", isDir);
Konsol:Print(isDir); // false
// ── OS: environment ──────────────────────────────────────────────────────────
Konsol:Print("=== OS:GetEnv / SetEnv ===");
OS:SetEnv("MINKS_TEST", "hello");
OS:GetEnv("MINKS_TEST", envVal);
Konsol:Print(envVal); // hello
OS:GetEnv("THIS_VAR_DOES_NOT_EXIST_XYZ", envVal);
Konsol:Print(envVal); // (empty string)
// ── OS: cwd ──────────────────────────────────────────────────────────────────
Konsol:Print("=== OS:Cwd ===");
OS:Cwd(cwd);
Konsol:Print(cwd); // some absolute path
// ── OS: MkDir / ListDir / Remove ─────────────────────────────────────────────
Konsol:Print("=== OS:MkDir / ListDir / Remove ===");
OS:MkDir("_minks_tmp_dir", ok);
Path:IsDir("_minks_tmp_dir", isDir);
Konsol:Print(isDir); // true
OS:ListDir(".", entries);
List:Size(entries, sz);
Konsol:Print(sz); // >= 1
OS:Remove("_minks_tmp_dir", ok);
Path:Exists("_minks_tmp_dir", exists);
Konsol:Print(exists); // false
// ── OS: MkDirs ───────────────────────────────────────────────────────────────
Konsol:Print("=== OS:MkDirs ===");
OS:MkDirs("_minks_a/b/c", ok);
Path:IsDir("_minks_a/b/c", isDir);
Konsol:Print(isDir); // true
OS:Remove("_minks_a/b/c", ok);
OS:Remove("_minks_a/b", ok);
OS:Remove("_minks_a", ok);
Konsol:Print("done");
// 42_os_args.ks — OS:Args() exposes script positional arguments
// Run as: minks 42_os_args.ks hello world 42
List:String args;
OS:Args(args);
Var:Number count;
List:Size(args, count);
Konsol:Print(count); // 3 (when called with hello world 42)
foreach (Var:String a in args) {
Konsol:Print(a);
}
// Access by index
Var:String first;
List:Get(0, args, first);
Konsol:Print(first); // hello
// Zero-arg case
List:String empty;
OS:Args(empty);
List:Size(empty, count);
Konsol:Print(count); // same count (args are whatever was passed)
Konsol:Print("done");