Commit 89c64bbb authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

feat: Set environment values; Add module list variable

parent b70aaba0
Loading
Loading
Loading
Loading
Loading
+594 −580
Original line number Diff line number Diff line
@@ -130,14 +130,14 @@ DA:45,0
DA:51,0
DA:52,0
DA:53,0
DA:54,0
DA:55,0
DA:56,0
DA:57,0
DA:58,0
DA:59,0
DA:60,0
DA:61,0
DA:64,0
DA:65,0
DA:67,0
DA:69,0
DA:71,0
LF:27
LH:0
end_of_record
@@ -263,83 +263,86 @@ SF:/root/dev/command/pipe-lib/src/lib.rs
FN:484,Command::test
FN:507,Config::get_environment_variables
FN:519,Config::get_inputs
FN:556,Config::prepare_modules
FN:758,Config::read
FN:782,Config::read_json
FN:803,Config::read_yaml
FN:823,Config::run_workflow
FN:895,Config::set_environment_variables
FN:911,Config::verify_requirements
FN:929,Config::verify_resources
FN:938,<impl PartialEq for Details>::eq
FN:946,EnvironmentValue::from_value
FN:954,EnvironmentValue::prepend_prefix
FN:958,EnvironmentValue::trim_prefix
FN:962,EnvironmentValue::get_from_serde
FN:976,EnvironmentValue::get_all
FN:986,EnvironmentValue::print_all
FN:991,EnvironmentValue::set_variable
FN:1001,EnvironmentValue::set_variables
FN:1008,Extension::from_string
FN:1017,Label::dry_run
FN:1021,Label::invalid
FN:1024,Label::fmt_invalid
FN:1028,Label::fail
FN:1031,Label::fmt_fail
FN:1035,Label::found
FN:1039,Label::not_found
FN:1042,Label::fmt_not_found
FN:1046,Label::output
FN:1049,Label::fmt_output
FN:1053,Label::pass
FN:1057,Label::read
FN:1061,Label::rejected
FN:1065,Label::run
FN:1069,Label::using
FN:1075,ModuleUri<'_>::from
FN:1085,ModuleUri<'_>::hash
FN:1109,ModuleUri<'_>::get_whitelist
FN:1112,ModuleUri<'_>::is_allowed
FN:1115,ModuleUri<'_>::test
FN:1116,ModuleUri<'_>::test::check
FN:1133,ModuleUri<'_>::working_directory
FN:1147,<impl Deref for PyProjectToml>::deref
FN:1152,PyProjectToml::read
FN:1168,PyProjectToml::get_module_name
FN:1179,SemanticVersion::from_string
FN:1188,Script::ensure_relative
FN:1207,Script::expand_arguments
FN:1242,Script::expand_arguments_from
FN:1277,Script::from_module
FN:1335,Script::from_path
FN:1350,Script::from_template
FN:1370,Script::get_command
FN:1380,Script::get_arguments
FN:1420,Script::maybe_create_virtual_environment
FN:1461,Script::maybe_git_clone
FN:1468,Script::python_default
FN:1482,Script::run
FN:1549,Script::with_container
FN:1556,Script::with_current_dir
FN:1561,Script::with_envs
FN:1603,Script::with_virtual_environment
FN:1609,ScriptTemplate::from_path
FN:1621,ScriptTemplate::resolve_python_virtual_environment
FN:1649,StringTemplate::new
FN:1658,StringTemplate::expand
FN:1665,StringTemplate::get_variable
FN:1695,StringTemplate::is_handlebars
FN:1730,StringTemplate::remove_spaces
FN:1740,add_dot_slash
FN:1748,add_forward_slash
FN:1755,download_binary
FN:1756,download_binary::download
FNF:74
FN:549,Config::get_module_list
FN:564,Config::prepare_modules
FN:766,Config::read
FN:790,Config::read_json
FN:811,Config::read_yaml
FN:831,Config::run_workflow
FN:901,Config::set_environment_variables
FN:919,Config::verify_requirements
FN:937,Config::verify_resources
FN:946,<impl PartialEq for Details>::eq
FN:952,EnvironmentValue::formatted_prefix
FN:957,EnvironmentValue::from_value
FN:965,EnvironmentValue::prepend_prefix
FN:969,EnvironmentValue::trim_prefix
FN:973,EnvironmentValue::get_from_serde
FN:987,EnvironmentValue::get_all
FN:997,EnvironmentValue::print_all
FN:1008,EnvironmentValue::set_variable
FN:1018,EnvironmentValue::set_variables
FN:1025,Extension::from_string
FN:1034,Label::dry_run
FN:1038,Label::invalid
FN:1041,Label::fmt_invalid
FN:1045,Label::fail
FN:1048,Label::fmt_fail
FN:1052,Label::found
FN:1056,Label::not_found
FN:1059,Label::fmt_not_found
FN:1063,Label::output
FN:1066,Label::fmt_output
FN:1070,Label::pass
FN:1074,Label::read
FN:1078,Label::rejected
FN:1082,Label::run
FN:1086,Label::using
FN:1092,ModuleUri<'_>::from
FN:1102,ModuleUri<'_>::hash
FN:1126,ModuleUri<'_>::get_whitelist
FN:1129,ModuleUri<'_>::is_allowed
FN:1132,ModuleUri<'_>::test
FN:1133,ModuleUri<'_>::test::check
FN:1150,ModuleUri<'_>::working_directory
FN:1164,<impl Deref for PyProjectToml>::deref
FN:1169,PyProjectToml::read
FN:1185,PyProjectToml::get_module_name
FN:1196,SemanticVersion::from_string
FN:1205,Script::ensure_relative
FN:1224,Script::expand_arguments
FN:1259,Script::expand_arguments_from
FN:1294,Script::from_module
FN:1352,Script::from_path
FN:1367,Script::from_template
FN:1387,Script::get_command
FN:1397,Script::get_arguments
FN:1437,Script::maybe_create_virtual_environment
FN:1478,Script::maybe_git_clone
FN:1485,Script::python_default
FN:1499,Script::run
FN:1566,Script::with_container
FN:1573,Script::with_current_dir
FN:1578,Script::with_envs
FN:1620,Script::with_virtual_environment
FN:1626,ScriptTemplate::from_path
FN:1638,ScriptTemplate::resolve_python_virtual_environment
FN:1666,StringTemplate::new
FN:1675,StringTemplate::expand
FN:1682,StringTemplate::get_variable
FN:1712,StringTemplate::is_handlebars
FN:1747,StringTemplate::remove_spaces
FN:1757,add_dot_slash
FN:1765,add_forward_slash
FN:1772,download_binary
FN:1773,download_binary::download
FNF:76
FNDA:1,Command::test
FNDA:0,Config::get_environment_variables
FNDA:0,Config::get_inputs
FNDA:1,Config::get_module_list
FNDA:0,Config::prepare_modules
FNDA:1,Config::read
FNDA:2,Config::read
FNDA:1,Config::read_json
FNDA:1,Config::read_yaml
FNDA:0,Config::run_workflow
@@ -347,6 +350,7 @@ FNDA:0,Config::set_environment_variables
FNDA:0,Config::verify_requirements
FNDA:0,Config::verify_resources
FNDA:1,<impl PartialEq for Details>::eq
FNDA:1,EnvironmentValue::formatted_prefix
FNDA:0,EnvironmentValue::from_value
FNDA:0,EnvironmentValue::prepend_prefix
FNDA:1,EnvironmentValue::trim_prefix
@@ -355,7 +359,7 @@ FNDA:1,EnvironmentValue::get_all
FNDA:0,EnvironmentValue::print_all
FNDA:0,EnvironmentValue::set_variable
FNDA:0,EnvironmentValue::set_variables
FNDA:1,Extension::from_string
FNDA:2,Extension::from_string
FNDA:0,Label::dry_run
FNDA:0,Label::invalid
FNDA:0,Label::fmt_invalid
@@ -365,7 +369,7 @@ FNDA:0,Label::found
FNDA:0,Label::not_found
FNDA:0,Label::fmt_not_found
FNDA:1,Label::output
FNDA:3,Label::fmt_output
FNDA:4,Label::fmt_output
FNDA:0,Label::pass
FNDA:0,Label::read
FNDA:0,Label::rejected
@@ -400,10 +404,10 @@ FNDA:0,Script::with_envs
FNDA:1,Script::with_virtual_environment
FNDA:1,ScriptTemplate::from_path
FNDA:0,ScriptTemplate::resolve_python_virtual_environment
FNDA:2,StringTemplate::new
FNDA:1,StringTemplate::new
FNDA:1,StringTemplate::expand
FNDA:1,StringTemplate::get_variable
FNDA:2,StringTemplate::is_handlebars
FNDA:1,StringTemplate::is_handlebars
FNDA:1,StringTemplate::remove_spaces
FNDA:1,add_dot_slash
FNDA:1,add_forward_slash
@@ -412,10 +416,10 @@ FNDA:0,download_binary::download
DA:484,1
DA:485,2
DA:486,1
DA:487,5
DA:488,4
DA:490,6
DA:491,2
DA:487,3
DA:488,2
DA:490,3
DA:491,1
DA:494,0
DA:495,0
DA:500,3
@@ -443,671 +447,681 @@ DA:536,0
DA:540,0
DA:541,0
DA:546,0
DA:556,0
DA:557,0
DA:558,0
DA:559,0
DA:561,0
DA:562,0
DA:563,0
DA:549,1
DA:550,2
DA:553,2
DA:555,2
DA:564,0
DA:565,0
DA:566,0
DA:567,0
DA:569,0
DA:570,0
DA:571,0
DA:572,0
DA:573,0
DA:574,0
DA:575,0
DA:577,0
DA:578,0
DA:579,0
DA:580,0
DA:581,0
DA:582,0
DA:584,0
DA:583,0
DA:585,0
DA:586,0
DA:587,0
DA:588,0
DA:589,0
DA:591,0
DA:596,0
DA:602,0
DA:590,0
DA:592,0
DA:597,0
DA:599,0
DA:604,0
DA:607,0
DA:610,0
DA:612,0
DA:614,0
DA:618,0
DA:621,0
DA:624,0
DA:615,0
DA:620,0
DA:622,0
DA:626,0
DA:628,0
DA:629,0
DA:630,0
DA:631,0
DA:633,0
DA:632,0
DA:634,0
DA:636,0
DA:637,0
DA:638,0
DA:639,0
DA:640,0
DA:643,0
DA:645,0
DA:641,0
DA:642,0
DA:646,0
DA:647,0
DA:649,0
DA:650,0
DA:648,0
DA:651,0
DA:652,0
DA:653,0
DA:654,0
DA:655,0
DA:657,0
DA:658,0
DA:659,0
DA:660,0
DA:662,0
DA:664,0
DA:666,0
DA:667,0
DA:671,0
DA:663,0
DA:668,0
DA:670,0
DA:672,0
DA:673,0
DA:676,0
DA:678,0
DA:674,0
DA:675,0
DA:679,0
DA:680,0
DA:681,0
DA:682,0
DA:683,0
DA:684,0
DA:686,0
DA:687,0
DA:689,0
DA:690,0
DA:691,0
DA:693,0
DA:692,0
DA:694,0
DA:696,0
DA:697,0
DA:695,0
DA:698,0
DA:699,0
DA:700,0
DA:701,0
DA:703,0
DA:713,0
DA:714,0
DA:715,0
DA:716,0
DA:718,0
DA:702,0
DA:704,0
DA:705,0
DA:706,0
DA:707,0
DA:708,0
DA:709,0
DA:711,0
DA:721,0
DA:722,0
DA:723,0
DA:724,0
DA:726,0
DA:727,0
DA:730,0
DA:732,0
DA:734,0
DA:735,0
DA:736,0
DA:737,0
DA:738,0
DA:740,0
DA:743,0
DA:744,0
DA:745,0
DA:746,0
DA:747,0
DA:750,0
DA:752,0
DA:748,0
DA:753,0
DA:754,0
DA:756,0
DA:758,1
DA:759,2
DA:760,2
DA:761,1
DA:755,0
DA:758,0
DA:760,0
DA:762,0
DA:764,2
DA:765,1
DA:766,0
DA:770,2
DA:771,1
DA:773,0
DA:764,0
DA:766,2
DA:767,4
DA:768,4
DA:769,2
DA:770,0
DA:772,2
DA:773,1
DA:774,0
DA:782,1
DA:783,2
DA:784,2
DA:786,0
DA:787,0
DA:790,3
DA:778,4
DA:779,2
DA:781,0
DA:782,0
DA:790,1
DA:791,2
DA:792,4
DA:793,0
DA:795,6
DA:796,2
DA:803,1
DA:804,2
DA:805,1
DA:807,0
DA:808,0
DA:811,2
DA:812,1
DA:813,2
DA:814,0
DA:816,3
DA:817,1
DA:823,0
DA:824,0
DA:826,0
DA:827,0
DA:828,0
DA:829,0
DA:830,0
DA:792,2
DA:794,0
DA:795,0
DA:798,4
DA:799,3
DA:800,6
DA:801,0
DA:803,9
DA:804,3
DA:811,1
DA:812,2
DA:813,1
DA:815,0
DA:816,0
DA:819,2
DA:820,1
DA:821,2
DA:822,0
DA:824,3
DA:825,1
DA:831,0
DA:832,0
DA:834,0
DA:833,0
DA:835,0
DA:836,0
DA:837,0
DA:838,0
DA:839,0
DA:840,0
DA:843,0
DA:842,0
DA:845,0
DA:846,0
DA:847,0
DA:848,0
DA:849,0
DA:850,0
DA:851,0
DA:853,0
DA:854,0
DA:855,0
DA:856,0
DA:859,0
DA:857,0
DA:858,0
DA:860,0
DA:863,0
DA:864,0
DA:865,0
DA:866,0
DA:867,0
DA:869,0
DA:870,0
DA:871,0
DA:872,0
DA:873,0
DA:874,0
DA:875,0
DA:876,0
DA:877,0
DA:878,0
DA:879,0
DA:880,0
DA:881,0
DA:882,0
DA:883,0
DA:884,0
DA:886,0
DA:889,0
DA:891,0
DA:892,0
DA:895,0
DA:896,0
DA:897,0
DA:898,0
DA:899,0
DA:900,0
DA:901,0
DA:902,0
DA:903,0
DA:904,0
DA:905,0
DA:906,0
DA:911,0
DA:912,0
DA:913,0
DA:914,0
DA:915,0
DA:916,0
DA:917,0
DA:919,0
DA:920,0
DA:921,0
DA:922,0
DA:923,0
DA:924,0
DA:925,0
DA:929,0
DA:930,0
DA:938,1
DA:939,1
DA:946,0
DA:947,0
DA:948,0
DA:949,0
DA:950,0
DA:951,0
DA:954,0
DA:955,0
DA:958,1
DA:959,1
DA:960,2
DA:931,0
DA:937,0
DA:938,0
DA:946,1
DA:947,1
DA:952,1
DA:953,1
DA:957,0
DA:958,0
DA:959,0
DA:960,0
DA:961,0
DA:962,0
DA:963,0
DA:964,0
DA:965,0
DA:966,0
DA:967,0
DA:968,0
DA:969,0
DA:970,0
DA:972,0
DA:969,1
DA:970,1
DA:971,2
DA:973,0
DA:974,0
DA:976,1
DA:977,1
DA:978,2
DA:979,2
DA:980,2
DA:981,2
DA:982,1
DA:986,0
DA:987,0
DA:988,0
DA:991,0
DA:992,0
DA:993,0
DA:994,0
DA:995,0
DA:996,0
DA:975,0
DA:976,0
DA:977,0
DA:978,0
DA:979,0
DA:980,0
DA:981,0
DA:983,0
DA:985,0
DA:987,1
DA:988,1
DA:989,2
DA:990,2
DA:991,2
DA:992,2
DA:993,1
DA:997,0
DA:998,0
DA:999,0
DA:1001,0
DA:1002,0
DA:1004,0
DA:1008,1
DA:1009,2
DA:1010,2
DA:1011,3
DA:1008,0
DA:1009,0
DA:1010,0
DA:1011,0
DA:1012,0
DA:1017,0
DA:1013,0
DA:1014,0
DA:1018,0
DA:1019,0
DA:1021,0
DA:1022,0
DA:1024,0
DA:1025,0
DA:1026,0
DA:1028,0
DA:1025,2
DA:1026,4
DA:1027,4
DA:1028,3
DA:1029,0
DA:1031,0
DA:1032,0
DA:1033,0
DA:1034,0
DA:1035,0
DA:1036,0
DA:1037,0
DA:1038,0
DA:1039,0
DA:1040,0
DA:1041,0
DA:1042,0
DA:1043,0
DA:1044,0
DA:1046,1
DA:1047,3
DA:1049,3
DA:1050,3
DA:1051,3
DA:1045,0
DA:1046,0
DA:1048,0
DA:1049,0
DA:1050,0
DA:1052,0
DA:1053,0
DA:1054,0
DA:1055,0
DA:1056,0
DA:1057,0
DA:1058,0
DA:1059,0
DA:1060,0
DA:1061,0
DA:1062,0
DA:1063,0
DA:1065,0
DA:1066,0
DA:1067,0
DA:1069,0
DA:1063,1
DA:1064,4
DA:1066,4
DA:1067,4
DA:1068,4
DA:1070,0
DA:1071,0
DA:1075,2
DA:1076,2
DA:1077,3
DA:1078,1
DA:1079,2
DA:1072,0
DA:1074,0
DA:1075,0
DA:1076,0
DA:1078,0
DA:1079,0
DA:1080,0
DA:1082,1
DA:1085,1
DA:1086,1
DA:1087,1
DA:1088,1
DA:1089,1
DA:1090,0
DA:1082,0
DA:1083,0
DA:1084,0
DA:1086,0
DA:1087,0
DA:1088,0
DA:1092,2
DA:1093,2
DA:1094,3
DA:1095,1
DA:1096,2
DA:1097,2
DA:1099,2
DA:1100,2
DA:1102,2
DA:1105,0
DA:1109,0
DA:1110,0
DA:1112,0
DA:1113,0
DA:1115,0
DA:1116,0
DA:1117,0
DA:1119,0
DA:1120,0
DA:1121,0
DA:1097,0
DA:1099,1
DA:1102,1
DA:1103,1
DA:1104,1
DA:1105,1
DA:1106,1
DA:1107,0
DA:1109,2
DA:1113,2
DA:1114,2
DA:1116,2
DA:1117,2
DA:1119,2
DA:1122,0
DA:1123,0
DA:1124,0
DA:1125,0
DA:1126,0
DA:1127,0
DA:1129,0
DA:1130,0
DA:1132,0
DA:1133,0
DA:1134,0
DA:1135,0
DA:1136,0
DA:1137,0
DA:1138,0
DA:1139,0
DA:1140,0
DA:1147,1
DA:1152,1
DA:1153,2
DA:1154,2
DA:1141,0
DA:1142,0
DA:1144,0
DA:1146,0
DA:1150,0
DA:1151,0
DA:1152,0
DA:1153,0
DA:1154,0
DA:1156,0
DA:1157,0
DA:1160,2
DA:1161,1
DA:1162,2
DA:1163,0
DA:1165,3
DA:1166,1
DA:1168,1
DA:1164,1
DA:1169,1
DA:1170,1
DA:1171,1
DA:1172,0
DA:1170,2
DA:1171,2
DA:1173,0
DA:1174,0
DA:1179,1
DA:1180,1
DA:1181,3
DA:1177,2
DA:1178,1
DA:1179,2
DA:1180,0
DA:1182,3
DA:1183,3
DA:1183,1
DA:1185,1
DA:1186,1
DA:1187,1
DA:1188,1
DA:1189,1
DA:1190,2
DA:1191,1
DA:1207,1
DA:1208,2
DA:1211,2
DA:1212,1
DA:1213,2
DA:1214,1
DA:1215,1
DA:1217,2
DA:1221,1
DA:1222,1
DA:1242,1
DA:1243,2
DA:1246,2
DA:1247,1
DA:1248,2
DA:1249,2
DA:1252,2
DA:1254,1
DA:1256,2
DA:1260,1
DA:1261,1
DA:1277,0
DA:1279,0
DA:1280,0
DA:1281,0
DA:1284,0
DA:1285,0
DA:1286,0
DA:1287,0
DA:1288,0
DA:1290,0
DA:1291,0
DA:1292,0
DA:1295,0
DA:1189,0
DA:1191,0
DA:1196,1
DA:1197,1
DA:1198,3
DA:1199,3
DA:1200,3
DA:1205,1
DA:1206,1
DA:1207,2
DA:1208,1
DA:1224,1
DA:1225,2
DA:1228,2
DA:1229,1
DA:1230,2
DA:1231,1
DA:1232,1
DA:1234,2
DA:1238,1
DA:1239,1
DA:1259,1
DA:1260,2
DA:1263,2
DA:1264,1
DA:1265,2
DA:1266,2
DA:1269,2
DA:1271,1
DA:1273,2
DA:1277,1
DA:1278,1
DA:1294,0
DA:1296,0
DA:1297,0
DA:1298,0
DA:1301,0
DA:1302,0
DA:1303,0
DA:1306,0
DA:1304,0
DA:1305,0
DA:1307,0
DA:1308,0
DA:1309,0
DA:1312,0
DA:1313,0
DA:1314,0
DA:1315,0
DA:1318,0
DA:1319,0
DA:1335,1
DA:1336,1
DA:1337,1
DA:1350,1
DA:1351,1
DA:1352,3
DA:1356,2
DA:1358,2
DA:1360,2
DA:1364,1
DA:1365,1
DA:1366,1
DA:1368,2
DA:1370,1
DA:1371,1
DA:1372,1
DA:1373,1
DA:1375,1
DA:1376,2
DA:1377,1
DA:1380,1
DA:1320,0
DA:1323,0
DA:1325,0
DA:1326,0
DA:1329,0
DA:1335,0
DA:1336,0
DA:1352,1
DA:1353,1
DA:1354,1
DA:1367,1
DA:1368,1
DA:1369,3
DA:1373,2
DA:1375,2
DA:1377,2
DA:1381,1
DA:1382,1
DA:1383,1
DA:1384,1
DA:1385,1
DA:1386,0
DA:1388,0
DA:1389,0
DA:1392,2
DA:1393,1
DA:1395,1
DA:1385,2
DA:1387,1
DA:1388,1
DA:1389,2
DA:1390,1
DA:1392,1
DA:1393,2
DA:1394,1
DA:1397,1
DA:1398,1
DA:1399,1
DA:1399,2
DA:1400,2
DA:1401,2
DA:1403,1
DA:1405,2
DA:1406,2
DA:1408,0
DA:1409,0
DA:1402,1
DA:1403,0
DA:1405,0
DA:1406,0
DA:1409,4
DA:1410,2
DA:1412,1
DA:1413,1
DA:1414,1
DA:1415,1
DA:1420,0
DA:1421,0
DA:1422,0
DA:1423,0
DA:1416,1
DA:1417,2
DA:1418,2
DA:1420,1
DA:1422,2
DA:1423,2
DA:1425,0
DA:1426,0
DA:1427,0
DA:1428,0
DA:1429,0
DA:1430,0
DA:1432,0
DA:1433,0
DA:1434,0
DA:1435,0
DA:1436,0
DA:1429,1
DA:1430,1
DA:1432,1
DA:1437,0
DA:1438,0
DA:1439,0
DA:1440,0
DA:1441,0
DA:1442,0
DA:1443,0
DA:1444,0
DA:1448,0
DA:1445,0
DA:1446,0
DA:1447,0
DA:1449,0
DA:1450,0
DA:1451,0
DA:1452,0
DA:1453,0
DA:1454,0
DA:1455,0
DA:1457,0
DA:1461,1
DA:1462,2
DA:1463,2
DA:1464,2
DA:1465,3
DA:1466,1
DA:1468,0
DA:1458,0
DA:1461,0
DA:1465,0
DA:1466,0
DA:1469,0
DA:1470,0
DA:1478,0
DA:1482,1
DA:1474,0
DA:1478,1
DA:1479,2
DA:1480,2
DA:1481,2
DA:1482,3
DA:1483,1
DA:1484,1
DA:1485,2
DA:1486,2
DA:1487,3
DA:1488,1
DA:1489,7
DA:1490,2
DA:1491,1
DA:1492,1
DA:1493,1
DA:1494,1
DA:1499,2
DA:1485,0
DA:1486,0
DA:1487,0
DA:1495,0
DA:1499,1
DA:1500,1
DA:1502,0
DA:1503,0
DA:1506,1
DA:1507,1
DA:1508,2
DA:1509,2
DA:1512,2
DA:1513,1
DA:1515,0
DA:1516,0
DA:1519,1
DA:1520,1
DA:1521,2
DA:1522,3
DA:1523,2
DA:1501,1
DA:1502,2
DA:1503,2
DA:1504,3
DA:1505,1
DA:1506,7
DA:1507,2
DA:1508,1
DA:1509,1
DA:1510,1
DA:1511,1
DA:1516,2
DA:1517,1
DA:1519,0
DA:1520,0
DA:1523,1
DA:1524,1
DA:1525,2
DA:1526,2
DA:1527,1
DA:1528,3
DA:1529,1
DA:1530,3
DA:1531,3
DA:1532,1
DA:1534,0
DA:1535,0
DA:1536,0
DA:1539,0
DA:1540,0
DA:1541,0
DA:1545,0
DA:1546,0
DA:1529,2
DA:1530,1
DA:1532,0
DA:1533,0
DA:1536,1
DA:1537,1
DA:1538,2
DA:1539,3
DA:1540,2
DA:1543,2
DA:1544,1
DA:1545,3
DA:1546,1
DA:1547,3
DA:1548,3
DA:1549,1
DA:1550,1
DA:1551,1
DA:1556,1
DA:1557,2
DA:1558,1
DA:1561,0
DA:1551,0
DA:1552,0
DA:1553,0
DA:1556,0
DA:1557,0
DA:1558,0
DA:1562,0
DA:1563,0
DA:1603,1
DA:1604,1
DA:1605,1
DA:1609,1
DA:1610,2
DA:1611,1
DA:1613,0
DA:1614,0
DA:1617,2
DA:1619,1
DA:1621,0
DA:1622,0
DA:1623,0
DA:1624,0
DA:1625,0
DA:1626,0
DA:1627,0
DA:1628,0
DA:1566,1
DA:1567,1
DA:1568,1
DA:1573,1
DA:1574,2
DA:1575,1
DA:1578,0
DA:1579,0
DA:1580,0
DA:1620,1
DA:1621,2
DA:1622,2
DA:1626,1
DA:1627,2
DA:1628,1
DA:1630,0
DA:1631,0
DA:1632,0
DA:1637,0
DA:1634,2
DA:1636,1
DA:1638,0
DA:1639,0
DA:1649,2
DA:1651,2
DA:1658,1
DA:1659,7
DA:1660,5
DA:1665,1
DA:1666,2
DA:1667,2
DA:1640,0
DA:1641,0
DA:1642,0
DA:1643,0
DA:1644,0
DA:1645,0
DA:1647,0
DA:1648,0
DA:1649,0
DA:1654,0
DA:1655,0
DA:1656,0
DA:1666,1
DA:1668,1
DA:1669,2
DA:1671,0
DA:1695,2
DA:1696,4
DA:1697,4
DA:1698,2
DA:1699,0
DA:1701,0
DA:1730,1
DA:1731,4
DA:1732,2
DA:1733,0
DA:1735,6
DA:1736,2
DA:1740,1
DA:1741,2
DA:1742,2
DA:1744,4
DA:1748,1
DA:1749,2
DA:1675,1
DA:1676,4
DA:1677,3
DA:1682,1
DA:1683,2
DA:1684,2
DA:1685,1
DA:1686,2
DA:1688,0
DA:1712,1
DA:1713,2
DA:1714,2
DA:1715,1
DA:1716,0
DA:1718,0
DA:1747,1
DA:1748,2
DA:1749,1
DA:1750,0
DA:1752,2
DA:1755,0
DA:1756,0
DA:1757,0
DA:1758,0
DA:1759,0
DA:1760,0
DA:1761,0
DA:1762,0
DA:1763,0
DA:1764,0
DA:1765,0
DA:1766,0
DA:1768,0
DA:1770,0
DA:1752,3
DA:1753,1
DA:1757,1
DA:1758,2
DA:1759,2
DA:1761,4
DA:1765,1
DA:1766,2
DA:1767,0
DA:1769,2
DA:1772,0
DA:1773,0
DA:1774,0
DA:1775,0
DA:1776,0
DA:1791,1
DA:1792,1
DA:1793,4
DA:1794,2
DA:1798,1
DA:1799,2
DA:1800,2
DA:1801,2
DA:1802,2
DA:1803,5
DA:1806,1
DA:1808,2
DA:1777,0
DA:1778,0
DA:1779,0
DA:1780,0
DA:1781,0
DA:1782,0
DA:1783,0
DA:1785,0
DA:1787,0
DA:1790,0
DA:1791,0
DA:1792,0
DA:1793,0
DA:1808,1
DA:1809,1
DA:1810,4
DA:1813,0
DA:1840,1
DA:1841,2
DA:1842,2
DA:1843,1
DA:1844,6
DA:1856,1
DA:1858,0
DA:1811,2
DA:1815,1
DA:1816,2
DA:1817,2
DA:1818,2
DA:1819,2
DA:1820,5
DA:1823,1
DA:1825,2
DA:1827,4
DA:1830,0
DA:1857,1
DA:1858,2
DA:1859,2
DA:1860,1
DA:1875,1
DA:1876,1
DA:1879,1
DA:1880,3
DA:1892,1
DA:1893,1
DA:1896,0
DA:1897,0
DA:1898,0
DA:1900,0
DA:1904,0
DA:1905,0
DA:1906,0
DA:1908,0
DA:1912,0
DA:1861,6
DA:1873,1
DA:1875,0
DA:1877,1
DA:1892,2
DA:1893,2
DA:1896,1
DA:1897,3
DA:1909,1
DA:1910,1
DA:1913,0
DA:1914,0
DA:1915,0
DA:1922,1
DA:1924,2
DA:1925,1
DA:1926,1
DA:1928,3
DA:1917,0
DA:1921,0
DA:1922,0
DA:1923,0
DA:1925,0
DA:1929,0
DA:1931,0
DA:1932,0
DA:1939,1
DA:1941,2
DA:1942,2
DA:1943,4
DA:1944,4
DA:1945,12
DA:1946,8
DA:1948,1
DA:1949,3
DA:1950,1
DA:1953,1
DA:1955,1
DA:1956,8
LF:699
LH:276
DA:1942,1
DA:1943,1
DA:1945,3
DA:1958,2
DA:1959,2
DA:1960,4
DA:1961,3
DA:1962,9
DA:1963,6
DA:1965,1
DA:1966,3
DA:1967,1
DA:1970,1
DA:1972,1
DA:1973,8
DA:1975,1
DA:1976,3
LF:709
LH:284
end_of_record
+5 −1
Original line number Diff line number Diff line
@@ -50,7 +50,11 @@ pub fn run(
        .build();
    match Config::read(config_path) {
        | Some(cfg) => {
            let config = cfg.verify_requirements(&options).verify_resources(&options).prepare_modules(&options);
            let config = cfg
                .verify_requirements(&options)
                .verify_resources(&options)
                .prepare_modules(&options)
                .set_environment_variables();
            match config.clone().get_inputs() {
                | Some(values) if !values.is_empty() => values.par_iter().for_each(|value| {
                    info!(value, "=> {} Configuration with input", Label::using());
+29 −9
Original line number Diff line number Diff line
@@ -546,6 +546,14 @@ impl Config {
            | None => None,
        }
    }
    fn get_module_list(self) -> String {
        let names = self
            .modules
            .iter()
            .map(|module| to_snake_case(module.name.clone()))
            .collect::<Vec<String>>();
        names.join(",").to_string()
    }
    /// Prepare workflow modules for execution
    ///
    /// Module preparation is done in parallel and includes the following steps:
@@ -821,6 +829,7 @@ impl Config {
    /// Modules are run in the order they are defined in the configuration
    ///
    pub fn run_workflow(self, input: Option<String>, options: &ConfigOptions) {
        EnvironmentValue::print_all();
        self.modules.iter().for_each(|module| match &module.module_type {
            | ModuleType::Binary { .. } => {
                let envs = self.clone().get_environment_variables(Some(module.clone()), input.clone());
@@ -828,7 +837,6 @@ impl Config {
                let loaded = Script::from_module(module.clone(), Some(PathBuf::from(working_dir.clone())));
                let script = loaded.ensure_relative().expand_arguments_from(envs).with_current_dir(working_dir);
                if options.dry_run {
                    EnvironmentValue::print_all();
                    info!(
                        module = module.name,
                        script = script.to_string(),
@@ -847,7 +855,6 @@ impl Config {
                    let loaded = Script::from_module(module.clone(), Some(options.root.clone()));
                    let script = loaded.expand_arguments_from(envs).with_current_dir(working_dir);
                    if options.dry_run {
                        EnvironmentValue::print_all();
                        info!(
                            module = module.name,
                            script = script.to_string(),
@@ -874,7 +881,6 @@ impl Config {
                        .with_current_dir(working_dir)
                        .with_virtual_environment(virtual_environment);
                    if options.dry_run {
                        EnvironmentValue::print_all();
                        info!(
                            module = module.name,
                            script = script.to_string(),
@@ -892,7 +898,7 @@ impl Config {
        });
    }
    /// Set environment variables from PIPE configuration "variables" attribute
    pub fn set_environment_variables(&self) -> Void {
    pub fn set_environment_variables(self) -> Config {
        match &self.variables {
            | Some(variables) => {
                for (k, v) in variables {
@@ -902,7 +908,9 @@ impl Config {
            }
            | None => (),
        }
        Ok(())
        let module_list = EnvironmentValue::String(self.clone().get_module_list());
        module_list.set_variable("MODULE_LIST".to_string());
        self
    }
    /// Verify software requirements are met on host system (ex. Python, conda, etc...)
    ///
@@ -941,6 +949,9 @@ impl PartialEq for Details {
}
impl EnvironmentValue {
    pub const PREFIX: &'static str = "pipe";
    fn formatted_prefix() -> String {
        format!("_{}_", EnvironmentValue::PREFIX.to_uppercase())
    }
    /// Convert serde Value to EnvironmentValue
    ///
    fn from_value(value: Value) -> EnvironmentValue {
@@ -952,11 +963,11 @@ impl EnvironmentValue {
        }
    }
    fn prepend_prefix(value: String) -> String {
        let prefixed = format!("_{}_{}", EnvironmentValue::PREFIX.to_uppercase(), value);
        let prefixed = format!("{}{}", EnvironmentValue::formatted_prefix(), value);
        prefixed
    }
    fn trim_prefix(key: String) -> String {
        let pre = format!("_{}_", EnvironmentValue::PREFIX.to_uppercase());
        let pre = EnvironmentValue::formatted_prefix();
        key.trim_start_matches(&pre).to_string()
    }
    pub fn get_from_serde(values: &Map<String, Value>) -> HashMap<String, String> {
@@ -974,7 +985,7 @@ impl EnvironmentValue {
        lookup
    }
    pub fn get_all() -> Vec<(String, String)> {
        let pre = format!("_{}_", EnvironmentValue::PREFIX.to_uppercase());
        let pre = EnvironmentValue::formatted_prefix();
        vars()
            .filter(|(key, _)| key.starts_with(&pre))
            .map(|(key, value)| {
@@ -985,7 +996,13 @@ impl EnvironmentValue {
    }
    pub fn print_all() {
        EnvironmentValue::get_all().into_iter().for_each(|(key, value)| {
            debug!(key, value, "=> [{}]", "ENV".dimmed());
            trace!(
                "=> {} {}{} = {}",
                Label::using(),
                EnvironmentValue::formatted_prefix().dimmed(),
                key,
                value
            );
        });
    }
    pub fn set_variable(self, key: String) {
@@ -1955,6 +1972,9 @@ pub fn read_file(path: PathBuf) -> Result<String, Box<dyn Error>> {
pub fn to_string(values: Vec<&str>) -> Vec<String> {
    values.iter().map(|s| s.to_string()).collect()
}
pub fn to_snake_case(value: String) -> String {
    value.replace(" ", "_").to_lowercase()
}

#[cfg(test)]
mod tests;
+18 −0
Original line number Diff line number Diff line
@@ -49,6 +49,18 @@ fn test_command() {
    }
}

#[test]
fn test_config_get_module_list() {
    let path = format!("{}/config.json", FIXTURES);
    match Config::read(PathBuf::from(path)) {
        | Some(config) => {
            let expected = "local_binary_module,local_python_script_module,remote_python_script_module";
            assert_eq!(config.get_module_list(), expected);
        }
        | None => panic!("Cannot read config in tests"),
    }
}

#[test]
fn test_config_read() {
    let path = format!("{}/config.json", FIXTURES);
@@ -573,6 +585,12 @@ fn test_string_template_handlebars() {
    );
}

#[test]
fn test_to_snake_case() {
    let expected = "some_module_name";
    assert_eq!(to_snake_case("Some Module Name".to_string()), expected);
}

#[test]
fn test_to_string() {
    let input = vec!["a", "b", "c"];
+0 −1
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
        ]
    },
    "variables": {
        "INPUT_DIRECTORY": "/path/to/input",
        "OUTPUT_DIRECTORY": "/path/to/output",
        "ANSWER": 42,
        "BOOLEAN": true,