Added many, many more actions.
This commit is contained in:
54
utils/mktemp/make_temp.sh
Normal file
54
utils/mktemp/make_temp.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
INPUT="$1"
|
||||
INPUT_TYPE="$2"
|
||||
OUTPUT_TYPE="$3"
|
||||
TRANSFER_TYPE="$4"
|
||||
TMP_DIR="$5"
|
||||
MKTEMP_ARGS="$6"
|
||||
|
||||
# match up the output type to the input type.
|
||||
if [[ $OUTPUT_TYPE == 'auto' ]]; then
|
||||
if [[ $INPUT_TYPE == 'raw' ]]; then
|
||||
OUTPUT_TYPE="file"
|
||||
elif [[ $INPUT_TYPE == 'expression' ]]; then
|
||||
OUTPUT_TYPE="dir"
|
||||
else
|
||||
OUTPUT_TYPE="$INPUT_TYPE"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $INPUT_TYPE == 'raw' && $OUTPUT_TYPE == 'dir' && -n "$INPUT" ]]; then
|
||||
echo "Can't output raw input to a temporary directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $OUTPUT_TYPE == "dir" ]]; then
|
||||
MKTEMP_ARGS="-d $MKTEMP_ARGS"
|
||||
fi
|
||||
|
||||
mkdir -p "$TMP_DIR"
|
||||
|
||||
TMP=$(mktemp -p "$TMP_DIR" $MKTEMP_ARGS)
|
||||
echo "tmp=$TMP" >> "$GITHUB_OUTPUT"
|
||||
|
||||
if [[ -z "$INPUT" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
TRANSFER_COMMAND="cp -r"
|
||||
if [[ $TRANSFER_TYPE == 'move' ]]; then
|
||||
TRANSFER_COMMAND="mv"
|
||||
fi
|
||||
|
||||
if [[ $INPUT_TYPE == 'raw' ]]; then
|
||||
echo "$INPUT" > "$TMP"
|
||||
elif [[ $OUTPUT_TYPE == 'file' ]]; then
|
||||
$TRANSFER_COMMAND "$INPUT" "$TMP"
|
||||
elif [[ $OUTPUT_TYPE == 'dir' ]]; then
|
||||
if [[ $INPUT_TYPE == "expression" ]]; then
|
||||
$TRANSFER_COMMAND $INPUT "$TMP"
|
||||
else
|
||||
$TRANSFER_COMMAND "$INPUT" "$TMP"
|
||||
fi
|
||||
|
||||
fi
|
||||
Reference in New Issue
Block a user