Last active
July 28, 2025 01:06
-
-
Save cablehead/a6c3d87d8f99a872153c7d43adf630a1 to your computer and use it in GitHub Desktop.
Nushell experiment for cross.stream
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Spawn xs serve in a temporary directory, run a closure, then cleanup | |
export def spawn-xs-test [closure: closure] { | |
# Create a temporary directory | |
let tmp_dir = (mktemp -d) | |
print $"Created temp directory: ($tmp_dir)" | |
let store_path = ($tmp_dir | path join "store") | |
try { | |
# Create store directory | |
mkdir $store_path | |
# Spawn xs serve in the background | |
let job_id = job spawn --tag "xs-test-server" { | |
xs serve $store_path | |
} | |
print $"Started xs serve with job ID: ($job_id)" | |
$env.XS_ADDR = $store_path | |
hide-env XS_CONTEXT | |
# Give the server a moment to start up | |
sleep 50ms | |
try { | |
# Run the provided closure | |
do $closure | |
} catch { |err| | |
print $"Error in closure: ($err.msg)" | |
} | |
# Kill the background job | |
job kill $job_id | |
print $"Killed xs serve job ($job_id)" | |
# Give a moment for the job to shut down | |
sleep 50ms | |
} catch { |err| | |
print $"Error during setup: ($err.msg)" | |
} | |
# Clean up the temporary directory | |
try { | |
rm -rf $tmp_dir | |
print $"Cleaned up temp directory: ($tmp_dir)" | |
} catch { |err| | |
print $"Warning: Could not clean up temp directory: ($err.msg)" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment