Skip to content

Commit abb68db

Browse files
committed
fix: Fixed terraform latest version and uv global parameter
1 parent 4ee88af commit abb68db

4 files changed

Lines changed: 20 additions & 6 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "default",
3-
"version": "1.1.0-beta.8",
3+
"version": "1.1.0-beta.12",
44
"description": "Default plugin for Codify - provides 50+ declarative resources for managing development tools and system configuration across macOS and Linux",
55
"main": "dist/index.js",
66
"scripts": {

src/resources/python/uv/global-parameter.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,19 @@ export class UvGlobalParameter extends StatefulParameter<UvConfig, string> {
3030
return null;
3131
}
3232

33-
// Symlink target is a path like .../cpython-3.12.3-.../bin/python3.12
34-
const match = data.trim().match(/cpython-(\d+\.\d+(?:\.\d+)?)/);
33+
const { status: versionStatus, data: versionData } = await $.spawnSafe('python --version');
34+
if (versionStatus === SpawnStatus.ERROR) {
35+
return null;
36+
}
3537

36-
return match ? match[1] : null;
38+
const match = versionData.trim().match(/Python\s+(\S+)/);
39+
return match ? match[1] ?? null : null;
3740
}
3841

3942
override async add(version: string): Promise<void> {
4043
const $ = getPty();
41-
await $.spawn(`uv python install ${version} --default`, { interactive: true });
44+
await $.spawnSafe(`uv python install ${version} --default`, { interactive: true });
45+
await $.spawnSafe('uv python update-shell', { interactive: true })
4246
}
4347

4448
override async modify(newVersion: string): Promise<void> {

src/resources/python/uv/uv.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ export class UvResource extends Resource<UvConfig> {
7676
},
7777
operatingSystems: [OS.Darwin, OS.Linux],
7878
schema,
79+
removeStatefulParametersBeforeDestroy: true,
7980
parameterSettings: {
8081
pythonVersions: { type: 'stateful', definition: new UvPythonVersionsParameter(), order: 1 },
8182
global: { type: 'stateful', definition: new UvGlobalParameter(), order: 2 },

src/resources/terraform/terraform.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ export class TerraformResource extends Resource<TerraformConfig> {
6565
parameterSettings: {
6666
directory: {
6767
type: 'directory',
68+
},
69+
version: {
70+
type: 'version',
6871
}
6972
},
7073
importAndDestroy:{
@@ -95,8 +98,14 @@ export class TerraformResource extends Resource<TerraformConfig> {
9598
if (parameters.version) {
9699
const versionQuery = await $.spawn('terraform version -json');
97100
const versionJson = JSON.parse(versionQuery.data.trim().replaceAll('\n', '')) as TerraformVersionInfo;
101+
const installedVersion = versionJson.terraform_version;
98102

99-
results.version = versionJson.terraform_version;
103+
if (parameters.version === 'latest') {
104+
const latestInfo = await this.getLatestTerraformInfo();
105+
results.version = semver.eq(installedVersion, latestInfo.version) ? 'latest' : installedVersion;
106+
} else {
107+
results.version = installedVersion;
108+
}
100109
}
101110

102111
return results;

0 commit comments

Comments
 (0)