@@ -27,14 +27,14 @@ const execAsync = util.promisify(cp.exec);
27
27
* Check if build dependencies are available using the extension's built-in check
28
28
*/
29
29
export async function checkBuildDependencies (
30
- context : vscode . ExtensionContext ,
31
- wsConfig : WorkspaceConfig ,
30
+ context : vscode . ExtensionContext ,
31
+ wsConfig : WorkspaceConfig ,
32
32
globalConfig : GlobalConfig
33
33
) : Promise < boolean > {
34
34
try {
35
35
// Use the extension's own build dependency checker
36
36
const result = await checkIfToolsAvailable ( context , wsConfig , globalConfig , false ) ;
37
-
37
+
38
38
if ( result ) {
39
39
console . log ( '✓ Build dependencies are available' ) ;
40
40
return true ;
@@ -57,7 +57,7 @@ export async function checkZephyrToolsAvailable(): Promise<boolean> {
57
57
// Just check for basic tools as a fallback
58
58
await execAsync ( 'python --version' ) ;
59
59
await execAsync ( 'cmake --version' ) ;
60
-
60
+
61
61
console . log ( '✓ Basic development tools are available' ) ;
62
62
return true ;
63
63
} catch ( error ) {
@@ -112,8 +112,9 @@ export async function monitorWorkspaceSetup(setupType: string = "workspace"): Pr
112
112
let pythonEnvironmentSetup = false ;
113
113
let westUpdated = false ;
114
114
let packagesInstalled = false ;
115
+ let sdkInstalled = false ;
115
116
116
- while ( ! packagesInstalled ) {
117
+ while ( ! sdkInstalled ) {
117
118
const extension = vscode . extensions . getExtension ( "mylonics.zephyr-ide" ) ;
118
119
let wsConfig = null ;
119
120
@@ -137,18 +138,23 @@ export async function monitorWorkspaceSetup(setupType: string = "workspace"): Pr
137
138
pythonEnvironmentSetup = true ;
138
139
}
139
140
140
- if ( wsConfig . activeSetupState ?. packagesInstalled ) {
141
+ if ( ! packagesInstalled && wsConfig . activeSetupState ?. packagesInstalled ) {
141
142
packagesInstalled = true ;
142
143
console . log ( " ✅ Packages installed completed" ) ;
144
+ }
145
+
146
+ if ( packagesInstalled && await vscode . commands . executeCommand ( "zephyr-ide.is-sdk-installed" ) ) {
147
+ sdkInstalled = true ;
148
+ console . log ( " ✅ SDK installed" ) ;
143
149
console . log ( `🎉 All ${ setupType } setup stages completed!` ) ;
144
150
break ;
145
151
}
146
152
}
147
153
148
154
// Progress update every 30 seconds
149
155
if ( waitTime % 30000 === 0 && waitTime > 0 ) {
150
- const completedStages = [ initialSetupComplete , pythonEnvironmentSetup , westUpdated , packagesInstalled ] . filter ( Boolean ) . length ;
151
- console . log ( `⏳ ${ setupType } setup in progress... (${ waitTime / 1000 } s elapsed, ${ completedStages } /4 stages completed)` ) ;
156
+ const completedStages = [ initialSetupComplete , pythonEnvironmentSetup , westUpdated , packagesInstalled , sdkInstalled ] . filter ( Boolean ) . length ;
157
+ console . log ( `⏳ ${ setupType } setup in progress... (${ waitTime / 1000 } s elapsed, ${ completedStages } /5 stages completed)` ) ;
152
158
}
153
159
154
160
await new Promise ( ( resolve ) => setTimeout ( resolve , checkInterval ) ) ;
0 commit comments