nip/examples/osproc_example.nim

42 lines
1.4 KiB
Nim

## Learning osproc for NexusOS - External Command Execution
## This demonstrates how to run system commands from Nim
import std/osproc
import std/strutils
echo "=== NexusOS osproc Learning Example ==="
# Example 1: Simple command execution
echo "\n1. Running 'uname -a' to get system info:"
let unameResult = execProcess("uname -a")
echo "Result: ", unameResult.strip()
# Example 2: Check if pacman is available (needed for grafting)
echo "\n2. Checking if pacman is available:"
try:
let pacmanVersion = execProcess("pacman --version")
echo "Pacman found! Version info:"
echo pacmanVersion.split('\n')[0] # First line only
except:
echo "Pacman not found - we'll need to simulate grafting"
# Example 3: List files in current directory
echo "\n3. Listing current directory contents:"
let lsResult = execProcess("ls -la")
echo lsResult
# Example 4: Create a test directory structure (like /Programs/App/Version)
echo "\n4. Creating NexusOS-style directory structure:"
let testDir = "/tmp/nexusos-test/Programs/TestApp/1.0.0"
let mkdirResult = execProcess("mkdir -p " & testDir)
if mkdirResult.len == 0: # No output usually means success
echo "Successfully created: ", testDir
# Verify it exists
let verifyResult = execProcess("ls -la /tmp/nexusos-test/Programs/")
echo "Directory contents:"
echo verifyResult
else:
echo "Error creating directory: ", mkdirResult
echo "\n=== osproc learning complete! ==="