@@ -50,15 +50,15 @@ export function FortranDocumentSelector(folder?: vscode.WorkspaceFolder) {
50
50
* @param msg optional message for installing said package
51
51
* @param toolType type of tool, supports `Python` (through pip) and 'VSExt'
52
52
*/
53
- export function promptForMissingTool (
53
+ export async function promptForMissingTool (
54
54
tool : string ,
55
55
msg : string ,
56
56
toolType : string ,
57
57
logger ?: LoggingService
58
58
) {
59
59
const items = [ 'Install' ] ;
60
60
return new Promise ( ( resolve , reject ) => {
61
- resolve (
61
+ return resolve (
62
62
vscode . window . showInformationMessage ( msg , ...items ) . then ( selected => {
63
63
if ( selected === 'Install' ) {
64
64
switch ( toolType ) {
@@ -92,22 +92,22 @@ export function promptForMissingTool(
92
92
* @param logger `optional` logging channel for output
93
93
*/
94
94
export function installPythonTool ( pyPackage : string , logger ?: LoggingService ) {
95
- const installProcess = cp . spawn ( 'pip' , 'install --user --upgrade ' . concat ( pyPackage ) . split ( ' ' ) ) ;
96
- installProcess . stdout . on ( 'data' , data => {
97
- logger . logInfo ( `pip install: ${ data } ` ) ;
98
- } ) ;
99
- installProcess . on ( 'exit' , ( code , signal ) => {
100
- if ( code !== 0 ) {
101
- logger . logError (
102
- `Python package ${ pyPackage } failed to install with code: ${ code } , signal: ${ signal } `
103
- ) ;
104
- } else {
105
- logger . logInfo ( `Successfully installed ${ pyPackage } .` ) ;
106
- }
107
- } ) ;
108
- installProcess . on ( 'error' , err => {
109
- logger . logError ( ` ${ err } `) ;
110
- } ) ;
95
+ const installProcess = cp . spawnSync (
96
+ 'pip' ,
97
+ 'install --user --upgrade ' . concat ( pyPackage ) . split ( ' ' )
98
+ ) ;
99
+ if ( installProcess . error ) {
100
+ logger . logError (
101
+ `Python package ${ pyPackage } failed to install with code: ${ installProcess . error } `
102
+ ) ;
103
+ }
104
+ if ( installProcess . stdout ) {
105
+ const sep = '-' . repeat ( 80 ) ;
106
+ logger . logInfo (
107
+ `pip install --user --upgrade ${ pyPackage } :\n ${ sep } \n ${ installProcess . stdout } ${ sep } `
108
+ ) ;
109
+ logger . logInfo ( `pip install was successful `) ;
110
+ }
111
111
}
112
112
113
113
/**
0 commit comments