🛠 Script Syntax and Parameter Substitution
When defining a CCP method, you provide two shell-based scripts:
deploy-script
: sets up the environment (e.g. installs dependencies, downloads files)execute-script
: runs your algorithm using the inputs provided
These scripts support dynamic variable injection and conditional logic.
📌 Placeholder Syntax: {{parameter_id}}
Any input parameter defined in your method.json
can be referenced in scripts using double curly braces.
echo "The input URL is {{file_url}}"
At runtime, CCP will substitute {{file_url}}
with the actual value passed by the user.
📥 Downloading Files with curl
Use curl
to download files passed as remote URLs:
curl -L {{file_url}} -o /ccp_data/input.txt
Notes:
-L
follows redirects (important for Google Drive, Dropbox, etc.)Save everything in
/ccp_data/
to make outputs accessible
⚠️ Optional Parameters
Use shell logic to check if a parameter has been set before using it:
[ -n "{{optional_param}}" ] && echo "Optional param was provided"
Example
[ -n "{{mask_url}}" ] && curl -L {{mask_url}} -o /ccp_data/mask.png
This prevents the script from failing when the user leaves a field empty.
🔁 Building Dynamic Commands
For complex CLI tools, build your command step-by-step:
cmd="wordcloud_cli --text /ccp_data/input.txt"
cmd="$cmd --width {{width}} --height {{height}}"
[ -n "{{max_words}}" ] && cmd="$cmd --max_words {{max_words}}"
eval $cmd
This allows you to include optional flags only when they are present.
📦 Output Location
Always write result files to /ccp_data/
, like:
python tool.py --output /ccp_data/results.csv
CCP will include these in the downloadable archive and display them in the UI.
✅ Quick Reference
Task | Example |
---|---|
Inject parameter | {{input}} |
Required download | curl -L {{url}} -o /ccp_data/file.txt |
Optional download | [ -n "{{url}}" ] && curl ... |
Dynamic command | cmd="..."; eval $cmd |
Output file | Write to /ccp_data/ |