Commit eb5cfb8e authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

feat: Support configuring run options from config.json

parent 1ed17359
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2248,6 +2248,7 @@ dependencies = [
 "glob",
 "indicatif",
 "nanoid",
 "owo-colors 4.0.0",
 "pipe-lib",
 "rayon",
 "serde",
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ clap-verbosity-flag = "2.2.0"
color-eyre = "0.6.3"
dotenvy = "0.15.0"
exitcode = "1.1.2"
owo-colors = "4.0.0"
rayon = "1.7.0"
serde = { version = "1.0.188", features = ["derive"] }
serde_json = "1.0.107"
+356 −343
Original line number Diff line number Diff line
@@ -108,37 +108,46 @@ LH:0
end_of_record
TN:
SF:/root/dev/command/pipe-cli/src/commands/run/mod.rs
FN:13,run
FN:14,run
FNF:1
FNDA:0,run
DA:13,0
DA:23,0
DA:14,0
DA:24,0
DA:25,0
DA:27,0
DA:26,0
DA:28,0
DA:30,0
DA:32,0
DA:29,0
DA:31,0
DA:33,0
DA:34,0
DA:36,0
DA:35,0
DA:37,0
DA:39,0
DA:38,0
DA:40,0
DA:41,0
DA:44,0
DA:42,0
DA:45,0
DA:46,0
DA:47,0
DA:53,0
DA:48,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:62,0
DA:69,0
DA:71,0
LF:27
DA:70,0
DA:75,0
DA:76,0
DA:77,0
DA:78,0
DA:81,0
DA:82,0
DA:86,0
DA:88,0
LF:36
LH:0
end_of_record
TN:
@@ -298,45 +307,46 @@ FN:1098,Label::read
FN:1102,Label::rejected
FN:1106,Label::run
FN:1110,Label::using
FN:1116,ModuleUri<'_>::from
FN:1126,ModuleUri<'_>::hash
FN:1150,ModuleUri<'_>::get_whitelist
FN:1153,ModuleUri<'_>::is_allowed
FN:1156,ModuleUri<'_>::test
FN:1157,ModuleUri<'_>::test::check
FN:1174,ModuleUri<'_>::working_directory
FN:1188,<impl Deref for PyProjectToml>::deref
FN:1193,PyProjectToml::read
FN:1209,PyProjectToml::get_module_name
FN:1220,SemanticVersion::from_string
FN:1229,Script::ensure_relative
FN:1248,Script::expand_arguments
FN:1283,Script::expand_arguments_from
FN:1318,Script::from_module
FN:1376,Script::from_path
FN:1391,Script::from_template
FN:1411,Script::get_command
FN:1421,Script::get_arguments
FN:1461,Script::maybe_create_virtual_environment
FN:1502,Script::maybe_git_clone
FN:1509,Script::python_default
FN:1523,Script::run
FN:1590,Script::with_container
FN:1597,Script::with_current_dir
FN:1602,Script::with_envs
FN:1644,Script::with_virtual_environment
FN:1650,ScriptTemplate::from_path
FN:1662,ScriptTemplate::resolve_python_virtual_environment
FN:1690,StringTemplate::new
FN:1699,StringTemplate::expand
FN:1706,StringTemplate::get_variable
FN:1736,StringTemplate::is_handlebars
FN:1771,StringTemplate::remove_spaces
FN:1781,add_dot_slash
FN:1789,add_forward_slash
FN:1796,download_binary
FN:1797,download_binary::download
FNF:76
FN:1113,Label::fmt_using
FN:1119,ModuleUri<'_>::from
FN:1129,ModuleUri<'_>::hash
FN:1153,ModuleUri<'_>::get_whitelist
FN:1156,ModuleUri<'_>::is_allowed
FN:1159,ModuleUri<'_>::test
FN:1160,ModuleUri<'_>::test::check
FN:1177,ModuleUri<'_>::working_directory
FN:1191,<impl Deref for PyProjectToml>::deref
FN:1196,PyProjectToml::read
FN:1212,PyProjectToml::get_module_name
FN:1223,SemanticVersion::from_string
FN:1232,Script::ensure_relative
FN:1251,Script::expand_arguments
FN:1286,Script::expand_arguments_from
FN:1321,Script::from_module
FN:1379,Script::from_path
FN:1394,Script::from_template
FN:1414,Script::get_command
FN:1424,Script::get_arguments
FN:1464,Script::maybe_create_virtual_environment
FN:1505,Script::maybe_git_clone
FN:1512,Script::python_default
FN:1526,Script::run
FN:1593,Script::with_container
FN:1600,Script::with_current_dir
FN:1605,Script::with_envs
FN:1647,Script::with_virtual_environment
FN:1653,ScriptTemplate::from_path
FN:1665,ScriptTemplate::resolve_python_virtual_environment
FN:1693,StringTemplate::new
FN:1702,StringTemplate::expand
FN:1709,StringTemplate::get_variable
FN:1739,StringTemplate::is_handlebars
FN:1774,StringTemplate::remove_spaces
FN:1784,add_dot_slash
FN:1792,add_forward_slash
FN:1799,download_binary
FN:1800,download_binary::download
FNF:77
FNDA:1,Command::test
FNDA:0,Config::get_environment_variables
FNDA:1,Config::get_inputs
@@ -369,12 +379,13 @@ FNDA:0,Label::found
FNDA:0,Label::not_found
FNDA:0,Label::fmt_not_found
FNDA:1,Label::output
FNDA:5,Label::fmt_output
FNDA:1,Label::fmt_output
FNDA:0,Label::pass
FNDA:0,Label::read
FNDA:0,Label::rejected
FNDA:0,Label::run
FNDA:0,Label::using
FNDA:4,Label::using
FNDA:4,Label::fmt_using
FNDA:2,ModuleUri<'_>::from
FNDA:1,ModuleUri<'_>::hash
FNDA:0,ModuleUri<'_>::get_whitelist
@@ -737,10 +748,10 @@ DA:1083,0
DA:1084,0
DA:1085,0
DA:1087,1
DA:1088,5
DA:1090,5
DA:1091,5
DA:1092,5
DA:1088,1
DA:1090,1
DA:1091,1
DA:1092,1
DA:1094,0
DA:1095,0
DA:1096,0
@@ -753,316 +764,315 @@ DA:1104,0
DA:1106,0
DA:1107,0
DA:1108,0
DA:1110,0
DA:1111,0
DA:1112,0
DA:1116,2
DA:1117,2
DA:1118,3
DA:1119,1
DA:1110,4
DA:1111,4
DA:1113,4
DA:1114,4
DA:1115,4
DA:1119,2
DA:1120,2
DA:1121,0
DA:1123,1
DA:1121,3
DA:1122,1
DA:1123,2
DA:1124,0
DA:1126,1
DA:1127,1
DA:1128,1
DA:1129,1
DA:1130,1
DA:1131,0
DA:1133,2
DA:1137,2
DA:1138,2
DA:1131,1
DA:1132,1
DA:1133,1
DA:1134,0
DA:1136,2
DA:1140,2
DA:1141,2
DA:1143,2
DA:1146,0
DA:1150,0
DA:1151,0
DA:1144,2
DA:1146,2
DA:1149,0
DA:1153,0
DA:1154,0
DA:1156,0
DA:1157,0
DA:1158,0
DA:1159,0
DA:1160,0
DA:1161,0
DA:1162,0
DA:1163,0
DA:1164,0
DA:1165,0
DA:1166,0
DA:1167,0
DA:1168,0
DA:1170,0
DA:1174,0
DA:1175,0
DA:1176,0
DA:1169,0
DA:1171,0
DA:1173,0
DA:1177,0
DA:1178,0
DA:1179,0
DA:1180,0
DA:1181,0
DA:1188,1
DA:1193,1
DA:1194,2
DA:1195,2
DA:1197,0
DA:1198,0
DA:1201,2
DA:1202,1
DA:1203,2
DA:1204,0
DA:1206,3
DA:1207,1
DA:1209,1
DA:1183,0
DA:1184,0
DA:1191,1
DA:1196,1
DA:1197,2
DA:1198,2
DA:1200,0
DA:1201,0
DA:1204,2
DA:1205,1
DA:1206,2
DA:1207,0
DA:1209,3
DA:1210,1
DA:1211,1
DA:1212,1
DA:1213,0
DA:1215,0
DA:1220,1
DA:1221,1
DA:1222,3
DA:1223,3
DA:1224,3
DA:1229,1
DA:1230,1
DA:1231,2
DA:1213,1
DA:1214,1
DA:1215,1
DA:1216,0
DA:1218,0
DA:1223,1
DA:1224,1
DA:1225,3
DA:1226,3
DA:1227,3
DA:1232,1
DA:1248,1
DA:1249,2
DA:1233,1
DA:1234,2
DA:1235,1
DA:1251,1
DA:1252,2
DA:1253,1
DA:1254,2
DA:1255,1
DA:1255,2
DA:1256,1
DA:1258,2
DA:1262,1
DA:1263,1
DA:1283,1
DA:1284,2
DA:1257,2
DA:1258,1
DA:1259,1
DA:1261,2
DA:1265,1
DA:1266,1
DA:1286,1
DA:1287,2
DA:1288,1
DA:1289,2
DA:1290,2
DA:1291,1
DA:1292,2
DA:1293,2
DA:1295,1
DA:1297,2
DA:1301,1
DA:1302,1
DA:1318,0
DA:1320,0
DA:1296,2
DA:1298,1
DA:1300,2
DA:1304,1
DA:1305,1
DA:1321,0
DA:1322,0
DA:1323,0
DA:1324,0
DA:1325,0
DA:1326,0
DA:1327,0
DA:1328,0
DA:1329,0
DA:1330,0
DA:1331,0
DA:1332,0
DA:1333,0
DA:1334,0
DA:1335,0
DA:1336,0
DA:1337,0
DA:1338,0
DA:1339,0
DA:1340,0
DA:1341,0
DA:1342,0
DA:1343,0
DA:1344,0
DA:1345,0
DA:1346,0
DA:1347,0
DA:1349,0
DA:1350,0
DA:1352,0
DA:1353,0
DA:1359,0
DA:1360,0
DA:1376,1
DA:1377,1
DA:1378,1
DA:1391,1
DA:1392,1
DA:1393,3
DA:1397,2
DA:1399,2
DA:1401,2
DA:1405,1
DA:1406,1
DA:1407,1
DA:1409,2
DA:1411,1
DA:1412,1
DA:1413,1
DA:1356,0
DA:1362,0
DA:1363,0
DA:1379,1
DA:1380,1
DA:1381,1
DA:1394,1
DA:1395,1
DA:1396,3
DA:1400,2
DA:1402,2
DA:1404,2
DA:1408,1
DA:1409,1
DA:1410,1
DA:1412,2
DA:1414,1
DA:1416,1
DA:1417,2
DA:1418,1
DA:1415,1
DA:1416,2
DA:1417,1
DA:1419,1
DA:1420,2
DA:1421,1
DA:1422,1
DA:1423,1
DA:1424,1
DA:1425,2
DA:1426,1
DA:1427,0
DA:1429,0
DA:1425,1
DA:1426,2
DA:1427,2
DA:1428,2
DA:1429,1
DA:1430,0
DA:1433,4
DA:1434,2
DA:1436,1
DA:1438,1
DA:1432,0
DA:1433,0
DA:1436,4
DA:1437,2
DA:1439,1
DA:1440,1
DA:1441,2
DA:1442,2
DA:1444,1
DA:1446,2
DA:1447,2
DA:1449,0
DA:1450,0
DA:1453,1
DA:1454,1
DA:1441,1
DA:1442,1
DA:1443,1
DA:1444,2
DA:1445,2
DA:1447,1
DA:1449,2
DA:1450,2
DA:1452,0
DA:1453,0
DA:1456,1
DA:1461,0
DA:1462,0
DA:1463,0
DA:1457,1
DA:1459,1
DA:1464,0
DA:1465,0
DA:1466,0
DA:1467,0
DA:1468,0
DA:1469,0
DA:1470,0
DA:1471,0
DA:1472,0
DA:1473,0
DA:1474,0
DA:1475,0
DA:1476,0
DA:1477,0
DA:1478,0
DA:1479,0
DA:1480,0
DA:1481,0
DA:1482,0
DA:1484,0
DA:1485,0
DA:1489,0
DA:1490,0
DA:1488,0
DA:1492,0
DA:1493,0
DA:1498,0
DA:1502,1
DA:1503,2
DA:1504,2
DA:1505,2
DA:1506,3
DA:1507,1
DA:1509,0
DA:1510,0
DA:1511,0
DA:1519,0
DA:1523,1
DA:1524,1
DA:1525,1
DA:1526,2
DA:1527,2
DA:1528,3
DA:1529,1
DA:1530,7
DA:1531,2
DA:1496,0
DA:1501,0
DA:1505,1
DA:1506,2
DA:1507,2
DA:1508,2
DA:1509,3
DA:1510,1
DA:1512,0
DA:1513,0
DA:1514,0
DA:1522,0
DA:1526,1
DA:1527,1
DA:1528,1
DA:1529,2
DA:1530,2
DA:1531,3
DA:1532,1
DA:1533,1
DA:1534,1
DA:1533,7
DA:1534,2
DA:1535,1
DA:1540,2
DA:1541,1
DA:1543,0
DA:1544,0
DA:1547,1
DA:1548,1
DA:1549,2
DA:1550,2
DA:1536,1
DA:1537,1
DA:1538,1
DA:1543,2
DA:1544,1
DA:1546,0
DA:1547,0
DA:1550,1
DA:1551,1
DA:1552,2
DA:1553,2
DA:1554,1
DA:1556,0
DA:1557,0
DA:1560,1
DA:1561,1
DA:1562,2
DA:1563,3
DA:1564,2
DA:1556,2
DA:1557,1
DA:1559,0
DA:1560,0
DA:1563,1
DA:1564,1
DA:1565,2
DA:1566,3
DA:1567,2
DA:1568,1
DA:1569,3
DA:1570,1
DA:1571,3
DA:1570,2
DA:1571,1
DA:1572,3
DA:1573,1
DA:1575,0
DA:1576,0
DA:1577,0
DA:1574,3
DA:1575,3
DA:1576,1
DA:1578,0
DA:1579,0
DA:1580,0
DA:1581,0
DA:1582,0
DA:1586,0
DA:1587,0
DA:1590,1
DA:1591,1
DA:1592,1
DA:1597,1
DA:1598,2
DA:1599,1
DA:1602,0
DA:1603,0
DA:1604,0
DA:1644,1
DA:1645,2
DA:1646,1
DA:1650,1
DA:1651,2
DA:1652,1
DA:1654,0
DA:1655,0
DA:1658,2
DA:1660,1
DA:1662,0
DA:1663,0
DA:1664,0
DA:1583,0
DA:1584,0
DA:1585,0
DA:1589,0
DA:1590,0
DA:1593,1
DA:1594,1
DA:1595,1
DA:1600,1
DA:1601,2
DA:1602,1
DA:1605,0
DA:1606,0
DA:1607,0
DA:1647,1
DA:1648,2
DA:1649,2
DA:1653,1
DA:1654,2
DA:1655,1
DA:1657,0
DA:1658,0
DA:1661,2
DA:1663,1
DA:1665,0
DA:1666,0
DA:1667,0
DA:1668,0
DA:1669,0
DA:1670,0
DA:1671,0
DA:1672,0
DA:1673,0
DA:1678,0
DA:1679,0
DA:1680,0
DA:1690,1
DA:1692,1
DA:1699,1
DA:1700,4
DA:1701,3
DA:1706,1
DA:1707,2
DA:1708,2
DA:1674,0
DA:1675,0
DA:1676,0
DA:1681,0
DA:1682,0
DA:1683,0
DA:1693,1
DA:1695,1
DA:1702,1
DA:1703,4
DA:1704,3
DA:1709,1
DA:1710,2
DA:1712,0
DA:1736,1
DA:1737,2
DA:1738,2
DA:1711,2
DA:1712,1
DA:1713,2
DA:1715,0
DA:1739,1
DA:1740,0
DA:1742,0
DA:1771,1
DA:1772,2
DA:1773,1
DA:1774,0
DA:1776,3
DA:1777,1
DA:1781,1
DA:1782,2
DA:1783,2
DA:1785,4
DA:1789,1
DA:1790,2
DA:1791,0
DA:1740,2
DA:1741,2
DA:1742,1
DA:1743,0
DA:1745,0
DA:1774,1
DA:1775,2
DA:1776,1
DA:1777,0
DA:1779,3
DA:1780,1
DA:1784,1
DA:1785,2
DA:1786,2
DA:1788,4
DA:1792,1
DA:1793,2
DA:1796,0
DA:1797,0
DA:1798,0
DA:1794,0
DA:1796,2
DA:1799,0
DA:1800,0
DA:1801,0
@@ -1072,70 +1082,73 @@ DA:1804,0
DA:1805,0
DA:1806,0
DA:1807,0
DA:1808,0
DA:1809,0
DA:1811,0
DA:1810,0
DA:1812,0
DA:1814,0
DA:1815,0
DA:1816,0
DA:1817,0
DA:1832,1
DA:1833,1
DA:1834,4
DA:1835,2
DA:1839,1
DA:1840,2
DA:1841,2
DA:1842,2
DA:1818,0
DA:1819,0
DA:1820,0
DA:1835,1
DA:1836,1
DA:1837,4
DA:1838,2
DA:1842,1
DA:1843,2
DA:1844,5
DA:1847,1
DA:1849,2
DA:1851,4
DA:1854,0
DA:1881,1
DA:1882,2
DA:1883,2
DA:1844,2
DA:1845,2
DA:1846,2
DA:1847,5
DA:1850,1
DA:1852,2
DA:1854,4
DA:1857,0
DA:1884,1
DA:1885,6
DA:1897,1
DA:1899,0
DA:1901,1
DA:1916,3
DA:1917,3
DA:1920,1
DA:1921,3
DA:1933,1
DA:1934,1
DA:1937,0
DA:1938,0
DA:1939,0
DA:1885,2
DA:1886,2
DA:1887,1
DA:1888,6
DA:1900,1
DA:1902,0
DA:1904,1
DA:1919,3
DA:1920,3
DA:1923,1
DA:1924,3
DA:1936,1
DA:1937,1
DA:1940,0
DA:1941,0
DA:1945,0
DA:1946,0
DA:1947,0
DA:1942,0
DA:1944,0
DA:1948,0
DA:1949,0
DA:1953,0
DA:1955,0
DA:1950,0
DA:1952,0
DA:1956,0
DA:1963,1
DA:1965,2
DA:1958,0
DA:1959,0
DA:1966,1
DA:1967,1
DA:1969,3
DA:1982,2
DA:1983,2
DA:1984,4
DA:1985,3
DA:1986,9
DA:1987,6
DA:1989,1
DA:1990,3
DA:1991,1
DA:1968,2
DA:1969,1
DA:1970,1
DA:1972,3
DA:1985,2
DA:1986,2
DA:1987,4
DA:1988,3
DA:1989,9
DA:1990,6
DA:1992,1
DA:1993,3
DA:1994,1
DA:1996,1
DA:1997,4
DA:1997,1
DA:1999,1
DA:2000,3
LF:723
LH:294
DA:2000,4
DA:2002,1
DA:2003,3
LF:725
LH:299
end_of_record
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ clap-verbosity-flag = { workspace = true }
color-eyre = { workspace = true }
dotenvy = { workspace = true }
exitcode = { workspace = true }
owo-colors = { workspace = true }
rayon = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
+28 −11
Original line number Diff line number Diff line
use clap_verbosity_flag::Verbosity;
use color_eyre::eyre::Report;
use nanoid::nanoid;
use owo_colors::OwoColorize;
use pipe_lib::{Config, ConfigOptions, EnvironmentValue, Label};
use rayon::prelude::*;
use std::env;
@@ -14,10 +15,10 @@ pub fn run(
    config: &Option<PathBuf>,
    _reporter: &Option<Vec<String>>,
    _output: &Option<PathBuf>,
    dry_run: bool,
    offline: bool,
    skip_verify_checksum: bool,
    skip_verify_requirements: bool,
    cli_dry_run: bool,
    cli_offline: bool,
    cli_skip_verify_checksum: bool,
    cli_skip_verify_requirements: bool,
    _verbose: Verbosity,
) -> Result<(), Report> {
    let id = nanoid!(10, &nanoid::alphabet::SAFE);
@@ -43,13 +44,29 @@ pub fn run(
    };
    match Config::read(config_path) {
        | Some(cfg) => {
            let options = ConfigOptions::init()
            let options = match &cfg.options {
                | Some(ConfigOptions {
                    dry_run,
                    offline,
                    skip_verify_checksum,
                    skip_verify_requirements,
                    ..
                }) => ConfigOptions::init()
                    .root(root.clone())
                .dry_run(dry_run)
                .offline(offline)
                .skip_verify_checksum(skip_verify_checksum)
                .skip_verify_requirements(skip_verify_requirements)
                .build();
                    .dry_run(cli_dry_run || dry_run.unwrap_or_default())
                    .offline(cli_offline || offline.unwrap_or_default())
                    .skip_verify_checksum(cli_skip_verify_checksum || skip_verify_checksum.unwrap_or_default())
                    .skip_verify_requirements(cli_skip_verify_requirements || skip_verify_requirements.unwrap_or_default())
                    .build(),
                | None => ConfigOptions::init()
                    .root(root.clone())
                    .dry_run(cli_dry_run)
                    .offline(cli_offline)
                    .skip_verify_checksum(cli_skip_verify_checksum)
                    .skip_verify_requirements(cli_skip_verify_requirements)
                    .build(),
            };
            debug!("=> {} Run configuration options = {}", Label::using(), format!("{:#?}", options).dimmed());
            let config = cfg
                .verify_requirements(&options)
                .verify_resources(&options)
Loading