11import { add_subcommand } from "./add" ;
22import { remove_subcommand } from "./remove" ;
33
4- import { ANSI , WrappedTerminal } from "../../term_ctl" ;
4+ import { ANSI , type WrappedTerminal } from "../../term_ctl" ;
55import type { Program } from "../../types" ;
66import type { AbstractFileSystem } from "../../filesystem" ;
77import { list_subcommand } from "./list" ;
88import { info_subcommand } from "./info" ;
99import { browse_subcommand } from "./browse" ;
1010import { helper_completion_options } from "../core/ash/tab_completion" ;
11- import { Kernel } from "../../kernel" ;
12- import { AbstractShell } from "../../abstract_shell" ;
11+
12+ import type { Kernel , SpawnResult } from "../../kernel" ;
13+ import type { AbstractShell } from "../../abstract_shell" ;
1314
1415
1516const REPO_URL = "https://ollieg.codes/pkg_repo" ;
@@ -462,9 +463,11 @@ export const triggers = {
462463 const data_str = JSON . stringify ( data ) ;
463464
464465 console . log ( `Processing install trigger ${ trigger_name } with exec ${ trigger . install_exec } and args [${ pkg_name } , ${ pkg_version } , ${ data_str } ]` ) ;
465- const spawn_result = kernel . spawn ( trigger . install_exec , [ pkg_name , pkg_version , data_str ] , shell ) ;
466+
467+ let spawn_result : SpawnResult ;
466468
467469 try {
470+ spawn_result = kernel . spawn ( trigger . install_exec , [ pkg_name , pkg_version , data_str ] , shell ) ;
468471 const exit_code = await spawn_result . completion ;
469472 if ( exit_code !== 0 ) {
470473 term . writeln ( `${ ANSI . PREFABS . error } Warning: trigger ${ trigger_name } exited with code ${ exit_code } .${ ANSI . STYLE . reset_all } ` ) ;
@@ -473,7 +476,10 @@ export const triggers = {
473476 spawn_result . process . kill ( exit_code ) ;
474477 } catch ( e ) {
475478 term . writeln ( `${ ANSI . PREFABS . error } Warning: trigger ${ trigger_name } failed: ${ e } .${ ANSI . STYLE . reset_all } ` ) ;
476- spawn_result . process . kill ( - 1 ) ;
479+
480+ if ( spawn_result ) {
481+ spawn_result . process . kill ( - 1 ) ;
482+ }
477483 }
478484
479485 return true ;
@@ -496,9 +502,11 @@ export const triggers = {
496502 const data_str = JSON . stringify ( data ) ;
497503
498504 console . log ( `Processing uninstall trigger ${ trigger_name } with exec ${ trigger . uninstall_exec } and args [${ pkg_name } , ${ pkg_version } , ${ data_str } ]` ) ;
499- const spawn_result = kernel . spawn ( trigger . uninstall_exec , [ pkg_name , pkg_version , data_str ] , shell ) ;
505+
506+ let spawn_result : SpawnResult ;
500507
501508 try {
509+ spawn_result = kernel . spawn ( trigger . uninstall_exec , [ pkg_name , pkg_version , data_str ] , shell ) ;
502510 const exit_code = await spawn_result . completion ;
503511 if ( exit_code !== 0 ) {
504512 term . writeln ( `${ ANSI . PREFABS . error } Warning: trigger ${ trigger_name } exited with code ${ exit_code } .${ ANSI . STYLE . reset_all } ` ) ;
@@ -507,7 +515,10 @@ export const triggers = {
507515 spawn_result . process . kill ( exit_code )
508516 } catch ( e ) {
509517 term . writeln ( `${ ANSI . PREFABS . error } Warning: trigger ${ trigger_name } failed: ${ e } .${ ANSI . STYLE . reset_all } ` ) ;
510- spawn_result . process . kill ( - 1 ) ;
518+
519+ if ( spawn_result ) {
520+ spawn_result . process . kill ( - 1 ) ;
521+ }
511522 }
512523
513524 return true ;
0 commit comments