From 0375315460365ab14afbdd75e5377148d86800c0 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Sun, 8 Jan 2023 12:32:28 +1100 Subject: [PATCH] feat: update eye and support its new semantic versioning --- package.json | 4 ++-- scripts/fetch-eye.ts | 6 ++++-- scripts/update-eye.sh | 21 ++++++++++----------- scripts/update.ts | 6 +++--- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index a743bee9..66fc85ff 100644 --- a/package.json +++ b/package.json @@ -97,8 +97,8 @@ }, "config": { "eye": { - "name": "v23.107.1359", - "sha": "a9ac74edbd1f86a1cb20338712a8afbb97d53153" + "name": "v2.0.1", + "url": "https://api.github.com/repos/eyereasoner/eye/releases/88218657" } }, "dependencies": { diff --git a/scripts/fetch-eye.ts b/scripts/fetch-eye.ts index 2f3a3260..85c05411 100644 --- a/scripts/fetch-eye.ts +++ b/scripts/fetch-eye.ts @@ -4,10 +4,12 @@ import { fetch } from 'cross-fetch'; import * as fs from 'fs'; import path from 'path'; -const EYE_COMMIT = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json')).toString()).config.eye.sha; +const EYE_URL = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json')).toString()).config.eye.url; (async () => { - const res = (await fetch(`https://raw.githubusercontent.com/eyereasoner/eye/${EYE_COMMIT}/eye.pl`)); + const releaseInfo = (await (await fetch(EYE_URL)).json()); + const res = (await fetch(`https://raw.githubusercontent.com/eyereasoner/eye/${releaseInfo.tag_name}/eye.pl`)); + if (res.status === 200) { fs.writeFileSync(path.join(__dirname, '..', 'eye', 'eye.pl'), await res.text()); } else { diff --git a/scripts/update-eye.sh b/scripts/update-eye.sh index b356de85..22a17e77 100755 --- a/scripts/update-eye.sh +++ b/scripts/update-eye.sh @@ -1,19 +1,18 @@ -before=$(git diff HEAD~1 | grep "\- \"name\"") -after=$(git diff HEAD~1 | grep "\+ \"name\"") +before=$(git show HEAD~1:./package.json | jq .config.eye.name) +current=$(cat ./package.json | jq .config.eye.name) -# Use change in eye version to determine whether -# this needs to be a major, minor or patch update -if [ ${before:17:2} != ${after:17:2} ]; then - version="breaking" -elif [ ${before:20:4} != ${after:20:4} ]; then +readarray -d . -t before <<<"${before:2:-1}" +readarray -d . -t after <<<"${current:2:-1}" + +if [ ${before[0]} != ${after[0]} ]; then + version="BREAKING CHANGE" +elif [ ${before[1]} != ${after[1]} ]; then version="feat" -elif [ ${before:25:4} != ${after:25:4} ]; then +elif [ ${before[2]} != ${after[2]} ]; then version="fix" fi -version="feat" - git config --global user.name 'Jesse Wright' git config --global user.email '63333554+jeswr@users.noreply.github.com' -git commit -am "$version: update eye" +git commit -am "$version: update to eye ${current:1:-1}" git push diff --git a/scripts/update.ts b/scripts/update.ts index d3191b7d..0b0e72ab 100644 --- a/scripts/update.ts +++ b/scripts/update.ts @@ -5,11 +5,11 @@ import * as fs from 'fs'; import path from 'path'; (async () => { - const res = (await fetch('https://api.github.com/repos/eyereasoner/eye/tags')); + const res = (await fetch('https://api.github.com/repos/eyereasoner/eye/releases/latest')); if (res.status === 200) { const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json')).toString()); - const [tag] = await res.json(); - pkg.config.eye = { name: tag.name, sha: tag.commit.sha }; + const tag = await res.json(); + pkg.config.eye = { name: tag.name, url: tag.url }; fs.writeFileSync( path.join(__dirname, '..', 'package.json'), `${JSON.stringify(pkg, null, 2)}\n`,