csv-runner
v1.0.2
Published
A command-line tool to execute commands from CSV files
Downloads
4
Readme
CSV Runner
A Node.js command-line tool to execute commands listed in a CSV file, track their execution status, and save results for future runs.
Features
- Accepts a CSV file as input.
- Prompts the user to select which column contains the commands to execute.
- Executes each command in the selected column.
- Tracks which commands have been executed, and their results (success, error, or not yet run).
- Saves execution results, including errors and output, to a new CSV file.
- Skips commands that have already been executed successfully in previous runs.
Usage
Install dependencies (if any):
npm installRun the script:
csv-runner path/to/your.csvFollow the prompt:
- The script will display the columns in your CSV and ask which one contains the commands to execute.
Execution tracking:
- The script will create or update a results CSV (e.g.,
your_results.csv) with the following columns:- Original columns from your input CSV
command_executed: The command that was runstate:success,error, oremptyoutput: The output or error message from the command
- The script will create or update a results CSV (e.g.,
Re-running:
- If you run the script again with the same CSV, it will skip commands already marked as
successorerrorin the results CSV, unless you choose to re-run them.
- If you run the script again with the same CSV, it will skip commands already marked as
Example CSV
| id | script | |----|---------------------| | 1 | echo "Hello World" | | 2 | ls -l | | 3 | invalidcommand |
Example Results CSV
| id | script | command_executed | state | output | |----|---------------------|---------------------|----------|-----------------------| | 1 | echo "Hello World" | echo "Hello World" | success | Hello World | | 2 | ls -l | ls -l | success | ...output... | | 3 | invalidcommand | invalidcommand | error | ...error message... |
Implementation Notes
- Use Node.js built-in modules and/or libraries like
csv-parser,csv-writer, andinquirerfor prompts. - Use
child_process.execto run commands. - Ensure safe execution: consider security implications of running arbitrary commands.
- Handle errors gracefully and record them in the results CSV.
License
MIT
