install.fairie/.config/taskfiles/install/Taskfile-ventoy.yml
Brian Zalewski f42899b107 Latest
2022-12-24 15:04:59 -05:00

99 lines
3.8 KiB
YAML

---
version: '3'
vars:
VENTOY_DOWNLOAD_CONFIG_URL: https://gitlab.com/megabyte-labs/jumpusb/-/raw/master/local/distros.json
VENTOY_USB_PATH:
sh: |
if [ -d /run/media/user/Ventoy ]; then
echo "/run/media/user/Ventoy"
else
echo "./jumpusb-fs"
fi
tasks:
clone:
cmds:
- |
mkdir -p {{.VENTOY_USB_PATH}}
cd {{.VENTOY_USB_PATH}}
git init
git remote add origin https://gitlab.com/megabyte-labs/jumpusb.git
git fetch
git pull origin master
download:
deps:
- :install:software:axel
- :install:software:p7zip
todo: Add validation of md5/sha256 and add update functionality to VENTOY_DOWNLOAD_CONFIG_URL
cmds:
- task: setup:persistence
- curl -sSL '{{.VENTOY_DOWNLOAD_CONFIG_URL}}' > .ventoy.json
- |
jq -c '.distros[]' .ventoy.json | while read VENTOY_OS; do
MIRROR_COUNT="$(jq -r -n --argjson in "$VENTOY_OS" '$in.mirrors | length')"
VENTOY_URL="$(jq -r -n --argjson in "$VENTOY_OS" '$in.mirrors[]')"
if [ "$MIRROR_COUNT" == '1' ]; then
VENTOY_URL_AXEL="$VENTOY_URL"
else
VENTOY_URL_AXEL="$(jq -r -n --argjson in "$VENTOY_OS" '$in.mirrors | join(" ")')"
fi
VENTOY_MD5="$(jq -r -n --argjson in "$VENTOY_OS" '$in.md5')"
VENTOY_PATH="$(jq -r -n --argjson in "$VENTOY_OS" '$in.path')"
VENTOY_PER_BASE="$(jq -r -n --argjson in "$VENTOY_OS" '$in.persistence_base')"
VENTOY_PER_FILE="$(jq -r -n --argjson in "$VENTOY_OS" '$in.persistence_file')"
mkdir -p "$(dirname ./jumpusb-fs/$VENTOY_PATH)"
if [ ! -f "./jumpusb-fs/$VENTOY_PATH" ] || [ -f "./jumpusb-fs/${VENTOY_PATH}.st" ]; then
mkdir -p "$(dirname ./jumpusb-fs/${VENTOY_PATH})"
axel -o "./jumpusb-fs/${VENTOY_PATH}" -n 14 $VENTOY_URL_AXEL
if [[ "$VENTOY_URL" == *.gz ]]; then
mv "./jumpusb-fs/${VENTOY_PATH}" "./jumpusb-fs/${VENTOY_PATH}.gz"
gzip -d "./jumpusb-fs/${VENTOY_PATH}.gz"
elif [[ "$VENTOY_URL" == *.bz2 ]]; then
mv "./jumpusb-fs/${VENTOY_PATH}" "./jumpusb-fs/${VENTOY_PATH}.bz2"
bzip2 -d "./jumpusb-fs/${VENTOY_PATH}.bz2"
fi
fi
if [ "$VENTOY_PER_FILE" != 'null' ] && [ ! -f "./jumpusb-fs/persistence/$VENTOY_PER_FILE" ]; then
7z -y x "./jumpusb-fs/persistence/$VENTOY_PER_BASE"
UNCOMPRESSED_FILE="$(echo $VENTOY_PER_BASE | sed 's/.7z$//')"
mv "$UNCOMPRESSED_FILE" "./jumpusb-fs/persistence/$VENTOY_PER_FILE"
fi
done
install:
cmds:
- task: install:disk
install:detect:usb:
summary: |
# Detects the Drive Path of USB Last Inserted
This task detects the drive path of the last USB that was inserted. After
it detects the drive path, it writes the path to the file that is passed in
as the ANSWER_FILE Go template variable.
cmds:
- |
# TODO: Add bash script / darwin script that detects the drive path of
install:disk:
vars:
TARGET_DRIVE: '{{if .CLI_ARGS}}{{.CLI_ARGS}}{{else}}{{.TARGET_DRIVE}}{{end}}'
cmds:
- curl -sSL https://github.com/ventoy/Ventoy/releases/download/v1.0.74/ventoy-1.0.74-linux.tar.gz > ventoy.tar.gz
- tar -xzvf ventoy.tar.gz
- .config/log info 'Running sudo command `sudo sh ventoy/Ventoy2Disk.sh -ui {{.TARGET_DRIVE}}`'
- sudo sh ventoy/Ventoy2Disk.sh -ui {{.TARGET_DRIVE}}
- rm -rf ventoy
status:
- '[ -z "{{.TARGET_DRIVE}}" ]'
setup:persistence:
cmds:
- curl -sSL https://github.com/ventoy/backend/releases/download/v5.0/images.zip > images.zip
- unzip images.zip
- rm images.zip
- mkdir -p {{.VENTOY_USB_PATH}}/persistence
- mv images/* {{.VENTOY_USB_PATH}}/persistence
- rm -rf images