Commit 5676da33 authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

feat: Add executable check to binary module usage

parent 90ee5431
Loading
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1655,6 +1655,15 @@ dependencies = [
 "windows-sys 0.52.0",
]

[[package]]
name = "is_executable"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2"
dependencies = [
 "winapi 0.3.9",
]

[[package]]
name = "itoa"
version = "1.0.11"
@@ -2234,6 +2243,7 @@ dependencies = [
 "exitcode",
 "fancy-regex",
 "is-terminal",
 "is_executable",
 "owo-colors 4.0.0",
 "rayon",
 "reqwest",
+553 −544
Original line number Diff line number Diff line
@@ -260,78 +260,78 @@ LH:0
end_of_record
TN:
SF:/root/dev/command/pipe-lib/src/lib.rs
FN:467,Command::test
FN:490,Config::get_environment_variables
FN:502,Config::get_inputs
FN:539,Config::prepare_modules
FN:721,Config::read
FN:745,Config::read_json
FN:766,Config::read_yaml
FN:786,Config::run_workflow
FN:858,Config::set_environment_variables
FN:874,Config::verify_requirements
FN:892,Config::verify_resources
FN:901,<impl PartialEq for Details>::eq
FN:908,EnvironmentValue::from_string
FN:911,EnvironmentValue::from_value
FN:919,EnvironmentValue::prepend_prefix
FN:923,EnvironmentValue::trim_prefix
FN:927,EnvironmentValue::get_from_serde
FN:941,EnvironmentValue::get_all
FN:951,EnvironmentValue::print_all
FN:956,EnvironmentValue::set_variable
FN:966,EnvironmentValue::set_variables
FN:973,Extension::from_string
FN:982,Label::dry_run
FN:986,Label::invalid
FN:989,Label::fmt_invalid
FN:993,Label::fail
FN:996,Label::fmt_fail
FN:1000,Label::found
FN:1004,Label::not_found
FN:1007,Label::fmt_not_found
FN:1011,Label::output
FN:1014,Label::fmt_output
FN:1018,Label::pass
FN:1022,Label::read
FN:1026,Label::rejected
FN:1030,Label::run
FN:1034,Label::using
FN:1040,ModuleUri<'_>::from
FN:1050,ModuleUri<'_>::hash
FN:1074,ModuleUri<'_>::get_whitelist
FN:1077,ModuleUri<'_>::is_allowed
FN:1080,ModuleUri<'_>::test
FN:1081,ModuleUri<'_>::test::check
FN:1098,ModuleUri<'_>::working_directory
FN:1110,SemanticVersion::from_string
FN:1119,Script::ensure_relative
FN:1138,Script::expand_arguments
FN:1173,Script::expand_arguments_from
FN:1208,Script::from_module
FN:1266,Script::from_path
FN:1281,Script::from_template
FN:1301,Script::get_command
FN:1311,Script::get_arguments
FN:1351,Script::maybe_create_virtual_environment
FN:1392,Script::maybe_git_clone
FN:1399,Script::python_default
FN:1413,Script::run
FN:1480,Script::with_container
FN:1487,Script::with_current_dir
FN:1492,Script::with_envs
FN:1534,Script::with_virtual_environment
FN:1540,ScriptTemplate::from_path
FN:1552,ScriptTemplate::resolve_python_virtual_environment
FN:1580,StringTemplate::new
FN:1589,StringTemplate::expand
FN:1596,StringTemplate::get_variable
FN:1626,StringTemplate::is_handlebars
FN:1661,StringTemplate::remove_spaces
FN:1671,add_dot_slash
FN:1679,add_forward_slash
FN:1686,download_binary
FN:1687,download_binary::download
FN:468,Command::test
FN:491,Config::get_environment_variables
FN:503,Config::get_inputs
FN:540,Config::prepare_modules
FN:737,Config::read
FN:761,Config::read_json
FN:782,Config::read_yaml
FN:802,Config::run_workflow
FN:874,Config::set_environment_variables
FN:890,Config::verify_requirements
FN:908,Config::verify_resources
FN:917,<impl PartialEq for Details>::eq
FN:924,EnvironmentValue::from_string
FN:927,EnvironmentValue::from_value
FN:935,EnvironmentValue::prepend_prefix
FN:939,EnvironmentValue::trim_prefix
FN:943,EnvironmentValue::get_from_serde
FN:957,EnvironmentValue::get_all
FN:967,EnvironmentValue::print_all
FN:972,EnvironmentValue::set_variable
FN:982,EnvironmentValue::set_variables
FN:989,Extension::from_string
FN:998,Label::dry_run
FN:1002,Label::invalid
FN:1005,Label::fmt_invalid
FN:1009,Label::fail
FN:1012,Label::fmt_fail
FN:1016,Label::found
FN:1020,Label::not_found
FN:1023,Label::fmt_not_found
FN:1027,Label::output
FN:1030,Label::fmt_output
FN:1034,Label::pass
FN:1038,Label::read
FN:1042,Label::rejected
FN:1046,Label::run
FN:1050,Label::using
FN:1056,ModuleUri<'_>::from
FN:1066,ModuleUri<'_>::hash
FN:1090,ModuleUri<'_>::get_whitelist
FN:1093,ModuleUri<'_>::is_allowed
FN:1096,ModuleUri<'_>::test
FN:1097,ModuleUri<'_>::test::check
FN:1114,ModuleUri<'_>::working_directory
FN:1126,SemanticVersion::from_string
FN:1135,Script::ensure_relative
FN:1154,Script::expand_arguments
FN:1189,Script::expand_arguments_from
FN:1224,Script::from_module
FN:1282,Script::from_path
FN:1297,Script::from_template
FN:1317,Script::get_command
FN:1327,Script::get_arguments
FN:1367,Script::maybe_create_virtual_environment
FN:1408,Script::maybe_git_clone
FN:1415,Script::python_default
FN:1429,Script::run
FN:1496,Script::with_container
FN:1503,Script::with_current_dir
FN:1508,Script::with_envs
FN:1550,Script::with_virtual_environment
FN:1556,ScriptTemplate::from_path
FN:1568,ScriptTemplate::resolve_python_virtual_environment
FN:1596,StringTemplate::new
FN:1605,StringTemplate::expand
FN:1612,StringTemplate::get_variable
FN:1642,StringTemplate::is_handlebars
FN:1677,StringTemplate::remove_spaces
FN:1687,add_dot_slash
FN:1695,add_forward_slash
FN:1702,download_binary
FN:1703,download_binary::download
FNF:72
FNDA:1,Command::test
FNDA:0,Config::get_environment_variables
@@ -393,7 +393,7 @@ FNDA:1,Script::run
FNDA:1,Script::with_container
FNDA:1,Script::with_current_dir
FNDA:0,Script::with_envs
FNDA:1,Script::with_virtual_environment
FNDA:2,Script::with_virtual_environment
FNDA:1,ScriptTemplate::from_path
FNDA:0,ScriptTemplate::resolve_python_virtual_environment
FNDA:2,StringTemplate::new
@@ -405,668 +405,677 @@ FNDA:1,add_dot_slash
FNDA:1,add_forward_slash
FNDA:0,download_binary
FNDA:0,download_binary::download
DA:467,1
DA:468,2
DA:469,1
DA:470,5
DA:471,4
DA:473,6
DA:474,2
DA:477,0
DA:468,1
DA:469,2
DA:470,1
DA:471,5
DA:472,4
DA:474,6
DA:475,2
DA:478,0
DA:483,3
DA:484,1
DA:490,0
DA:479,0
DA:484,3
DA:485,1
DA:491,0
DA:492,0
DA:493,0
DA:494,0
DA:495,0
DA:496,0
DA:502,0
DA:497,0
DA:503,0
DA:504,0
DA:505,0
DA:506,0
DA:507,0
DA:509,0
DA:508,0
DA:510,0
DA:511,0
DA:513,0
DA:512,0
DA:514,0
DA:518,0
DA:515,0
DA:519,0
DA:523,0
DA:520,0
DA:524,0
DA:529,0
DA:539,0
DA:525,0
DA:530,0
DA:540,0
DA:541,0
DA:542,0
DA:544,0
DA:547,0
DA:543,0
DA:545,0
DA:548,0
DA:549,0
DA:550,0
DA:551,0
DA:552,0
DA:553,0
DA:555,0
DA:554,0
DA:556,0
DA:557,0
DA:558,0
DA:559,0
DA:563,0
DA:569,0
DA:571,0
DA:574,0
DA:579,0
DA:560,0
DA:561,0
DA:566,0
DA:568,0
DA:570,0
DA:575,0
DA:581,0
DA:583,0
DA:586,0
DA:589,0
DA:592,0
DA:594,0
DA:596,0
DA:598,0
DA:601,0
DA:602,0
DA:591,0
DA:593,0
DA:597,0
DA:600,0
DA:603,0
DA:606,0
DA:605,0
DA:607,0
DA:608,0
DA:609,0
DA:610,0
DA:612,0
DA:611,0
DA:613,0
DA:617,0
DA:618,0
DA:619,0
DA:621,0
DA:623,0
DA:622,0
DA:624,0
DA:625,0
DA:626,0
DA:628,0
DA:629,0
DA:630,0
DA:633,0
DA:635,0
DA:636,0
DA:638,0
DA:641,0
DA:642,0
DA:637,0
DA:639,0
DA:640,0
DA:644,0
DA:645,0
DA:647,0
DA:648,0
DA:646,0
DA:649,0
DA:650,0
DA:651,0
DA:652,0
DA:654,0
DA:657,0
DA:658,0
DA:660,0
DA:661,0
DA:663,0
DA:664,0
DA:665,0
DA:666,0
DA:667,0
DA:669,0
DA:673,0
DA:675,0
DA:677,0
DA:678,0
DA:668,0
DA:670,0
DA:680,0
DA:681,0
DA:682,0
DA:692,0
DA:683,0
DA:685,0
DA:689,0
DA:691,0
DA:693,0
DA:694,0
DA:695,0
DA:697,0
DA:702,0
DA:703,0
DA:707,0
DA:698,0
DA:708,0
DA:709,0
DA:710,0
DA:711,0
DA:713,0
DA:715,0
DA:717,0
DA:718,0
DA:719,0
DA:721,1
DA:722,2
DA:723,2
DA:724,1
DA:725,0
DA:727,2
DA:728,1
DA:723,0
DA:726,0
DA:729,0
DA:733,2
DA:734,1
DA:736,0
DA:737,0
DA:745,1
DA:746,2
DA:747,2
DA:749,0
DA:750,0
DA:753,3
DA:754,2
DA:755,4
DA:756,0
DA:758,6
DA:759,2
DA:766,1
DA:767,2
DA:768,1
DA:770,0
DA:771,0
DA:774,2
DA:775,1
DA:776,2
DA:777,0
DA:779,3
DA:780,1
DA:731,0
DA:733,0
DA:735,0
DA:737,1
DA:738,2
DA:739,2
DA:740,1
DA:741,0
DA:743,2
DA:744,1
DA:745,0
DA:749,2
DA:750,1
DA:752,0
DA:753,0
DA:761,1
DA:762,2
DA:763,2
DA:765,0
DA:766,0
DA:769,3
DA:770,2
DA:771,4
DA:772,0
DA:774,6
DA:775,2
DA:782,1
DA:783,2
DA:784,1
DA:786,0
DA:787,0
DA:789,0
DA:790,0
DA:791,0
DA:792,0
DA:790,2
DA:791,1
DA:792,2
DA:793,0
DA:794,0
DA:795,0
DA:797,0
DA:800,0
DA:795,3
DA:796,1
DA:802,0
DA:803,0
DA:805,0
DA:806,0
DA:807,0
DA:808,0
DA:809,0
DA:810,0
DA:811,0
DA:812,0
DA:813,0
DA:814,0
DA:816,0
DA:819,0
DA:822,0
DA:824,0
DA:825,0
DA:826,0
DA:827,0
DA:828,0
DA:829,0
DA:830,0
DA:832,0
DA:833,0
DA:835,0
DA:836,0
DA:837,0
DA:838,0
DA:839,0
DA:840,0
DA:841,0
DA:842,0
DA:843,0
DA:844,0
DA:845,0
DA:846,0
DA:848,0
DA:849,0
DA:851,0
DA:852,0
DA:853,0
DA:854,0
DA:858,0
DA:855,0
DA:856,0
DA:857,0
DA:859,0
DA:860,0
DA:861,0
DA:862,0
DA:863,0
DA:865,0
DA:868,0
DA:870,0
DA:874,0
DA:875,0
DA:876,0
DA:877,0
DA:878,0
DA:879,0
DA:880,0
DA:884,0
DA:886,0
DA:890,0
DA:891,0
DA:892,0
DA:893,0
DA:901,1
DA:902,1
DA:894,0
DA:895,0
DA:896,0
DA:900,0
DA:902,0
DA:908,0
DA:909,0
DA:911,0
DA:912,0
DA:913,0
DA:914,0
DA:915,0
DA:916,0
DA:919,0
DA:920,0
DA:923,1
DA:924,1
DA:925,2
DA:917,1
DA:918,1
DA:924,0
DA:925,0
DA:927,0
DA:928,0
DA:929,0
DA:930,0
DA:931,0
DA:932,0
DA:933,0
DA:934,0
DA:935,0
DA:937,0
DA:939,0
DA:941,1
DA:942,1
DA:943,2
DA:944,2
DA:945,2
DA:946,2
DA:947,1
DA:936,0
DA:939,1
DA:940,1
DA:941,2
DA:943,0
DA:944,0
DA:945,0
DA:946,0
DA:947,0
DA:948,0
DA:949,0
DA:950,0
DA:951,0
DA:952,0
DA:953,0
DA:956,0
DA:957,0
DA:958,0
DA:959,0
DA:960,0
DA:961,0
DA:962,0
DA:966,0
DA:955,0
DA:957,1
DA:958,1
DA:959,2
DA:960,2
DA:961,2
DA:962,2
DA:963,1
DA:967,0
DA:968,0
DA:969,0
DA:973,1
DA:974,2
DA:975,2
DA:976,3
DA:972,0
DA:973,0
DA:974,0
DA:975,0
DA:976,0
DA:977,0
DA:978,0
DA:982,0
DA:983,0
DA:984,0
DA:986,0
DA:987,0
DA:989,0
DA:990,0
DA:991,0
DA:985,0
DA:989,1
DA:990,2
DA:991,2
DA:992,3
DA:993,0
DA:994,0
DA:996,0
DA:997,0
DA:998,0
DA:999,0
DA:1000,0
DA:1001,0
DA:1002,0
DA:1004,0
DA:1003,0
DA:1005,0
DA:1006,0
DA:1007,0
DA:1008,0
DA:1009,0
DA:1011,1
DA:1012,3
DA:1014,3
DA:1015,3
DA:1016,3
DA:1010,0
DA:1012,0
DA:1013,0
DA:1014,0
DA:1016,0
DA:1017,0
DA:1018,0
DA:1019,0
DA:1020,0
DA:1022,0
DA:1021,0
DA:1023,0
DA:1024,0
DA:1026,0
DA:1027,0
DA:1028,0
DA:1030,0
DA:1031,0
DA:1032,0
DA:1025,0
DA:1027,1
DA:1028,3
DA:1030,3
DA:1031,3
DA:1032,3
DA:1034,0
DA:1035,0
DA:1036,0
DA:1040,2
DA:1041,2
DA:1042,3
DA:1043,1
DA:1044,2
DA:1045,0
DA:1047,1
DA:1050,1
DA:1051,1
DA:1052,1
DA:1053,1
DA:1054,1
DA:1055,0
DA:1038,0
DA:1039,0
DA:1040,0
DA:1042,0
DA:1043,0
DA:1044,0
DA:1046,0
DA:1047,0
DA:1048,0
DA:1050,0
DA:1051,0
DA:1052,0
DA:1056,2
DA:1057,2
DA:1061,2
DA:1062,2
DA:1064,2
DA:1065,2
DA:1067,2
DA:1070,0
DA:1074,0
DA:1075,0
DA:1077,0
DA:1078,0
DA:1080,0
DA:1081,0
DA:1082,0
DA:1084,0
DA:1085,0
DA:1058,3
DA:1059,1
DA:1060,2
DA:1061,0
DA:1063,1
DA:1066,1
DA:1067,1
DA:1068,1
DA:1069,1
DA:1070,1
DA:1071,0
DA:1073,2
DA:1077,2
DA:1078,2
DA:1080,2
DA:1081,2
DA:1083,2
DA:1086,0
DA:1087,0
DA:1088,0
DA:1089,0
DA:1090,0
DA:1092,0
DA:1091,0
DA:1093,0
DA:1094,0
DA:1096,0
DA:1097,0
DA:1098,0
DA:1099,0
DA:1100,0
DA:1101,0
DA:1102,0
DA:1103,0
DA:1104,0
DA:1105,0
DA:1110,1
DA:1111,1
DA:1112,3
DA:1113,3
DA:1114,3
DA:1119,1
DA:1120,1
DA:1121,2
DA:1122,1
DA:1106,0
DA:1108,0
DA:1110,0
DA:1114,0
DA:1115,0
DA:1116,0
DA:1117,0
DA:1118,0
DA:1120,0
DA:1121,0
DA:1126,1
DA:1127,1
DA:1128,3
DA:1129,3
DA:1130,3
DA:1135,1
DA:1136,1
DA:1137,2
DA:1138,1
DA:1139,2
DA:1142,2
DA:1143,1
DA:1144,2
DA:1145,1
DA:1146,1
DA:1148,2
DA:1152,1
DA:1153,1
DA:1173,1
DA:1174,2
DA:1177,2
DA:1178,1
DA:1179,2
DA:1180,2
DA:1183,2
DA:1185,1
DA:1187,2
DA:1191,1
DA:1192,1
DA:1208,0
DA:1210,0
DA:1211,0
DA:1212,0
DA:1215,0
DA:1216,0
DA:1217,0
DA:1218,0
DA:1219,0
DA:1221,0
DA:1222,0
DA:1223,0
DA:1154,1
DA:1155,2
DA:1158,2
DA:1159,1
DA:1160,2
DA:1161,1
DA:1162,1
DA:1164,2
DA:1168,1
DA:1169,1
DA:1189,1
DA:1190,2
DA:1193,2
DA:1194,1
DA:1195,2
DA:1196,2
DA:1199,2
DA:1201,1
DA:1203,2
DA:1207,1
DA:1208,1
DA:1224,0
DA:1226,0
DA:1227,0
DA:1228,0
DA:1229,0
DA:1231,0
DA:1232,0
DA:1233,0
DA:1234,0
DA:1235,0
DA:1237,0
DA:1238,0
DA:1239,0
DA:1240,0
DA:1242,0
DA:1243,0
DA:1244,0
DA:1245,0
DA:1248,0
DA:1249,0
DA:1250,0
DA:1266,1
DA:1267,1
DA:1268,1
DA:1281,1
DA:1253,0
DA:1255,0
DA:1256,0
DA:1259,0
DA:1265,0
DA:1266,0
DA:1282,1
DA:1283,3
DA:1287,2
DA:1289,2
DA:1291,2
DA:1295,1
DA:1296,1
DA:1283,1
DA:1284,1
DA:1297,1
DA:1299,2
DA:1301,1
DA:1302,1
DA:1303,1
DA:1304,1
DA:1306,1
DA:1298,1
DA:1299,3
DA:1303,2
DA:1305,2
DA:1307,2
DA:1308,1
DA:1311,1
DA:1312,1
DA:1313,1
DA:1314,1
DA:1315,1
DA:1316,1
DA:1317,0
DA:1319,0
DA:1320,0
DA:1315,2
DA:1317,1
DA:1318,1
DA:1319,1
DA:1320,1
DA:1322,1
DA:1323,2
DA:1324,2
DA:1326,1
DA:1324,1
DA:1327,1
DA:1328,1
DA:1329,1
DA:1330,2
DA:1331,2
DA:1332,2
DA:1334,2
DA:1336,4
DA:1337,2
DA:1339,0
DA:1340,0
DA:1343,2
DA:1344,2
DA:1346,1
DA:1351,0
DA:1352,0
DA:1353,0
DA:1354,0
DA:1330,1
DA:1331,1
DA:1332,1
DA:1333,0
DA:1335,0
DA:1336,0
DA:1339,2
DA:1340,2
DA:1342,1
DA:1344,1
DA:1345,1
DA:1346,2
DA:1347,2
DA:1348,2
DA:1350,2
DA:1352,4
DA:1353,2
DA:1355,0
DA:1356,0
DA:1357,0
DA:1358,0
DA:1359,0
DA:1360,0
DA:1361,0
DA:1363,0
DA:1364,0
DA:1365,0
DA:1366,0
DA:1359,2
DA:1360,2
DA:1362,1
DA:1367,0
DA:1368,0
DA:1369,0
DA:1371,0
DA:1370,0
DA:1372,0
DA:1373,0
DA:1374,0
DA:1375,0
DA:1376,0
DA:1377,0
DA:1379,0
DA:1380,0
DA:1381,0
DA:1382,0
DA:1383,0
DA:1384,0
DA:1385,0
DA:1387,0
DA:1388,0
DA:1392,1
DA:1393,2
DA:1394,2
DA:1395,2
DA:1396,3
DA:1397,1
DA:1391,0
DA:1395,0
DA:1396,0
DA:1399,0
DA:1400,0
DA:1401,0
DA:1409,0
DA:1404,0
DA:1408,1
DA:1409,2
DA:1410,2
DA:1411,2
DA:1412,3
DA:1413,1
DA:1414,1
DA:1415,1
DA:1416,2
DA:1417,2
DA:1418,3
DA:1419,1
DA:1420,7
DA:1421,2
DA:1422,1
DA:1423,1
DA:1424,1
DA:1425,1
DA:1430,2
DA:1415,0
DA:1416,0
DA:1417,0
DA:1425,0
DA:1429,1
DA:1430,1
DA:1431,1
DA:1433,0
DA:1434,0
DA:1437,1
DA:1432,2
DA:1433,2
DA:1434,3
DA:1435,1
DA:1436,7
DA:1437,2
DA:1438,1
DA:1439,2
DA:1440,2
DA:1443,2
DA:1444,1
DA:1446,0
DA:1447,0
DA:1450,1
DA:1451,1
DA:1452,2
DA:1453,3
DA:1454,2
DA:1457,2
DA:1458,1
DA:1459,3
DA:1439,1
DA:1440,1
DA:1441,1
DA:1446,2
DA:1447,1
DA:1449,0
DA:1450,0
DA:1453,1
DA:1454,1
DA:1455,2
DA:1456,2
DA:1459,2
DA:1460,1
DA:1461,3
DA:1462,3
DA:1463,1
DA:1465,0
DA:1466,0
DA:1467,0
DA:1470,0
DA:1471,0
DA:1472,0
DA:1476,0
DA:1477,0
DA:1480,1
DA:1481,1
DA:1482,1
DA:1487,1
DA:1488,2
DA:1489,1
DA:1462,0
DA:1463,0
DA:1466,1
DA:1467,1
DA:1468,2
DA:1469,3
DA:1470,2
DA:1473,2
DA:1474,1
DA:1475,3
DA:1476,1
DA:1477,3
DA:1478,3
DA:1479,1
DA:1481,0
DA:1482,0
DA:1483,0
DA:1486,0
DA:1487,0
DA:1488,0
DA:1492,0
DA:1493,0
DA:1494,0
DA:1534,1
DA:1535,1
DA:1536,1
DA:1540,1
DA:1541,2
DA:1542,1
DA:1544,0
DA:1545,0
DA:1548,2
DA:1550,1
DA:1552,0
DA:1553,0
DA:1554,0
DA:1555,0
DA:1556,0
DA:1557,0
DA:1558,0
DA:1559,0
DA:1496,1
DA:1497,1
DA:1498,1
DA:1503,1
DA:1504,2
DA:1505,1
DA:1508,0
DA:1509,0
DA:1510,0
DA:1550,2
DA:1551,1
DA:1552,1
DA:1556,1
DA:1557,2
DA:1558,1
DA:1560,0
DA:1561,0
DA:1562,0
DA:1563,0
DA:1564,2
DA:1566,1
DA:1568,0
DA:1569,0
DA:1570,0
DA:1580,2
DA:1582,2
DA:1589,1
DA:1590,6
DA:1591,5
DA:1596,1
DA:1597,2
DA:1571,0
DA:1572,0
DA:1573,0
DA:1574,0
DA:1575,0
DA:1577,0
DA:1578,0
DA:1579,0
DA:1584,0
DA:1585,0
DA:1586,0
DA:1596,2
DA:1598,2
DA:1599,1
DA:1600,2
DA:1602,0
DA:1626,2
DA:1627,4
DA:1628,4
DA:1629,2
DA:1630,0
DA:1632,0
DA:1661,1
DA:1662,2
DA:1663,1
DA:1664,0
DA:1666,3
DA:1667,1
DA:1671,1
DA:1672,2
DA:1673,2
DA:1675,4
DA:1605,1
DA:1606,6
DA:1607,5
DA:1612,1
DA:1613,2
DA:1614,2
DA:1615,1
DA:1616,2
DA:1618,0
DA:1642,2
DA:1643,4
DA:1644,4
DA:1645,2
DA:1646,0
DA:1648,0
DA:1677,1
DA:1678,2
DA:1679,1
DA:1680,2
DA:1681,0
DA:1683,2
DA:1686,0
DA:1687,0
DA:1688,0
DA:1689,0
DA:1690,0
DA:1691,0
DA:1692,0
DA:1693,0
DA:1694,0
DA:1695,0
DA:1696,0
DA:1680,0
DA:1682,3
DA:1683,1
DA:1687,1
DA:1688,2
DA:1689,2
DA:1691,4
DA:1695,1
DA:1696,2
DA:1697,0
DA:1699,0
DA:1701,0
DA:1699,2
DA:1702,0
DA:1703,0
DA:1704,0
DA:1705,0
DA:1706,0
DA:1707,0
DA:1722,1
DA:1723,1
DA:1724,4
DA:1725,2
DA:1729,1
DA:1730,2
DA:1731,2
DA:1732,2
DA:1733,2
DA:1734,5
DA:1737,1
DA:1739,2
DA:1741,4
DA:1744,0
DA:1771,1
DA:1772,2
DA:1773,2
DA:1774,1
DA:1775,6
DA:1708,0
DA:1709,0
DA:1710,0
DA:1711,0
DA:1712,0
DA:1713,0
DA:1715,0
DA:1717,0
DA:1720,0
DA:1721,0
DA:1722,0
DA:1723,0
DA:1738,1
DA:1739,1
DA:1740,4
DA:1741,2
DA:1745,1
DA:1746,2
DA:1747,2
DA:1748,2
DA:1749,2
DA:1750,5
DA:1753,1
DA:1755,2
DA:1757,4
DA:1760,0
DA:1787,1
DA:1789,0
DA:1791,1
DA:1806,1
DA:1788,2
DA:1789,2
DA:1790,1
DA:1791,6
DA:1803,1
DA:1805,0
DA:1807,1
DA:1810,1
DA:1811,3
DA:1822,1
DA:1823,1
DA:1824,1
DA:1827,0
DA:1828,0
DA:1829,0
DA:1831,0
DA:1835,0
DA:1836,0
DA:1837,0
DA:1839,0
DA:1826,1
DA:1827,3
DA:1839,1
DA:1840,1
DA:1843,0
DA:1844,0
DA:1845,0
DA:1851,1
DA:1853,2
DA:1854,1
DA:1855,1
DA:1857,3
DA:1870,2
DA:1847,0
DA:1851,0
DA:1852,0
DA:1853,0
DA:1855,0
DA:1859,0
DA:1861,0
DA:1862,0
DA:1869,1
DA:1871,2
DA:1872,4
DA:1873,4
DA:1874,12
DA:1875,8
DA:1877,1
DA:1878,3
DA:1879,1
DA:1882,1
DA:1884,1
DA:1885,8
LF:662
DA:1872,1
DA:1873,1
DA:1875,3
DA:1888,2
DA:1889,2
DA:1890,4
DA:1891,4
DA:1892,12
DA:1893,8
DA:1895,1
DA:1896,3
DA:1897,1
DA:1900,1
DA:1902,1
DA:1903,8
LF:671
LH:263
end_of_record
+1 −0
Original line number Diff line number Diff line
@@ -32,3 +32,4 @@ sha2 = "0.10.8"
which = "6.0.3"
reqwest = "0.12.8"
bytes = "1.7.2"
is_executable = "1.0.4"
+23 −5
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use clap::ValueEnum;
use color_eyre::eyre::{Report, Result};
use derive_more::{Display, FromStr};
use fancy_regex::Regex;
use is_executable::IsExecutable;
use is_terminal::IsTerminal;
use owo_colors::{OwoColorize, Style, Styled};
use rayon::prelude::*;
@@ -556,7 +557,18 @@ impl Config {
                                    | Some(value) if value == &calculated_checksum => {
                                        info!(module = module.name, url, "=> {} Checksum verified", Label::pass());
                                        if let Ok(path) = output {
                                            make_executable(&path);
                                            if !make_executable(&path) {
                                                error!(
                                                    module = module.name,
                                                    url,
                                                    checksum,
                                                    "=> {} Downloaded binary is not executable",
                                                    Label::fail()
                                                );
                                                std::process::exit(exitcode::USAGE);
                                            } else {
                                                info!(module = module.name, url, "=> {} Downloaded binary is executable", Label::pass());
                                            }
                                        }
                                    }
                                    | Some(_) => {
@@ -581,7 +593,6 @@ impl Config {
                                        std::process::exit(exitcode::UNAVAILABLE);
                                    }
                                }
                                // TODO: Verify binary is executable (https://docs.rs/is_executable/latest/is_executable/)
                            } else {
                                warn!(module = module.name, url, "=> {} Skipping checksum verification", Label::pass());
                            }
@@ -594,8 +605,13 @@ impl Config {
                | ModuleUri::File(value) => match value.try_exists() {
                    | Ok(true) => {
                        let path = value.into_os_string().into_string().unwrap();
                        // TODO: Verify binary is executable (https://docs.rs/is_executable/latest/is_executable/)
                        debug!(module = module.name, path, "=> {} Local binary", Label::found());
                        if !make_executable(&PathBuf::from(path.clone())) {
                            error!(module = module.name, path, "=> {} Binary is not executable", Label::fail());
                            std::process::exit(exitcode::USAGE);
                        } else {
                            info!(module = module.name, path, "=> {} Binary is executable", Label::pass());
                        }
                    }
                    | _ => {
                        let path = value.into_os_string().into_string().unwrap();
@@ -1840,13 +1856,15 @@ pub fn is_stdout_piped() -> StdoutIsPipedResult {
    }
}
#[cfg(any(unix, target_os = "wasi", target_os = "redox"))]
fn make_executable(path: &PathBuf) {
fn make_executable(path: &PathBuf) -> bool {
    use std::os::unix::fs::PermissionsExt;
    std::fs::set_permissions(path, std::fs::Permissions::from_mode(0o755)).unwrap();
    path.is_executable()
}
#[cfg(windows)]
fn make_executable(path: &PathBuf) {
fn make_executable(path: &PathBuf) -> bool {
    // TODO: Add windows support...pass through?
    path.is_executable()
}
fn path_to_string(path: PathBuf) -> String {
    // NOTE: fs::canonicalize might cause problems on Windows