fix: resolve latest release dynamically in installers (was hardcoded v0.2.0)
CI / Lint (push) Failing after 9m35s
CI / Test (push) Failing after 6m4s
CI / Build (darwin/amd64) (push) Skipped
CI / Build (linux/amd64) (push) Skipped
CI / Build (windows/amd64) (push) Skipped
CI / Build (darwin/arm64) (push) Skipped
CI / Build (linux/arm64) (push) Skipped
CI / Build (windows/arm64) (push) Skipped
CI / Release (push) Skipped
CI / Lint (push) Failing after 9m35s
CI / Test (push) Failing after 6m4s
CI / Build (darwin/amd64) (push) Skipped
CI / Build (linux/amd64) (push) Skipped
CI / Build (windows/amd64) (push) Skipped
CI / Build (darwin/arm64) (push) Skipped
CI / Build (linux/arm64) (push) Skipped
CI / Build (windows/arm64) (push) Skipped
CI / Release (push) Skipped
This commit is contained in:
+14
-1
@@ -8,8 +8,21 @@
|
|||||||
|
|
||||||
$ErrorActionPreference = 'Stop'
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
$Version = if ($env:CLIP_SYNC_VERSION) { $env:CLIP_SYNC_VERSION } else { 'v0.2.0' }
|
$Version = if ($env:CLIP_SYNC_VERSION) { $env:CLIP_SYNC_VERSION } else { 'latest' }
|
||||||
$Repo = 'https://git.dracodev.net/Projets/clip-sync'
|
$Repo = 'https://git.dracodev.net/Projets/clip-sync'
|
||||||
|
$ApiBase = 'https://git.dracodev.net/api/v1/repos/Projets/clip-sync'
|
||||||
|
|
||||||
|
# ── Resolve version ───────────────────────────────────────────────────
|
||||||
|
|
||||||
|
if ($Version -eq 'latest') {
|
||||||
|
try {
|
||||||
|
$release = Invoke-RestMethod "$ApiBase/releases/latest" -UseBasicParsing
|
||||||
|
$Version = $release.tag_name
|
||||||
|
if (-not $Version) { throw 'no tag_name' }
|
||||||
|
} catch {
|
||||||
|
throw "clip-sync: no release found. Publish one (git tag v0.2.0 && git push origin v0.2.0), or build from source: git clone $Repo && cd clip-sync && make install"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# ── Detect architecture ───────────────────────────────────────────────
|
# ── Detect architecture ───────────────────────────────────────────────
|
||||||
|
|
||||||
|
|||||||
+19
-1
@@ -8,12 +8,27 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
REPO="https://git.dracodev.net/Projets/clip-sync"
|
REPO="https://git.dracodev.net/Projets/clip-sync"
|
||||||
VERSION="${CLIP_SYNC_VERSION:-v0.2.0}"
|
API_BASE="https://git.dracodev.net/api/v1/repos/Projets/clip-sync"
|
||||||
|
VERSION="${CLIP_SYNC_VERSION:-latest}"
|
||||||
BINARY="clip-sync"
|
BINARY="clip-sync"
|
||||||
INSTALL_DIR="${HOME}/.local/bin"
|
INSTALL_DIR="${HOME}/.local/bin"
|
||||||
CONFIG_DIR="${HOME}/.config/clip-sync"
|
CONFIG_DIR="${HOME}/.config/clip-sync"
|
||||||
CONFIG_FILE="${CONFIG_DIR}/peers.toml"
|
CONFIG_FILE="${CONFIG_DIR}/peers.toml"
|
||||||
|
|
||||||
|
# ── Resolve version ────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
resolve_version() {
|
||||||
|
if [ "$VERSION" = "latest" ]; then
|
||||||
|
VERSION="$(curl -fsSL "${API_BASE}/releases/latest" \
|
||||||
|
| sed -n 's/.*"tag_name":"\([^"]*\)".*/\1/p' | head -n1)"
|
||||||
|
if [ -z "$VERSION" ]; then
|
||||||
|
echo "clip-sync: no release found. Publish one (git tag v0.2.0 && git push origin v0.2.0)" >&2
|
||||||
|
echo " or build from source: git clone ${REPO} && cd clip-sync && make install" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# ── Detect platform ────────────────────────────────────────────────────
|
# ── Detect platform ────────────────────────────────────────────────────
|
||||||
|
|
||||||
detect_platform() {
|
detect_platform() {
|
||||||
@@ -127,9 +142,12 @@ main() {
|
|||||||
|
|
||||||
mkdir -p "${INSTALL_DIR}"
|
mkdir -p "${INSTALL_DIR}"
|
||||||
|
|
||||||
|
resolve_version
|
||||||
|
|
||||||
local platform
|
local platform
|
||||||
platform=$(detect_platform)
|
platform=$(detect_platform)
|
||||||
echo "clip-sync: detected platform: ${platform}"
|
echo "clip-sync: detected platform: ${platform}"
|
||||||
|
echo "clip-sync: version: ${VERSION}"
|
||||||
|
|
||||||
download_binary "${platform}"
|
download_binary "${platform}"
|
||||||
create_config
|
create_config
|
||||||
|
|||||||
Reference in New Issue
Block a user