Files
lush_grading/tasks/environment/env_path_builder.toml
Cormac Shannon 20e62f60f6 Reorganize task categories from opaque a/b to descriptive names
Replace category_a/category_b directories with algorithm, pipeline,
environment, filesystem, and process. Add separate mode field (solve/convert)
to decouple orchestration from capability grouping. Add per-category
summary and questionnaire breakdowns to both terminal report and HTML export.
2026-03-29 20:59:01 +01:00

41 lines
974 B
TOML

name = "env_path_builder"
category = "environment"
mode = "convert"
description = """
Read directory paths from stdin, one per line.
Append each to the MYPATH environment variable (colon-separated), skipping duplicates.
The initial value of MYPATH is provided via the environment (may be empty).
Print the final value of MYPATH to stdout.
"""
bash_source = """
#!/bin/bash
while IFS= read -r dir || [[ -n "$dir" ]]; do
if [[ -z "$MYPATH" ]]; then
export MYPATH="$dir"
elif [[ ":$MYPATH:" != *":$dir:"* ]]; then
export MYPATH="$MYPATH:$dir"
fi
done
echo "$MYPATH"
"""
[[test_cases]]
stdin = """/usr/local/bin
/usr/bin
/usr/local/bin
/opt/bin"""
expected_stdout = "/usr/local/bin:/usr/bin:/opt/bin"
env = { "MYPATH" = "" }
[[test_cases]]
stdin = """/new/path
/existing"""
expected_stdout = "/already/here:/new/path:/existing"
env = { "MYPATH" = "/already/here" }
[[test_cases]]
stdin = "/only"
expected_stdout = "/only"
env = { "MYPATH" = "" }