System Automation Recipes

Aegis is great for replacing complex Bash scripts or Python glue code.

Prerequisites:

import "stdlib/system.aeg"
import "stdlib/file.aeg"
import "stdlib/date.aeg"
import "stdlib/path.aeg"

Daily Backup Script

This script copies a file and appends the current date to its name.

var source = "database.db"
var timestamp = Date.format("%Y-%m-%d") // e.g., 2023-10-25
var dest = "backups/database_" + timestamp + ".db"

if (File.exists(source)) {
    print "backing up " + source + " to " + dest + "..."
    
    // Read source
    var content = File.read(source)
    
    // Ensure directory exists (basic check)
    // Ideally, use Process.run("mkdir -p backups")
    
    // Write backup
    File.write(dest, content)
    print "✅ Backup complete."
} else {
    print "❌ Source file not found!"
}

Environment Checker

Check if required environment variables are set before starting an app.

var required_vars = ["API_KEY", "DB_HOST", "PORT"]
var missing = 0

required_vars.for_each(func(key) {
    var val = System.env(key)
    if (val == null) {
        print "❌ Missing ENV: " + key
        missing = missing + 1
    } else {
        print "✅ " + key + " is set."
    }
})

if (missing > 0) {
    System.fail("Environment is not configured correctly.")
}

print "Starting Application..."