Skip to content

Update deskflow

Update deskflow #400

# 2024 Chris Rizzitello <[email protected]>
# Simple job to check if latest tag on deskflow/deskflow was updated
# Update the cask deskflow with the new version and shas then commit it to this repo
# Cask recipe must have sha256 line on a single line for this to work
# Ex: sha256sum arm: "quotedshaArm" intel: "quotedshaforIntel"
# The Update check does not check the tweak value the deskflow recipe uses only the M.m.p
# Tweak should always be 0 on the new version (not enfored here just ignored)
name: Update deskflow
on:
workflow_dispatch:
schedule:
- cron: "3,23,43 * * * *"
jobs:
update-deskflow:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Update deskflow cask
shell: bash
run: |
export oldVersion=$(cat Casks/d/deskflow.rb | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
export oldMajor=$(echo $oldVersion | grep -oE '^[0-9]+')
export oldMinor=$(echo $oldVersion | grep -oE '\.[0-9]+\.' | sed -e 's/\.//g')
export oldPatch=$(echo $oldVersion | grep -oE '[0-9]+$')
curl -s https://api.github.com/repos/deskflow/deskflow/releases/latest | awk -F\" '/browser_download_url/{print $(NF-1)}' | grep sums | wget -q -i -
export newVersion=$(cat sums.txt | grep Build: | sed -e 's/Build: //g' | grep -oE "[0-9]+\.[0-9]+\.[0-9]+")
export newMajor=$(echo $newVersion | grep -oE '^[0-9]+')
export newMinor=$(echo $newVersion | grep -oE '\.[0-9]+\.' | sed -e 's/\.//g')
export newPatch=$(echo $newVersion | grep -oE '\.[0-9]+\.[0-9]+' | grep -oE '[0-9]+$')
# These will be written into the files
export A_SHA=$(cat sums.txt | grep macos-arm64.dmg | sed -e 's/des.*//g' | sed -e 's/ //g')
export I_SHA=$(cat sums.txt | grep macos-x86_64.dmg | sed -e 's/des.*//g' | sed -e 's/ //g')
if [ "$oldVersion" == "$newVersion" ]; then
echo " Same Version"
elif [[ ($oldMajor -gt $newMajor) || ($oldMajor -eq $newMajor && $oldMinor -gt $newMinor) || ($oldMajor -eq $newMajor && $oldMinor -eq $newMinor && $oldPatch -gt $newPatch) ]]; then
echo "Current version is newer $oldMajor.$oldMinor.$oldPatch > $newMajor.$newMinor.$newPatch"
else
echo "New Version $newVersion"
sed -i "s/version \".*\"/version \"$newVersion\"/" Casks/d/deskflow.rb
sed -i "s/sha256 arm:.*\".*\", intel: \".*\"/sha256 arm: \"$A_SHA\", intel: \"$I_SHA\"/" Casks/d/deskflow.rb
git config --global user.name "${{github.actor}}"
git config --global user.email "${{github.actor}}@users.noreply.github.com"
git commit Casks/d/deskflow.rb -m "deskflow: $newVersion"
git push -u origin HEAD
fi