Commit 7afefba3 authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

feat: Improve Script::run error handling

parent 39c96419
Loading
Loading
Loading
Loading
Loading
+121 −121
Original line number Diff line number Diff line
@@ -390,24 +390,24 @@ FN:781,Script::maybe_create_conda_environment
FN:814,Script::maybe_git_clone
FN:821,Script::python_default
FN:834,Script::run
FN:901,Script::with_current_dir
FN:927,Script::with_environment
FN:932,Script::with_envs
FN:941,StringTemplate::new
FN:950,StringTemplate::expand
FN:957,StringTemplate::get_variable
FN:987,StringTemplate::is_handlebars
FN:1011,StringTemplate::remove_spaces
FN:1021,add_forward_slash
FN:1029,get_conda_environment_list
FN:1065,get_conda_environment_name
FN:1097,get_extension
FN:1101,get_parent
FN:1114,has_extension
FN:1124,is_stdin_piped
FN:1138,is_stdout_piped
FN:1156,read_file
FN:1170,to_string
FN:904,Script::with_current_dir
FN:930,Script::with_environment
FN:935,Script::with_envs
FN:944,StringTemplate::new
FN:953,StringTemplate::expand
FN:960,StringTemplate::get_variable
FN:990,StringTemplate::is_handlebars
FN:1014,StringTemplate::remove_spaces
FN:1024,add_forward_slash
FN:1032,get_conda_environment_list
FN:1068,get_conda_environment_name
FN:1100,get_extension
FN:1104,get_parent
FN:1117,has_extension
FN:1127,is_stdin_piped
FN:1141,is_stdout_piped
FN:1159,read_file
FN:1173,to_string
FNF:61
FNDA:1,Command::test
FNDA:1,Config::read
@@ -434,7 +434,7 @@ FNDA:0,Label::read
FNDA:0,Label::rejected
FNDA:0,Label::run
FNDA:0,Label::using
FNDA:2,ModuleUri<'_>::from
FNDA:1,ModuleUri<'_>::from
FNDA:1,ModuleUri<'_>::hash
FNDA:0,ModuleUri<'_>::get_whitelist
FNDA:0,ModuleUri<'_>::is_allowed
@@ -446,8 +446,8 @@ FNDA:1,Script::expand_arguments
FNDA:1,Script::expand_arguments_from
FNDA:1,Script::from_template
FNDA:1,Script::from_path
FNDA:1,Script::get_command
FNDA:1,Script::get_arguments
FNDA:2,Script::get_command
FNDA:2,Script::get_arguments
FNDA:0,Script::maybe_create_conda_environment
FNDA:1,Script::maybe_git_clone
FNDA:0,Script::python_default
@@ -497,7 +497,7 @@ DA:383,0
DA:384,0
DA:395,1
DA:396,2
DA:397,3
DA:397,4
DA:399,0
DA:400,0
DA:403,4
@@ -602,9 +602,9 @@ DA:558,0
DA:560,0
DA:561,0
DA:562,0
DA:566,2
DA:567,2
DA:568,3
DA:566,1
DA:567,1
DA:568,2
DA:569,1
DA:570,2
DA:571,0
@@ -615,12 +615,12 @@ DA:578,1
DA:579,1
DA:580,1
DA:581,0
DA:583,2
DA:587,2
DA:588,2
DA:590,2
DA:583,3
DA:587,4
DA:588,4
DA:590,4
DA:591,2
DA:593,1
DA:593,2
DA:596,0
DA:600,0
DA:601,0
@@ -691,17 +691,17 @@ DA:757,0
DA:760,2
DA:761,1
DA:762,1
DA:764,1
DA:765,1
DA:764,2
DA:765,2
DA:766,1
DA:767,1
DA:770,1
DA:771,1
DA:767,2
DA:770,2
DA:771,2
DA:772,1
DA:773,1
DA:774,2
DA:775,1
DA:777,1
DA:774,3
DA:775,2
DA:777,2
DA:781,0
DA:782,0
DA:783,0
@@ -735,24 +735,24 @@ DA:822,0
DA:823,0
DA:831,0
DA:834,1
DA:835,1
DA:836,1
DA:837,2
DA:838,2
DA:839,5
DA:840,1
DA:841,6
DA:842,2
DA:843,1
DA:844,1
DA:845,1
DA:846,1
DA:851,1
DA:852,1
DA:835,2
DA:836,2
DA:837,4
DA:838,4
DA:839,10
DA:840,2
DA:841,12
DA:842,3
DA:843,2
DA:844,2
DA:845,2
DA:846,2
DA:851,4
DA:852,2
DA:854,0
DA:855,0
DA:858,1
DA:859,1
DA:858,2
DA:859,2
DA:860,2
DA:861,5
DA:862,2
@@ -778,82 +778,82 @@ DA:889,2
DA:892,0
DA:893,0
DA:894,0
DA:901,1
DA:902,2
DA:903,1
DA:927,1
DA:928,1
DA:929,1
DA:932,0
DA:933,0
DA:934,0
DA:941,2
DA:943,1
DA:950,1
DA:951,4
DA:952,3
DA:957,1
DA:958,2
DA:959,2
DA:904,1
DA:905,2
DA:906,1
DA:930,1
DA:931,2
DA:932,2
DA:935,0
DA:936,0
DA:937,0
DA:944,2
DA:946,2
DA:953,1
DA:954,4
DA:955,3
DA:960,1
DA:961,2
DA:963,0
DA:987,1
DA:988,2
DA:989,2
DA:962,2
DA:963,1
DA:964,2
DA:966,0
DA:990,1
DA:991,0
DA:993,0
DA:1011,1
DA:1012,2
DA:1013,1
DA:1014,0
DA:1016,4
DA:1017,2
DA:1021,1
DA:1022,2
DA:1023,0
DA:991,2
DA:992,2
DA:993,1
DA:994,0
DA:996,0
DA:1014,1
DA:1015,2
DA:1016,1
DA:1017,0
DA:1019,3
DA:1020,1
DA:1024,1
DA:1025,2
DA:1029,1
DA:1030,1
DA:1031,2
DA:1032,2
DA:1033,5
DA:1036,1
DA:1038,2
DA:1040,4
DA:1065,1
DA:1066,1
DA:1067,1
DA:1068,6
DA:1080,1
DA:1082,0
DA:1097,1
DA:1098,1
DA:1026,0
DA:1028,2
DA:1032,1
DA:1033,1
DA:1034,2
DA:1035,2
DA:1036,5
DA:1039,1
DA:1041,2
DA:1043,4
DA:1068,1
DA:1069,1
DA:1070,1
DA:1071,6
DA:1083,1
DA:1085,0
DA:1100,1
DA:1101,1
DA:1102,3
DA:1114,1
DA:1115,1
DA:1124,0
DA:1125,0
DA:1126,0
DA:1104,1
DA:1105,3
DA:1117,1
DA:1118,1
DA:1127,0
DA:1128,0
DA:1138,0
DA:1139,0
DA:1140,0
DA:1129,0
DA:1131,0
DA:1141,0
DA:1142,0
DA:1156,1
DA:1157,1
DA:1158,3
DA:1143,0
DA:1145,0
DA:1159,1
DA:1160,9
DA:1161,3
DA:1163,1
DA:1164,5
DA:1165,1
DA:1168,2
DA:1170,1
DA:1160,1
DA:1161,6
DA:1162,3
DA:1163,20
DA:1164,8
DA:1166,1
DA:1167,5
DA:1168,1
DA:1171,4
DA:1173,1
DA:1174,4
LF:384
LH:224
end_of_record
+47 −42
Original line number Diff line number Diff line
@@ -831,6 +831,7 @@ impl Script {
        Script::init().command(command).arguments(arguments).build()
    }
    /// Execute script in child process and wait for it to finish, print to stdout and ignore output
    /// TODO: This function should return Option<Vec<String>>
    pub fn run(&self) -> Vec<String> {
        let command = &self.get_command();
        let arguments = self.get_arguments();
@@ -838,14 +839,14 @@ impl Script {
        let envs = self.envs.clone().unwrap_or_default();
        warn!(script = self.to_string(), "=> {}", Label::run());
        let mut output: Vec<String> = vec![];
        let mut cmd = process::Command::new(command)
        if let Ok(mut cmd) = process::Command::new(command)
            .args(arguments.iter())
            .current_dir(current_dir)
            .stdout(process::Stdio::piped())
            .stderr(process::Stdio::piped())
            .envs(envs)
            .spawn()
            .unwrap();
        {
            {
                // stdout
                let stdout = match cmd.stdout.as_mut() {
@@ -894,6 +895,10 @@ impl Script {
                    vec![]
                }
            }
        } else {
            error!(error = error.to_string(), script = self.to_string(), "=> {}", Label::fail());
            vec![]
        }
    }
    /// Set current working directory for the script
    ///