initial commit

This commit is contained in:
2023-03-22 02:09:29 -07:00
commit 25694362f0
16 changed files with 406 additions and 0 deletions

38
utils/chown/action.yaml Normal file
View File

@@ -0,0 +1,38 @@
name: chown
description: "Take or change ownership of the specified files."
inputs:
uid:
description: "User id."
required: false
default: ""
gid:
description: "Group id."
required: false
default: ""
file:
description: "File or folder to own."
required: true
runs:
using: "composite"
steps:
- name: "Determine UID and GID."
id: ids
run: |
USER_UID="${{ inputs.uid }}"
USER_GID="${{ inputs.gid }}"
if [[ -z "$USER_UID" ]]; then
USER_UID=$(id -u)
fi
if [[ -z "$USER_GID" ]]; then
USER_GID=$(id -g)
fi
echo $USER_UID:$USER_GID
echo "::set-output name=uid::$USER_UID"
echo "::set-output name=gid::$USER_GID"
shell: bash
- name: "Take ownership of output."
uses: act/common/distros/busybox@master
with:
args: chown ${{ steps.ids.outputs.uid }}:${{ steps.ids.outputs.gid }} "${{ inputs.file }}" -R

View File

@@ -0,0 +1,67 @@
name: compress
description: "Compress a file or directory"
inputs:
files:
description: "File or directory to compress."
required: true
name:
description: "Filename of the zip file."
required: true
recursive:
description: "Recursivly zip files. Default: true"
required: false
default: "true"
quiet:
description: "Don't output every zipped file. Default: true"
required: false
default: "true"
compressionLevel:
description: "Compression level between 1-9. Default: 6"
required: false
default: "6"
compressionMethod:
description: "Compression method. Options: deflate or store. Default: deflate"
required: true
default: "deflate"
additionalArgs:
description: "Additional arguments."
required: false
workingDir:
description: "Working directory to perform the command in. Default: ."
required: true
default: "."
outputs:
publicKey:
description: "The compressed archive."
value: ${{ steps.command.outputs.name }}
runs:
using: "composite"
steps:
- name: "Build command."
id: command
run: |
cd "${{ inputs.workingDir }}"
mkdir -p "$(dirname '${{ inputs.name }}')"
COMMAND="zip -${{ inputs.compressionLevel }} -Z ${{ inputs.compressionMethod }} ${{ inputs.additionalArgs }}"
if [[ "${{ inputs.recursive }}" == "true" ]]; then
COMMAND="$COMMAND -r"
fi
if [[ "${{ inputs.quiet }}" == "true" ]]; then
COMMAND="$COMMAND -q"
fi
NAME="${{ inputs.name }}"
NAME="${NAME/ /\\ }"
FILES="${{ inputs.files }}"
FILES="${FILES/ /\\ }"
COMMAND="$COMMAND $NAME $FILES"
echo "Compressing with: $COMMAND"
echo "::set-output name=command::$COMMAND"
echo "::set-output name=name::${{ inputs.name }}"
shell: bash
- name: "Compress archive."
id: compress
uses: act/common/distros/rockylinux@master
with:
workingDir: ${{ inputs.workingDir }}
args: ${{ steps.command.outputs.command }}

View File

@@ -0,0 +1,30 @@
name: download
description: "Download a file from a URL."
inputs:
url:
description: "Url to download from."
required: true
outputFile:
description: "Output file of the download."
required: false
default: ""
outputs:
file:
description: "The path of the downloaded file."
value: ${{ steps.download.outputs.file }}
runs:
using: "composite"
steps:
- run: cp -f ${{ github.action_path }}/download.sh _download.sh
shell: bash
- name: "Download file."
id: download
uses: act/common/distros/rockylinux@master
with:
args: sh "_download.sh" "${{ inputs.url }}" "${{ inputs.outputFile }}"
- run: rm _download.sh
shell: bash
- name: "Own artifacts."
uses: act/common/utils/chown@master
with:
file: ${{ steps.download.outputs.file }}

View File

@@ -0,0 +1,8 @@
#!/bin/sh
URL="$1"
OUTPUT_FILE="$2"
if [[ -z "$OUTPUT_FILE" ]]; then
OUTPUT_FILE="$(basename $URL)"
fi
wget $URL -O "$OUTPUT_FILE"
echo "::set-output name=file::$OUTPUT_FILE"

45
utils/extract/action.yaml Normal file
View File

@@ -0,0 +1,45 @@
name: extract
description: "Extract a compressed file."
inputs:
file:
description: "File to extract."
required: true
outputDir:
description: "Directory to extract to."
required: false
default: ""
prefixArgs:
description: "Additional arguments to pass in early."
required: false
additionalArgs:
description: "Additional arguments to pass in."
required: false
deleteSource:
description: "Delete the compressed file afterwards."
required: false
default: "false"
runs:
using: "composite"
steps:
- name: "Build command."
id: command
run: |
COMMAND="unzip ${{ inputs.prefixArgs }} -o ${{ inputs.file }} ${{ inputs.additionalArgs }}"
OUTPUT_DIR="${{ inputs.outputDir }}"
if [[ -n "$OUTPUT_DIR" ]]; then
COMMAND="$COMMAND" -d "$OUTPUT_DIR"
fi
echo "::set-output name=command::$COMMAND"
shell: bash
- name: "Convert file."
id: convert
uses: act/common/distros/busybox@master
with:
args: ${{ steps.command.outputs.command }}
- name: "Delete source."
run: |
if [[ ${{ inputs.deleteSource }} != "true" ]]; then
return
fi
rm ${{ inputs.file }}
shell: bash