Skip to content

Commit 769e104

Browse files
committed
Release 0.1.3
1 parent 36f5182 commit 769e104

4 files changed

Lines changed: 27 additions & 1 deletion

File tree

install.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,23 @@ resolve_latest_version() {
9393
strip_v "$version"
9494
}
9595

96+
resolve_version_from_archive_url() {
97+
[ -n "$ARCHIVE_URL" ] || return 1
98+
archive_name=$(printf '%s\n' "$ARCHIVE_URL" | sed 's#^.*\/##; s/[?#].*$//')
99+
version=$(printf '%s\n' "$archive_name" | sed -n 's/^jaipilot-\([0-9][0-9.]*\)-.*\.tar\.gz$/\1/p')
100+
[ -n "$version" ] || return 1
101+
printf '%s\n' "$version"
102+
}
103+
96104
resolve_version() {
97105
if [ -n "$VERSION" ]; then
98106
printf '%s\n' "$VERSION"
99107
return
100108
fi
109+
if version=$(resolve_version_from_archive_url); then
110+
printf '%s\n' "$version"
111+
return
112+
fi
101113
resolve_latest_version
102114
}
103115

scripts/smoke-test-install.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,16 @@ fi
9696
[ -n "${TAR_GZ:-}" ] || die "Could not find a JAIPilot tar.gz distribution under $DIST_DIR"
9797
[ -f "$TAR_GZ" ] || die "Missing distribution archive: $TAR_GZ"
9898
CHECKSUM_FILE="$TAR_GZ.sha256"
99+
INSTALL_VERSION=${VERSION:-$(basename "$TAR_GZ" | sed -n "s/^jaipilot-\\([0-9][0-9.]*\\)-$RESOLVED_CLASSIFIER\\.tar\\.gz$/\\1/p")}
100+
[ -n "${INSTALL_VERSION:-}" ] || die "Could not determine the distribution version from $TAR_GZ"
99101

100102
printf '%s %s\n' "$(compute_sha256 "$TAR_GZ")" "$(basename "$TAR_GZ")" > "$CHECKSUM_FILE"
101103

102104
rm -rf "$SMOKE_DIR"
103105
mkdir -p "$SMOKE_DIR"
104106

105107
"$REPO_ROOT/install.sh" \
108+
--version "$INSTALL_VERSION" \
106109
--archive-url "file://$TAR_GZ" \
107110
--checksum-url "file://$CHECKSUM_FILE" \
108111
--bin-dir "$SMOKE_DIR/bin" \

src/main/java/com/jaipilot/cli/update/UpdateService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public UpdateInstallResult installVersion(String version, Duration timeout) {
114114
"Self-update is only available for JAIPilot installs managed by the installer."
115115
));
116116

117-
String currentVersion = VersionComparator.normalize(JaiPilotVersionProvider.resolveVersion());
117+
String currentVersion = resolveInstalledVersion(installation);
118118
String targetVersion = VersionComparator.normalize(version);
119119

120120
if (!installation.legacyLayout() && VersionComparator.compare(currentVersion, targetVersion) == 0) {
@@ -186,6 +186,16 @@ private void downloadAndInstall(InstallationLayout installation, String version,
186186
}
187187
}
188188

189+
private String resolveInstalledVersion(InstallationLayout installation) {
190+
if (installation != null && !installation.legacyLayout()) {
191+
Path payloadDir = installation.activePayloadDir();
192+
if (payloadDir != null && payloadDir.getFileName() != null) {
193+
return VersionComparator.normalize(payloadDir.getFileName().toString());
194+
}
195+
}
196+
return VersionComparator.normalize(JaiPilotVersionProvider.resolveVersion());
197+
}
198+
189199
private String resolvePlatform() {
190200
return resolveOs() + "-" + resolveArch();
191201
}

src/test/java/com/jaipilot/cli/update/UpdateServiceTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ void installVersionIsNoOpWhenAlreadyCurrentOnVersionedLayout() throws Exception
6767

6868
assertFalse(result.changed());
6969
assertFalse(result.migratedLegacyLayout());
70+
assertEquals("0.1.2", result.previousVersion());
7071
assertEquals("0.1.2", result.installedVersion());
7172
}
7273

0 commit comments

Comments
 (0)