From ffae4270565cc18238dfa338aaa36c0c0f11b817 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 9 Sep 2020 11:22:31 -0500 Subject: [PATCH 001/325] INIT --- .freeCodeCamp/.mocharc.json | 8 + .freeCodeCamp/package-lock.json | 822 ++++++++++++++++++++++++++++++++ .freeCodeCamp/package.json | 18 + .freeCodeCamp/reset.sh | 0 .freeCodeCamp/setup.sh | 3 + .freeCodeCamp/test/10.test.js | 10 + .freeCodeCamp/test/100.test.js | 11 + .freeCodeCamp/test/1000.test.js | 12 + .freeCodeCamp/test/1010.test.js | 11 + .freeCodeCamp/test/1020.test.js | 10 + .freeCodeCamp/test/1030.test.js | 10 + .freeCodeCamp/test/1040.test.js | 10 + .freeCodeCamp/test/1050.test.js | 10 + .freeCodeCamp/test/1060.test.js | 11 + .freeCodeCamp/test/1070.test.js | 11 + .freeCodeCamp/test/1080.test.js | 10 + .freeCodeCamp/test/1090.test.js | 10 + .freeCodeCamp/test/110.test.js | 11 + .freeCodeCamp/test/1100.test.js | 10 + .freeCodeCamp/test/1110.test.js | 10 + .freeCodeCamp/test/1120.test.js | 11 + .freeCodeCamp/test/1130.test.js | 11 + .freeCodeCamp/test/1140.test.js | 11 + .freeCodeCamp/test/1150.test.js | 12 + .freeCodeCamp/test/1160.test.js | 10 + .freeCodeCamp/test/1170.test.js | 10 + .freeCodeCamp/test/1180.test.js | 10 + .freeCodeCamp/test/1190.test.js | 10 + .freeCodeCamp/test/1200.test.js | 11 + .freeCodeCamp/test/1210.test.js | 11 + .freeCodeCamp/test/1220.test.js | 10 + .freeCodeCamp/test/1230.test.js | 11 + .freeCodeCamp/test/1240.test.js | 10 + .freeCodeCamp/test/1250.test.js | 10 + .freeCodeCamp/test/1260.test.js | 11 + .freeCodeCamp/test/1270.test.js | 11 + .freeCodeCamp/test/1280.test.js | 10 + .freeCodeCamp/test/1290.test.js | 10 + .freeCodeCamp/test/1300.test.js | 10 + .freeCodeCamp/test/1310.test.js | 10 + .freeCodeCamp/test/1320.test.js | 10 + .freeCodeCamp/test/1330.test.js | 10 + .freeCodeCamp/test/1340.test.js | 10 + .freeCodeCamp/test/1350.test.js | 11 + .freeCodeCamp/test/1360.test.js | 10 + .freeCodeCamp/test/1370.test.js | 10 + .freeCodeCamp/test/1380.test.js | 10 + .freeCodeCamp/test/1385.test.js | 10 + .freeCodeCamp/test/1390.test.js | 11 + .freeCodeCamp/test/140.test.js | 10 + .freeCodeCamp/test/1400.test.js | 11 + .freeCodeCamp/test/1410.test.js | 11 + .freeCodeCamp/test/1412.test.js | 10 + .freeCodeCamp/test/1413.test.js | 11 + .freeCodeCamp/test/1416.test.js | 11 + .freeCodeCamp/test/1420.test.js | 11 + .freeCodeCamp/test/1425.test.js | 10 + .freeCodeCamp/test/1428.test.js | 11 + .freeCodeCamp/test/1430.test.js | 11 + .freeCodeCamp/test/1440.test.js | 10 + .freeCodeCamp/test/1450.test.js | 10 + .freeCodeCamp/test/1460.test.js | 10 + .freeCodeCamp/test/1470.test.js | 11 + .freeCodeCamp/test/1480.test.js | 11 + .freeCodeCamp/test/1490.test.js | 17 + .freeCodeCamp/test/150.test.js | 11 + .freeCodeCamp/test/1500.test.js | 10 + .freeCodeCamp/test/1510.test.js | 11 + .freeCodeCamp/test/1520.test.js | 10 + .freeCodeCamp/test/1530.test.js | 10 + .freeCodeCamp/test/1540.test.js | 10 + .freeCodeCamp/test/1550.test.js | 10 + .freeCodeCamp/test/1560.test.js | 10 + .freeCodeCamp/test/1570.test.js | 10 + .freeCodeCamp/test/1580.test.js | 10 + .freeCodeCamp/test/1590.test.js | 10 + .freeCodeCamp/test/160.test.js | 11 + .freeCodeCamp/test/1600.test.js | 10 + .freeCodeCamp/test/1610.test.js | 10 + .freeCodeCamp/test/170.test.js | 10 + .freeCodeCamp/test/180.test.js | 11 + .freeCodeCamp/test/190.test.js | 11 + .freeCodeCamp/test/20.test.js | 11 + .freeCodeCamp/test/200.test.js | 11 + .freeCodeCamp/test/210.test.js | 11 + .freeCodeCamp/test/220.test.js | 11 + .freeCodeCamp/test/230.test.js | 10 + .freeCodeCamp/test/240.test.js | 11 + .freeCodeCamp/test/250.test.js | 11 + .freeCodeCamp/test/260.test.js | 11 + .freeCodeCamp/test/270.test.js | 11 + .freeCodeCamp/test/280.test.js | 10 + .freeCodeCamp/test/290.test.js | 11 + .freeCodeCamp/test/30.test.js | 10 + .freeCodeCamp/test/300.test.js | 10 + .freeCodeCamp/test/310.test.js | 10 + .freeCodeCamp/test/320.test.js | 10 + .freeCodeCamp/test/323.test.js | 11 + .freeCodeCamp/test/326.test.js | 10 + .freeCodeCamp/test/330.test.js | 11 + .freeCodeCamp/test/340.test.js | 10 + .freeCodeCamp/test/345.test.js | 11 + .freeCodeCamp/test/35.test.js | 11 + .freeCodeCamp/test/350.test.js | 11 + .freeCodeCamp/test/360.test.js | 11 + .freeCodeCamp/test/363.test.js | 11 + .freeCodeCamp/test/366.test.js | 10 + .freeCodeCamp/test/370.test.js | 11 + .freeCodeCamp/test/380.test.js | 11 + .freeCodeCamp/test/390.test.js | 10 + .freeCodeCamp/test/40.test.js | 11 + .freeCodeCamp/test/400.test.js | 10 + .freeCodeCamp/test/410.test.js | 10 + .freeCodeCamp/test/420.test.js | 10 + .freeCodeCamp/test/425.test.js | 11 + .freeCodeCamp/test/430.test.js | 11 + .freeCodeCamp/test/440.test.js | 10 + .freeCodeCamp/test/450.test.js | 11 + .freeCodeCamp/test/460.test.js | 10 + .freeCodeCamp/test/470.test.js | 10 + .freeCodeCamp/test/480.test.js | 10 + .freeCodeCamp/test/490.test.js | 12 + .freeCodeCamp/test/50.test.js | 10 + .freeCodeCamp/test/500.test.js | 11 + .freeCodeCamp/test/505.test.js | 11 + .freeCodeCamp/test/510.test.js | 11 + .freeCodeCamp/test/520.test.js | 11 + .freeCodeCamp/test/530.test.js | 11 + .freeCodeCamp/test/540.test.js | 11 + .freeCodeCamp/test/542.test.js | 11 + .freeCodeCamp/test/544.test.js | 10 + .freeCodeCamp/test/546.test.js | 10 + .freeCodeCamp/test/548.test.js | 10 + .freeCodeCamp/test/550.test.js | 11 + .freeCodeCamp/test/552.test.js | 11 + .freeCodeCamp/test/554.test.js | 10 + .freeCodeCamp/test/556.test.js | 13 + .freeCodeCamp/test/558.test.js | 10 + .freeCodeCamp/test/560.test.js | 13 + .freeCodeCamp/test/562.test.js | 10 + .freeCodeCamp/test/564.test.js | 10 + .freeCodeCamp/test/566.test.js | 10 + .freeCodeCamp/test/568.test.js | 10 + .freeCodeCamp/test/570.test.js | 10 + .freeCodeCamp/test/572.test.js | 10 + .freeCodeCamp/test/574.test.js | 10 + .freeCodeCamp/test/575.test.js | 10 + .freeCodeCamp/test/576.test.js | 10 + .freeCodeCamp/test/582.test.js | 10 + .freeCodeCamp/test/584.test.js | 10 + .freeCodeCamp/test/586.test.js | 10 + .freeCodeCamp/test/588.test.js | 11 + .freeCodeCamp/test/590.test.js | 11 + .freeCodeCamp/test/60.test.js | 10 + .freeCodeCamp/test/600.test.js | 11 + .freeCodeCamp/test/610.test.js | 12 + .freeCodeCamp/test/615.test.js | 10 + .freeCodeCamp/test/620.test.js | 10 + .freeCodeCamp/test/630.test.js | 11 + .freeCodeCamp/test/640.test.js | 10 + .freeCodeCamp/test/650.test.js | 10 + .freeCodeCamp/test/660.test.js | 10 + .freeCodeCamp/test/670.test.js | 10 + .freeCodeCamp/test/675.test.js | 10 + .freeCodeCamp/test/680.test.js | 10 + .freeCodeCamp/test/690.test.js | 11 + .freeCodeCamp/test/692.test.js | 10 + .freeCodeCamp/test/694.test.js | 11 + .freeCodeCamp/test/696.test.js | 10 + .freeCodeCamp/test/698.test.js | 11 + .freeCodeCamp/test/70.test.js | 11 + .freeCodeCamp/test/700.test.js | 11 + .freeCodeCamp/test/710.test.js | 10 + .freeCodeCamp/test/730.test.js | 11 + .freeCodeCamp/test/740.test.js | 10 + .freeCodeCamp/test/750.test.js | 10 + .freeCodeCamp/test/760.test.js | 10 + .freeCodeCamp/test/770.test.js | 11 + .freeCodeCamp/test/780.test.js | 11 + .freeCodeCamp/test/790.test.js | 10 + .freeCodeCamp/test/80.test.js | 11 + .freeCodeCamp/test/800.test.js | 10 + .freeCodeCamp/test/810.test.js | 10 + .freeCodeCamp/test/815.test.js | 10 + .freeCodeCamp/test/817.test.js | 9 + .freeCodeCamp/test/818.test.js | 8 + .freeCodeCamp/test/819.test.js | 11 + .freeCodeCamp/test/820.test.js | 10 + .freeCodeCamp/test/822.test.js | 10 + .freeCodeCamp/test/824.test.js | 10 + .freeCodeCamp/test/826.test.js | 10 + .freeCodeCamp/test/828.test.js | 10 + .freeCodeCamp/test/830.test.js | 11 + .freeCodeCamp/test/835.test.js | 10 + .freeCodeCamp/test/840.test.js | 11 + .freeCodeCamp/test/881.test.js | 10 + .freeCodeCamp/test/884.test.js | 10 + .freeCodeCamp/test/887.test.js | 10 + .freeCodeCamp/test/890.test.js | 10 + .freeCodeCamp/test/891.test.js | 10 + .freeCodeCamp/test/893.test.js | 10 + .freeCodeCamp/test/896.test.js | 10 + .freeCodeCamp/test/897.test.js | 10 + .freeCodeCamp/test/899.test.js | 10 + .freeCodeCamp/test/90.test.js | 10 + .freeCodeCamp/test/902.test.js | 10 + .freeCodeCamp/test/905.test.js | 10 + .freeCodeCamp/test/908.test.js | 10 + .freeCodeCamp/test/911.test.js | 10 + .freeCodeCamp/test/912.test.js | 10 + .freeCodeCamp/test/913.test.js | 10 + .freeCodeCamp/test/914.test.js | 10 + .freeCodeCamp/test/916.test.js | 10 + .freeCodeCamp/test/918.test.js | 10 + .freeCodeCamp/test/920.test.js | 10 + .freeCodeCamp/test/928.test.js | 11 + .freeCodeCamp/test/930.test.js | 12 + .freeCodeCamp/test/940.test.js | 11 + .freeCodeCamp/test/945.test.js | 10 + .freeCodeCamp/test/950.test.js | 12 + .freeCodeCamp/test/960.test.js | 12 + .freeCodeCamp/test/970.test.js | 12 + .freeCodeCamp/test/980.test.js | 12 + .freeCodeCamp/test/990.test.js | 12 + .freeCodeCamp/test/utils.js | 170 +++++++ 225 files changed, 3319 insertions(+) create mode 100644 .freeCodeCamp/.mocharc.json create mode 100644 .freeCodeCamp/package-lock.json create mode 100644 .freeCodeCamp/package.json create mode 100755 .freeCodeCamp/reset.sh create mode 100755 .freeCodeCamp/setup.sh create mode 100644 .freeCodeCamp/test/10.test.js create mode 100644 .freeCodeCamp/test/100.test.js create mode 100644 .freeCodeCamp/test/1000.test.js create mode 100644 .freeCodeCamp/test/1010.test.js create mode 100644 .freeCodeCamp/test/1020.test.js create mode 100644 .freeCodeCamp/test/1030.test.js create mode 100644 .freeCodeCamp/test/1040.test.js create mode 100644 .freeCodeCamp/test/1050.test.js create mode 100644 .freeCodeCamp/test/1060.test.js create mode 100644 .freeCodeCamp/test/1070.test.js create mode 100644 .freeCodeCamp/test/1080.test.js create mode 100644 .freeCodeCamp/test/1090.test.js create mode 100644 .freeCodeCamp/test/110.test.js create mode 100644 .freeCodeCamp/test/1100.test.js create mode 100644 .freeCodeCamp/test/1110.test.js create mode 100644 .freeCodeCamp/test/1120.test.js create mode 100644 .freeCodeCamp/test/1130.test.js create mode 100644 .freeCodeCamp/test/1140.test.js create mode 100644 .freeCodeCamp/test/1150.test.js create mode 100644 .freeCodeCamp/test/1160.test.js create mode 100644 .freeCodeCamp/test/1170.test.js create mode 100644 .freeCodeCamp/test/1180.test.js create mode 100644 .freeCodeCamp/test/1190.test.js create mode 100644 .freeCodeCamp/test/1200.test.js create mode 100644 .freeCodeCamp/test/1210.test.js create mode 100644 .freeCodeCamp/test/1220.test.js create mode 100644 .freeCodeCamp/test/1230.test.js create mode 100644 .freeCodeCamp/test/1240.test.js create mode 100644 .freeCodeCamp/test/1250.test.js create mode 100644 .freeCodeCamp/test/1260.test.js create mode 100644 .freeCodeCamp/test/1270.test.js create mode 100644 .freeCodeCamp/test/1280.test.js create mode 100644 .freeCodeCamp/test/1290.test.js create mode 100644 .freeCodeCamp/test/1300.test.js create mode 100644 .freeCodeCamp/test/1310.test.js create mode 100644 .freeCodeCamp/test/1320.test.js create mode 100644 .freeCodeCamp/test/1330.test.js create mode 100644 .freeCodeCamp/test/1340.test.js create mode 100644 .freeCodeCamp/test/1350.test.js create mode 100644 .freeCodeCamp/test/1360.test.js create mode 100644 .freeCodeCamp/test/1370.test.js create mode 100644 .freeCodeCamp/test/1380.test.js create mode 100644 .freeCodeCamp/test/1385.test.js create mode 100644 .freeCodeCamp/test/1390.test.js create mode 100644 .freeCodeCamp/test/140.test.js create mode 100644 .freeCodeCamp/test/1400.test.js create mode 100644 .freeCodeCamp/test/1410.test.js create mode 100644 .freeCodeCamp/test/1412.test.js create mode 100644 .freeCodeCamp/test/1413.test.js create mode 100644 .freeCodeCamp/test/1416.test.js create mode 100644 .freeCodeCamp/test/1420.test.js create mode 100644 .freeCodeCamp/test/1425.test.js create mode 100644 .freeCodeCamp/test/1428.test.js create mode 100644 .freeCodeCamp/test/1430.test.js create mode 100644 .freeCodeCamp/test/1440.test.js create mode 100644 .freeCodeCamp/test/1450.test.js create mode 100644 .freeCodeCamp/test/1460.test.js create mode 100644 .freeCodeCamp/test/1470.test.js create mode 100644 .freeCodeCamp/test/1480.test.js create mode 100644 .freeCodeCamp/test/1490.test.js create mode 100644 .freeCodeCamp/test/150.test.js create mode 100644 .freeCodeCamp/test/1500.test.js create mode 100644 .freeCodeCamp/test/1510.test.js create mode 100644 .freeCodeCamp/test/1520.test.js create mode 100644 .freeCodeCamp/test/1530.test.js create mode 100644 .freeCodeCamp/test/1540.test.js create mode 100644 .freeCodeCamp/test/1550.test.js create mode 100644 .freeCodeCamp/test/1560.test.js create mode 100644 .freeCodeCamp/test/1570.test.js create mode 100644 .freeCodeCamp/test/1580.test.js create mode 100644 .freeCodeCamp/test/1590.test.js create mode 100644 .freeCodeCamp/test/160.test.js create mode 100644 .freeCodeCamp/test/1600.test.js create mode 100644 .freeCodeCamp/test/1610.test.js create mode 100644 .freeCodeCamp/test/170.test.js create mode 100644 .freeCodeCamp/test/180.test.js create mode 100644 .freeCodeCamp/test/190.test.js create mode 100644 .freeCodeCamp/test/20.test.js create mode 100644 .freeCodeCamp/test/200.test.js create mode 100644 .freeCodeCamp/test/210.test.js create mode 100644 .freeCodeCamp/test/220.test.js create mode 100644 .freeCodeCamp/test/230.test.js create mode 100644 .freeCodeCamp/test/240.test.js create mode 100644 .freeCodeCamp/test/250.test.js create mode 100644 .freeCodeCamp/test/260.test.js create mode 100644 .freeCodeCamp/test/270.test.js create mode 100644 .freeCodeCamp/test/280.test.js create mode 100644 .freeCodeCamp/test/290.test.js create mode 100644 .freeCodeCamp/test/30.test.js create mode 100644 .freeCodeCamp/test/300.test.js create mode 100644 .freeCodeCamp/test/310.test.js create mode 100644 .freeCodeCamp/test/320.test.js create mode 100644 .freeCodeCamp/test/323.test.js create mode 100644 .freeCodeCamp/test/326.test.js create mode 100644 .freeCodeCamp/test/330.test.js create mode 100644 .freeCodeCamp/test/340.test.js create mode 100644 .freeCodeCamp/test/345.test.js create mode 100644 .freeCodeCamp/test/35.test.js create mode 100644 .freeCodeCamp/test/350.test.js create mode 100644 .freeCodeCamp/test/360.test.js create mode 100644 .freeCodeCamp/test/363.test.js create mode 100644 .freeCodeCamp/test/366.test.js create mode 100644 .freeCodeCamp/test/370.test.js create mode 100644 .freeCodeCamp/test/380.test.js create mode 100644 .freeCodeCamp/test/390.test.js create mode 100644 .freeCodeCamp/test/40.test.js create mode 100644 .freeCodeCamp/test/400.test.js create mode 100644 .freeCodeCamp/test/410.test.js create mode 100644 .freeCodeCamp/test/420.test.js create mode 100644 .freeCodeCamp/test/425.test.js create mode 100644 .freeCodeCamp/test/430.test.js create mode 100644 .freeCodeCamp/test/440.test.js create mode 100644 .freeCodeCamp/test/450.test.js create mode 100644 .freeCodeCamp/test/460.test.js create mode 100644 .freeCodeCamp/test/470.test.js create mode 100644 .freeCodeCamp/test/480.test.js create mode 100644 .freeCodeCamp/test/490.test.js create mode 100644 .freeCodeCamp/test/50.test.js create mode 100644 .freeCodeCamp/test/500.test.js create mode 100644 .freeCodeCamp/test/505.test.js create mode 100644 .freeCodeCamp/test/510.test.js create mode 100644 .freeCodeCamp/test/520.test.js create mode 100644 .freeCodeCamp/test/530.test.js create mode 100644 .freeCodeCamp/test/540.test.js create mode 100644 .freeCodeCamp/test/542.test.js create mode 100644 .freeCodeCamp/test/544.test.js create mode 100644 .freeCodeCamp/test/546.test.js create mode 100644 .freeCodeCamp/test/548.test.js create mode 100644 .freeCodeCamp/test/550.test.js create mode 100644 .freeCodeCamp/test/552.test.js create mode 100644 .freeCodeCamp/test/554.test.js create mode 100644 .freeCodeCamp/test/556.test.js create mode 100644 .freeCodeCamp/test/558.test.js create mode 100644 .freeCodeCamp/test/560.test.js create mode 100644 .freeCodeCamp/test/562.test.js create mode 100644 .freeCodeCamp/test/564.test.js create mode 100644 .freeCodeCamp/test/566.test.js create mode 100644 .freeCodeCamp/test/568.test.js create mode 100644 .freeCodeCamp/test/570.test.js create mode 100644 .freeCodeCamp/test/572.test.js create mode 100644 .freeCodeCamp/test/574.test.js create mode 100644 .freeCodeCamp/test/575.test.js create mode 100644 .freeCodeCamp/test/576.test.js create mode 100644 .freeCodeCamp/test/582.test.js create mode 100644 .freeCodeCamp/test/584.test.js create mode 100644 .freeCodeCamp/test/586.test.js create mode 100644 .freeCodeCamp/test/588.test.js create mode 100644 .freeCodeCamp/test/590.test.js create mode 100644 .freeCodeCamp/test/60.test.js create mode 100644 .freeCodeCamp/test/600.test.js create mode 100644 .freeCodeCamp/test/610.test.js create mode 100644 .freeCodeCamp/test/615.test.js create mode 100644 .freeCodeCamp/test/620.test.js create mode 100644 .freeCodeCamp/test/630.test.js create mode 100644 .freeCodeCamp/test/640.test.js create mode 100644 .freeCodeCamp/test/650.test.js create mode 100644 .freeCodeCamp/test/660.test.js create mode 100644 .freeCodeCamp/test/670.test.js create mode 100644 .freeCodeCamp/test/675.test.js create mode 100644 .freeCodeCamp/test/680.test.js create mode 100644 .freeCodeCamp/test/690.test.js create mode 100644 .freeCodeCamp/test/692.test.js create mode 100644 .freeCodeCamp/test/694.test.js create mode 100644 .freeCodeCamp/test/696.test.js create mode 100644 .freeCodeCamp/test/698.test.js create mode 100644 .freeCodeCamp/test/70.test.js create mode 100644 .freeCodeCamp/test/700.test.js create mode 100644 .freeCodeCamp/test/710.test.js create mode 100644 .freeCodeCamp/test/730.test.js create mode 100644 .freeCodeCamp/test/740.test.js create mode 100644 .freeCodeCamp/test/750.test.js create mode 100644 .freeCodeCamp/test/760.test.js create mode 100644 .freeCodeCamp/test/770.test.js create mode 100644 .freeCodeCamp/test/780.test.js create mode 100644 .freeCodeCamp/test/790.test.js create mode 100644 .freeCodeCamp/test/80.test.js create mode 100644 .freeCodeCamp/test/800.test.js create mode 100644 .freeCodeCamp/test/810.test.js create mode 100644 .freeCodeCamp/test/815.test.js create mode 100644 .freeCodeCamp/test/817.test.js create mode 100644 .freeCodeCamp/test/818.test.js create mode 100644 .freeCodeCamp/test/819.test.js create mode 100644 .freeCodeCamp/test/820.test.js create mode 100644 .freeCodeCamp/test/822.test.js create mode 100644 .freeCodeCamp/test/824.test.js create mode 100644 .freeCodeCamp/test/826.test.js create mode 100644 .freeCodeCamp/test/828.test.js create mode 100644 .freeCodeCamp/test/830.test.js create mode 100644 .freeCodeCamp/test/835.test.js create mode 100644 .freeCodeCamp/test/840.test.js create mode 100644 .freeCodeCamp/test/881.test.js create mode 100644 .freeCodeCamp/test/884.test.js create mode 100644 .freeCodeCamp/test/887.test.js create mode 100644 .freeCodeCamp/test/890.test.js create mode 100644 .freeCodeCamp/test/891.test.js create mode 100644 .freeCodeCamp/test/893.test.js create mode 100644 .freeCodeCamp/test/896.test.js create mode 100644 .freeCodeCamp/test/897.test.js create mode 100644 .freeCodeCamp/test/899.test.js create mode 100644 .freeCodeCamp/test/90.test.js create mode 100644 .freeCodeCamp/test/902.test.js create mode 100644 .freeCodeCamp/test/905.test.js create mode 100644 .freeCodeCamp/test/908.test.js create mode 100644 .freeCodeCamp/test/911.test.js create mode 100644 .freeCodeCamp/test/912.test.js create mode 100644 .freeCodeCamp/test/913.test.js create mode 100644 .freeCodeCamp/test/914.test.js create mode 100644 .freeCodeCamp/test/916.test.js create mode 100644 .freeCodeCamp/test/918.test.js create mode 100644 .freeCodeCamp/test/920.test.js create mode 100644 .freeCodeCamp/test/928.test.js create mode 100644 .freeCodeCamp/test/930.test.js create mode 100644 .freeCodeCamp/test/940.test.js create mode 100644 .freeCodeCamp/test/945.test.js create mode 100644 .freeCodeCamp/test/950.test.js create mode 100644 .freeCodeCamp/test/960.test.js create mode 100644 .freeCodeCamp/test/970.test.js create mode 100644 .freeCodeCamp/test/980.test.js create mode 100644 .freeCodeCamp/test/990.test.js create mode 100644 .freeCodeCamp/test/utils.js diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json new file mode 100644 index 0000000000..717711d3dc --- /dev/null +++ b/.freeCodeCamp/.mocharc.json @@ -0,0 +1,8 @@ +{ + "spec": ["./test/*.js"], + "reporter": "mocha-tap-reporter", + "fail-zero": false, + "timeout": "5000", + "exit": "true", + "grep": "/passAllTests/" +} \ No newline at end of file diff --git a/.freeCodeCamp/package-lock.json b/.freeCodeCamp/package-lock.json new file mode 100644 index 0000000000..ca841582a2 --- /dev/null +++ b/.freeCodeCamp/package-lock.json @@ -0,0 +1,822 @@ +{ + "name": "freecodecamp", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "requires": { + "is-buffer": "~2.0.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "requires": { + "chalk": "^2.4.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + } + }, + "mocha-tap-reporter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/mocha-tap-reporter/-/mocha-tap-reporter-0.1.3.tgz", + "integrity": "sha1-Emy70vggZJXnKxWZFNOXuOoXoig=", + "requires": { + "mocha": "*" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "promisify-child-process": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/promisify-child-process/-/promisify-child-process-4.1.1.tgz", + "integrity": "sha512-/sRjHZwoXf1rJ+8s4oWjYjGRVKNK1DUnqfRC1Zek18pl0cN6k3yJ1cCbqd0tWNe4h0Gr+SY4vR42N33+T82WkA==" + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "requires": { + "picomatch": "^2.0.4" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } + } + } +} diff --git a/.freeCodeCamp/package.json b/.freeCodeCamp/package.json new file mode 100644 index 0000000000..a224a83293 --- /dev/null +++ b/.freeCodeCamp/package.json @@ -0,0 +1,18 @@ +{ + "name": "freecodecamp", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "programmatic-test": "mocha --config .mocharc.json", + "test": "mocha --config .mocharc.json" + }, + "author": "", + "license": "ISC", + "dependencies": { + "mocha": "^7.2.0", + "mocha-tap-reporter": "^0.1.3", + "promisify-child-process": "^4.1.1", + "shell-quote": "^1.7.2" + } +} diff --git a/.freeCodeCamp/reset.sh b/.freeCodeCamp/reset.sh new file mode 100755 index 0000000000..e69de29bb2 diff --git a/.freeCodeCamp/setup.sh b/.freeCodeCamp/setup.sh new file mode 100755 index 0000000000..6c53d39a78 --- /dev/null +++ b/.freeCodeCamp/setup.sh @@ -0,0 +1,3 @@ +sudo cp /workspace/project/.freeCodeCamp/.bashrc ~/.bashrc +sudo touch /workspace/.bash_history +sudo chmod 777 /workspace/.bash_history diff --git a/.freeCodeCamp/test/10.test.js b/.freeCodeCamp/test/10.test.js new file mode 100644 index 0000000000..80eafd6076 --- /dev/null +++ b/.freeCodeCamp/test/10.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should echo the correct text in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'echo' && lastCommand[1] === 'hello' && lastCommand[2] === 'bash' && (lastCommand[3] === undefined || lastCommand[3].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/100.test.js b/.freeCodeCamp/test/100.test.js new file mode 100644 index 0000000000..714f1137df --- /dev/null +++ b/.freeCodeCamp/test/100.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should "list" the folder contents with the correct flag', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'ls' && lastCommand[1] === '-l' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1000.test.js b/.freeCodeCamp/test/1000.test.js new file mode 100644 index 0000000000..6900e8e496 --- /dev/null +++ b/.freeCodeCamp/test/1000.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + const secondLastCommand = await getLastCommand(1); + + assert(lastCommand[0] === './bingo.sh' && secondLastCommand[0] === './bingo.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1010.test.js b/.freeCodeCamp/test/1010.test.js new file mode 100644 index 0000000000..4fb63cbfe6 --- /dev/null +++ b/.freeCodeCamp/test/1010.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getDirectoryContents } = require('./utils'); + +describe('You', () => { + it('should use the "touch" command to create the correct file', async () => { + const directoryContents = await getDirectoryContents(`..`); + const lastCommand = await getLastCommand(); + + assert(directoryContents.includes('fortune.sh') && lastCommand[0] === 'touch' && /fortune.sh/g.test(lastCommand[1])); + }); +}); diff --git a/.freeCodeCamp/test/1020.test.js b/.freeCodeCamp/test/1020.test.js new file mode 100644 index 0000000000..f138d1e44d --- /dev/null +++ b/.freeCodeCamp/test/1020.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { canExecute } = require('./utils'); + +describe('Your script file', () => { + it('should have executable permissions', async () => { + const fileIsExecutable = await canExecute('../fortune.sh'); + + assert(fileIsExecutable); + }); +}); diff --git a/.freeCodeCamp/test/1030.test.js b/.freeCodeCamp/test/1030.test.js new file mode 100644 index 0000000000..b5b161f0c3 --- /dev/null +++ b/.freeCodeCamp/test/1030.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the correct "shebang"', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + + assert(/^\s*#![ \t]*\/bin\/bash\s*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/1040.test.js b/.freeCodeCamp/test/1040.test.js new file mode 100644 index 0000000000..a83b86d4f7 --- /dev/null +++ b/.freeCodeCamp/test/1040.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the correct comment', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + + assert(/^#[ \t]*Program to tell a persons fortune[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/1050.test.js b/.freeCodeCamp/test/1050.test.js new file mode 100644 index 0000000000..fdf4eb76a7 --- /dev/null +++ b/.freeCodeCamp/test/1050.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const output = await getCommandOutput('./fortune.sh'); + + assert(/^\n~~ Fortune Teller ~~\n{2}/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1060.test.js b/.freeCodeCamp/test/1060.test.js new file mode 100644 index 0000000000..96a8c4994d --- /dev/null +++ b/.freeCodeCamp/test/1060.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './fortune.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1070.test.js b/.freeCodeCamp/test/1070.test.js new file mode 100644 index 0000000000..496845e315 --- /dev/null +++ b/.freeCodeCamp/test/1070.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCommandOutput } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + const output = await getCommandOutput(`${lastCommand}\ndeclare -p ARR`) + + assert(output === 'declare -a ARR=([0]="a" [1]="b" [2]="c")\n'); + }); +}); diff --git a/.freeCodeCamp/test/1080.test.js b/.freeCodeCamp/test/1080.test.js new file mode 100644 index 0000000000..4576e473a5 --- /dev/null +++ b/.freeCodeCamp/test/1080.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+\${ARR\[1\]}\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1090.test.js b/.freeCodeCamp/test/1090.test.js new file mode 100644 index 0000000000..d1049c6b3c --- /dev/null +++ b/.freeCodeCamp/test/1090.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+\${ARR\[(@|\*)\]}\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/110.test.js b/.freeCodeCamp/test/110.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/110.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1100.test.js b/.freeCodeCamp/test/1100.test.js new file mode 100644 index 0000000000..3b5a306e37 --- /dev/null +++ b/.freeCodeCamp/test/1100.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'declare' && lastCommand[1] === '-p' && lastCommand[2] === 'ARR'); + }); +}); diff --git a/.freeCodeCamp/test/1110.test.js b/.freeCodeCamp/test/1110.test.js new file mode 100644 index 0000000000..b29443f278 --- /dev/null +++ b/.freeCodeCamp/test/1110.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the correct array variable added', async () => { + const output = await appendAndRun('../fortune.sh', 'declare -p RESPONSES'); + + assert(/^\s*declare -a RESPONSES=\(\[0\]="Yes" \[1\]="No" \[2\]="Maybe" \[3\]="Outlook good" \[4\]="Don't count on it" \[5\]="Ask again later"\)\s*$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1120.test.js b/.freeCodeCamp/test/1120.test.js new file mode 100644 index 0000000000..3ee3c460f4 --- /dev/null +++ b/.freeCodeCamp/test/1120.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const output = await getCommandOutput('./fortune.sh'); + + assert(/^\s*echo[ \t]+\${RESPONSES\[5\]}[ \t]*;?\s*$/gm.test(scriptFile) && /^\s*Ask again later$/gm.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/1130.test.js b/.freeCodeCamp/test/1130.test.js new file mode 100644 index 0000000000..96a8c4994d --- /dev/null +++ b/.freeCodeCamp/test/1130.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './fortune.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1140.test.js b/.freeCodeCamp/test/1140.test.js new file mode 100644 index 0000000000..8710e8d4b2 --- /dev/null +++ b/.freeCodeCamp/test/1140.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the correct variable added', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const output = await appendAndRun('../fortune.sh', 'echo $N'); + + assert(/^\s*N=('|"|)\$\(\([ \t]*\$?RANDOM[ \t]*%[ \t]*6[ \t]*\)\)\1[ \t]*;?\s*$/gm.test(scriptFile) && /^\d{1}$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1150.test.js b/.freeCodeCamp/test/1150.test.js new file mode 100644 index 0000000000..230c312b71 --- /dev/null +++ b/.freeCodeCamp/test/1150.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getFileContents, replaceAndRun } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const re = /%[ \t]*6/gm; + const output = await replaceAndRun('../fortune.sh', re, '%1'); + + assert(/^\s*echo[ \t]+\${RESPONSES\[\$N\]}[ \t]*;?\s*$/gm.test(scriptFile) && /^Yes\s*$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1160.test.js b/.freeCodeCamp/test/1160.test.js new file mode 100644 index 0000000000..c04648cc46 --- /dev/null +++ b/.freeCodeCamp/test/1160.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && (lastCommand[1] === undefined || lastCommand[1].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1170.test.js b/.freeCodeCamp/test/1170.test.js new file mode 100644 index 0000000000..81a8982b56 --- /dev/null +++ b/.freeCodeCamp/test/1170.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand, getCommandOutput } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'function'); + }); +}); diff --git a/.freeCodeCamp/test/1180.test.js b/.freeCodeCamp/test/1180.test.js new file mode 100644 index 0000000000..1907287a64 --- /dev/null +++ b/.freeCodeCamp/test/1180.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested function added correctly', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + + assert(/^\s*(function[ \t]+)?GET_FORTUNE[ \t]*\([ \t]*\)\s*{\s*}[ \t]*;?$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/1190.test.js b/.freeCodeCamp/test/1190.test.js new file mode 100644 index 0000000000..239d4c407d --- /dev/null +++ b/.freeCodeCamp/test/1190.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const output = await appendAndRun('../fortune.sh', 'GET_FORTUNE'); + + assert(/Ask a yes or no question:/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1200.test.js b/.freeCodeCamp/test/1200.test.js new file mode 100644 index 0000000000..bf45c993db --- /dev/null +++ b/.freeCodeCamp/test/1200.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getCommandOutput, getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should call the suggested fuction correctly', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const output = await getCommandOutput('./fortune.sh'); + + assert(scriptFile.match(/GET_FORTUNE/g).length > 1 && /Ask a yes or no question:/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1210.test.js b/.freeCodeCamp/test/1210.test.js new file mode 100644 index 0000000000..96a8c4994d --- /dev/null +++ b/.freeCodeCamp/test/1210.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './fortune.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1220.test.js b/.freeCodeCamp/test/1220.test.js new file mode 100644 index 0000000000..5e3b9143a0 --- /dev/null +++ b/.freeCodeCamp/test/1220.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should "read" input into the suggested variable correctly', async () => { + const output = await appendAndRun('../fortune.sh', 'echo $QUESTION', { input: ['test?'] }); + + assert(/test?/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1230.test.js b/.freeCodeCamp/test/1230.test.js new file mode 100644 index 0000000000..96a8c4994d --- /dev/null +++ b/.freeCodeCamp/test/1230.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './fortune.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1240.test.js b/.freeCodeCamp/test/1240.test.js new file mode 100644 index 0000000000..c04648cc46 --- /dev/null +++ b/.freeCodeCamp/test/1240.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && (lastCommand[1] === undefined || lastCommand[1].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1250.test.js b/.freeCodeCamp/test/1250.test.js new file mode 100644 index 0000000000..676e6ca97c --- /dev/null +++ b/.freeCodeCamp/test/1250.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand, getCommandOutput } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'until'); + }); +}); diff --git a/.freeCodeCamp/test/1260.test.js b/.freeCodeCamp/test/1260.test.js new file mode 100644 index 0000000000..7bdf294452 --- /dev/null +++ b/.freeCodeCamp/test/1260.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "until" loop added correctly', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const output = await getScriptOutput('./fortune.sh', ['t', 'test?']); + + assert(/^\s*until[ \t]+\[\[[ \t]+\$QUESTION[ \t]+==?[ \t]+('|"|)test\?\1[ \t]+\]\]/gm.test(scriptFile) && output.match(/Ask a yes or no question:/gm).length === 2); + }); +}); diff --git a/.freeCodeCamp/test/1270.test.js b/.freeCodeCamp/test/1270.test.js new file mode 100644 index 0000000000..96a8c4994d --- /dev/null +++ b/.freeCodeCamp/test/1270.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './fortune.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1280.test.js b/.freeCodeCamp/test/1280.test.js new file mode 100644 index 0000000000..3882abaf3a --- /dev/null +++ b/.freeCodeCamp/test/1280.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === '[['); + }); +}); diff --git a/.freeCodeCamp/test/1290.test.js b/.freeCodeCamp/test/1290.test.js new file mode 100644 index 0000000000..bd9c333e0d --- /dev/null +++ b/.freeCodeCamp/test/1290.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+('|"|)hello\1[ \t]+==[ \t]+('|"|)hello\2[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/gm.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1300.test.js b/.freeCodeCamp/test/1300.test.js new file mode 100644 index 0000000000..3573c284e7 --- /dev/null +++ b/.freeCodeCamp/test/1300.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+('|"|)hello\1[ \t]+==[ \t]+('|"|)world\2[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/gm.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1310.test.js b/.freeCodeCamp/test/1310.test.js new file mode 100644 index 0000000000..eead15755f --- /dev/null +++ b/.freeCodeCamp/test/1310.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+('|"|)hello\1[ \t]+=~[ \t]+('|"|)el\2[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/gm.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1320.test.js b/.freeCodeCamp/test/1320.test.js new file mode 100644 index 0000000000..bd5a4a81b8 --- /dev/null +++ b/.freeCodeCamp/test/1320.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+('|")hello world\1[ \t]+=~[ \t]+('|")lo wor\2[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1330.test.js b/.freeCodeCamp/test/1330.test.js new file mode 100644 index 0000000000..64046454c5 --- /dev/null +++ b/.freeCodeCamp/test/1330.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+('|")hello world\1[ \t]+=~[ \t]+\^h[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1340.test.js b/.freeCodeCamp/test/1340.test.js new file mode 100644 index 0000000000..80c4fa3790 --- /dev/null +++ b/.freeCodeCamp/test/1340.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+('|")hello world\1[ \t]+=~[ \t]+\^h\.\+d\$[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1350.test.js b/.freeCodeCamp/test/1350.test.js new file mode 100644 index 0000000000..177d0a0aad --- /dev/null +++ b/.freeCodeCamp/test/1350.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCommandOutput } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + const output = await getCommandOutput(`${lastCommand}\ndeclare -p VAR`) + + assert(/declare -- VAR="hello world"\n$/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1360.test.js b/.freeCodeCamp/test/1360.test.js new file mode 100644 index 0000000000..23d5eaf8bd --- /dev/null +++ b/.freeCodeCamp/test/1360.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo[ \t]+('|"|)\$VAR\1[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1370.test.js b/.freeCodeCamp/test/1370.test.js new file mode 100644 index 0000000000..aeb9df5233 --- /dev/null +++ b/.freeCodeCamp/test/1370.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+("|)\$VAR\1[ \t]+==[ \t]+('|")hello world\2[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1380.test.js b/.freeCodeCamp/test/1380.test.js new file mode 100644 index 0000000000..af0d34f694 --- /dev/null +++ b/.freeCodeCamp/test/1380.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+("|)\$VAR\1[ \t]+=~[ \t]+\\\?\$[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1385.test.js b/.freeCodeCamp/test/1385.test.js new file mode 100644 index 0000000000..fac3c7c546 --- /dev/null +++ b/.freeCodeCamp/test/1385.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[[ \t]+("|)test\?\1[ \t]+=~[ \t]+\\\?\$[ \t]+\]\][ \t]*;[ \t]*echo[ \t]+\$\?[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/1390.test.js b/.freeCodeCamp/test/1390.test.js new file mode 100644 index 0000000000..ec72af3d97 --- /dev/null +++ b/.freeCodeCamp/test/1390.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the correct condition for your "until" loop', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const output = await getScriptOutput('./fortune.sh', ['t', 'test?']); + + assert(/^\s*until[ \t]+\[\[[ \t]+\$QUESTION[ \t]+=~[ \t]+\\\?\$[ \t]+\]\]/gm.test(scriptFile) && output.match(/Ask a yes or no question:/gm).length === 2); + }); +}); diff --git a/.freeCodeCamp/test/140.test.js b/.freeCodeCamp/test/140.test.js new file mode 100644 index 0000000000..30e834c0a5 --- /dev/null +++ b/.freeCodeCamp/test/140.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the "ls" command added correctly', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + + assert(/^\s*ls[ \t]+-l[ \t]*;?\s*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/1400.test.js b/.freeCodeCamp/test/1400.test.js new file mode 100644 index 0000000000..96a8c4994d --- /dev/null +++ b/.freeCodeCamp/test/1400.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './fortune.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1410.test.js b/.freeCodeCamp/test/1410.test.js new file mode 100644 index 0000000000..bbf5a500cd --- /dev/null +++ b/.freeCodeCamp/test/1410.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "if" statement added correctly', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const output = await getScriptOutput('./fortune.sh', ['test?']); + + assert(/^\s*if[ \t]+\[\[[ \t]+![ \t]+\$1[ \t]+\]\]/gm.test(scriptFile) && /Ask a yes or no question:/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1412.test.js b/.freeCodeCamp/test/1412.test.js new file mode 100644 index 0000000000..243d8e9e62 --- /dev/null +++ b/.freeCodeCamp/test/1412.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getScriptOutput, appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggests "if/else" statement added correctly', async () => { + const output = await appendAndRun('../fortune.sh', 'GET_FORTUNE again', { input: ['test?', 'test?']}); + + assert(/Try again\. Make sure it ends with a question mark:/g.test(output) && /Ask a yes or no question:/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/1413.test.js b/.freeCodeCamp/test/1413.test.js new file mode 100644 index 0000000000..4b7eee1c5d --- /dev/null +++ b/.freeCodeCamp/test/1413.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should call the suggested function correctly', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const output = await getScriptOutput('./fortune.sh', ['test?']); + + assert(/Try again\. Make sure it ends with a question mark:/g.test(output) && /GET_FORTUNE[ \t]+again[ \t]*;?/g.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/1416.test.js b/.freeCodeCamp/test/1416.test.js new file mode 100644 index 0000000000..6b8002f6c3 --- /dev/null +++ b/.freeCodeCamp/test/1416.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should call your function correctly', async () => { + const scriptFile = await getFileContents('../fortune.sh'); + const output = await getScriptOutput('./fortune.sh', ['test', 'test?']); + + assert(/Ask a yes or no question:\s*Try again\. Make sure it ends with a question mark:/g.test(output) && scriptFile.match(/GET_FORTUNE/gm).length > 2); + }); +}); diff --git a/.freeCodeCamp/test/1420.test.js b/.freeCodeCamp/test/1420.test.js new file mode 100644 index 0000000000..96a8c4994d --- /dev/null +++ b/.freeCodeCamp/test/1420.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './fortune.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1425.test.js b/.freeCodeCamp/test/1425.test.js new file mode 100644 index 0000000000..6f899d1737 --- /dev/null +++ b/.freeCodeCamp/test/1425.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggests "if" statement added correctly', async () => { + const output = await getScriptOutput('./fortune.sh', ['test?']); + + assert(/\n{2}(Yes|No|Maybe|Outlook good|Don't count on it|Ask again later)\n$/g.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/1428.test.js b/.freeCodeCamp/test/1428.test.js new file mode 100644 index 0000000000..96a8c4994d --- /dev/null +++ b/.freeCodeCamp/test/1428.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './fortune.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1430.test.js b/.freeCodeCamp/test/1430.test.js new file mode 100644 index 0000000000..ff23b5001d --- /dev/null +++ b/.freeCodeCamp/test/1430.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getDirectoryContents } = require('./utils'); + +describe('You', () => { + it('should use the "touch" command to create the correct file', async () => { + const directoryContents = await getDirectoryContents(`..`); + const lastCommand = await getLastCommand(); + + assert(directoryContents.includes('five.sh') && lastCommand[0] === 'touch' && /five.sh/g.test(lastCommand[1])); + }); +}); diff --git a/.freeCodeCamp/test/1440.test.js b/.freeCodeCamp/test/1440.test.js new file mode 100644 index 0000000000..2754f7527b --- /dev/null +++ b/.freeCodeCamp/test/1440.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { canExecute } = require('./utils'); + +describe('Your script file', () => { + it('should have executable permissions', async () => { + const fileIsExecutable = await canExecute('../five.sh'); + + assert(fileIsExecutable); + }); +}); diff --git a/.freeCodeCamp/test/1450.test.js b/.freeCodeCamp/test/1450.test.js new file mode 100644 index 0000000000..aee53b8922 --- /dev/null +++ b/.freeCodeCamp/test/1450.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the correct "shebang"', async () => { + const scriptFile = await getFileContents('../five.sh'); + + assert(/^\s*#![ \t]*\/bin\/bash\s*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/1460.test.js b/.freeCodeCamp/test/1460.test.js new file mode 100644 index 0000000000..ba9e3541c2 --- /dev/null +++ b/.freeCodeCamp/test/1460.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested comment added correctly', async () => { + const scriptFile = await getFileContents('../five.sh'); + + assert(/^#[ \t]*Program to run my other four programs[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/1470.test.js b/.freeCodeCamp/test/1470.test.js new file mode 100644 index 0000000000..dc3d82e6d5 --- /dev/null +++ b/.freeCodeCamp/test/1470.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested command added correctly', async () => { + const scriptFile = await getFileContents('../five.sh'); + const output = await getScriptOutput('./five.sh', ['me', 'here', 'fCC']); + + assert(/^\s*\.\/questionnaire\.sh[ \t]*;?\s*$/gm.test(scriptFile) && /~~ Questionnaire ~~/gm.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/1480.test.js b/.freeCodeCamp/test/1480.test.js new file mode 100644 index 0000000000..92b1feda8b --- /dev/null +++ b/.freeCodeCamp/test/1480.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './five.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1490.test.js b/.freeCodeCamp/test/1490.test.js new file mode 100644 index 0000000000..a5da52ade9 --- /dev/null +++ b/.freeCodeCamp/test/1490.test.js @@ -0,0 +1,17 @@ +const assert = require('assert'); +const { replaceAndRun, getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested commands added correctly', async () => { + const scriptFile = await getFileContents('../five.sh'); + const re = /\.\/countdown\.sh[ \t]+\d+/gm; + const output = await replaceAndRun('../five.sh', re, './countdown.sh a', { input: ['?', '?', '?', '?'] }); + + const test1 = /~~ Questionnaire ~~/.test(output); + const test2 = /~~ Countdown Timer ~~/.test(output); + const test3 = /~~ Bingo Number Generator ~~/.test(output); + const test4 = /~~ Fortune Teller ~~/.test(output); + + assert(test1 && test2 && test3 && test4 && /\.\/countdown\.sh[ \t]+3/g.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/150.test.js b/.freeCodeCamp/test/150.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/150.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1500.test.js b/.freeCodeCamp/test/1500.test.js new file mode 100644 index 0000000000..639f766fa8 --- /dev/null +++ b/.freeCodeCamp/test/1500.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'clear'); + }); +}); diff --git a/.freeCodeCamp/test/1510.test.js b/.freeCodeCamp/test/1510.test.js new file mode 100644 index 0000000000..92b1feda8b --- /dev/null +++ b/.freeCodeCamp/test/1510.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './five.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/1520.test.js b/.freeCodeCamp/test/1520.test.js new file mode 100644 index 0000000000..c04648cc46 --- /dev/null +++ b/.freeCodeCamp/test/1520.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && (lastCommand[1] === undefined || lastCommand[1].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1530.test.js b/.freeCodeCamp/test/1530.test.js new file mode 100644 index 0000000000..b6d6c502dd --- /dev/null +++ b/.freeCodeCamp/test/1530.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'type'); + }); +}); diff --git a/.freeCodeCamp/test/1540.test.js b/.freeCodeCamp/test/1540.test.js new file mode 100644 index 0000000000..9f9bfb8169 --- /dev/null +++ b/.freeCodeCamp/test/1540.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'type' && lastCommand[1] === 'echo' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1550.test.js b/.freeCodeCamp/test/1550.test.js new file mode 100644 index 0000000000..73a80eb167 --- /dev/null +++ b/.freeCodeCamp/test/1550.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'type' && lastCommand[1] === 'read' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1560.test.js b/.freeCodeCamp/test/1560.test.js new file mode 100644 index 0000000000..bc25f5af0a --- /dev/null +++ b/.freeCodeCamp/test/1560.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'type' && lastCommand[1] === 'if' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1570.test.js b/.freeCodeCamp/test/1570.test.js new file mode 100644 index 0000000000..167bc43640 --- /dev/null +++ b/.freeCodeCamp/test/1570.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'type' && lastCommand[1] === 'then' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1580.test.js b/.freeCodeCamp/test/1580.test.js new file mode 100644 index 0000000000..f22dc78fb1 --- /dev/null +++ b/.freeCodeCamp/test/1580.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'type' && lastCommand[1] === 'bash' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1590.test.js b/.freeCodeCamp/test/1590.test.js new file mode 100644 index 0000000000..24cf8e3f25 --- /dev/null +++ b/.freeCodeCamp/test/1590.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'type' && lastCommand[1] === 'psql' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/160.test.js b/.freeCodeCamp/test/160.test.js new file mode 100644 index 0000000000..4101e7a27c --- /dev/null +++ b/.freeCodeCamp/test/160.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, removeWhitespace } = require('./utils'); + +describe('Your script', () => { + it('should only have a "shebang"', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const noWhitespace = await removeWhitespace(scriptFile); + + assert(/^\s*#![ \t]*\/bin\/bash\s*$/gm.test(scriptFile) && /^#!\/bin\/bash$/gm.test(noWhitespace)); + }); +}); diff --git a/.freeCodeCamp/test/1600.test.js b/.freeCodeCamp/test/1600.test.js new file mode 100644 index 0000000000..8c56878245 --- /dev/null +++ b/.freeCodeCamp/test/1600.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'type' && lastCommand[1] === './five.sh' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/1610.test.js b/.freeCodeCamp/test/1610.test.js new file mode 100644 index 0000000000..4b9b488069 --- /dev/null +++ b/.freeCodeCamp/test/1610.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'exit'); + }); +}); diff --git a/.freeCodeCamp/test/170.test.js b/.freeCodeCamp/test/170.test.js new file mode 100644 index 0000000000..7bca546808 --- /dev/null +++ b/.freeCodeCamp/test/170.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested variable correctly', async () => { + const output = await appendAndRun('../questionnaire.sh', 'echo $QUESTION1'); + + assert(/^What's your name\?$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/180.test.js b/.freeCodeCamp/test/180.test.js new file mode 100644 index 0000000000..220378f3cd --- /dev/null +++ b/.freeCodeCamp/test/180.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested variable correctly', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await getCommandOutput('./questionnaire.sh'); + + assert(/^\s*echo[ \t]+('|")?\$QUESTION1\1?[ \t]*;?\s*$/gm.test(scriptFile) && /^What's your name\?$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/190.test.js b/.freeCodeCamp/test/190.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/190.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/20.test.js b/.freeCodeCamp/test/20.test.js new file mode 100644 index 0000000000..45de02959b --- /dev/null +++ b/.freeCodeCamp/test/20.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getDirectoryContents } = require('./utils'); + +describe('You', () => { + it('should use the "touch" command to create the correct file', async () => { + const directoryContents = await getDirectoryContents(`..`); + const lastCommand = await getLastCommand(); + + assert(directoryContents.includes('questionnaire.sh') && lastCommand[0] === 'touch' && /questionnaire\.sh/g.test(lastCommand[1])); + }); +}); diff --git a/.freeCodeCamp/test/200.test.js b/.freeCodeCamp/test/200.test.js new file mode 100644 index 0000000000..ae09824bf5 --- /dev/null +++ b/.freeCodeCamp/test/200.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should use "read" to get input into the correct variable', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await appendAndRun('../questionnaire.sh', 'echo $NAME', options = { input: ['me'] }); + + assert(/^\s*read[ \t]+NAME[ \t]*;?\s*$/gm.test(scriptFile) && /^me$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/210.test.js b/.freeCodeCamp/test/210.test.js new file mode 100644 index 0000000000..a811e56378 --- /dev/null +++ b/.freeCodeCamp/test/210.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await getScriptOutput('./questionnaire.sh', ['me']); + + assert(/^\s*echo[ \t]+('|"|)Hello[ \t]+\$NAME\.\1[ \t]*;?\s*$/gm.test(scriptFile) && /^Hello me\.$/gm.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/220.test.js b/.freeCodeCamp/test/220.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/220.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/230.test.js b/.freeCodeCamp/test/230.test.js new file mode 100644 index 0000000000..19e8fecbfb --- /dev/null +++ b/.freeCodeCamp/test/230.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested variable added correctly', async () => { + const output = await appendAndRun('../questionnaire.sh', 'echo $QUESTION2', options = { input: ['me'] }); + + assert(/^Where are you from\?$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/240.test.js b/.freeCodeCamp/test/240.test.js new file mode 100644 index 0000000000..a615b788a7 --- /dev/null +++ b/.freeCodeCamp/test/240.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested variable correctly', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await getScriptOutput('./questionnaire.sh', ['me']); + + assert(/^\s*echo[ \t]+('|")?\$QUESTION2\1?[ \t]*;?\s*$/gm.test(scriptFile) && /^Where are you from\?$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/250.test.js b/.freeCodeCamp/test/250.test.js new file mode 100644 index 0000000000..4b34aba8bf --- /dev/null +++ b/.freeCodeCamp/test/250.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should use "read" to get input into the correct variable', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await appendAndRun('../questionnaire.sh', 'echo $LOCATION', options = { input: ['me', 'here'] }); + + assert(/^\s*read[ \t]+LOCATION[ \t]*;?\s*$/gm.test(scriptFile) && /^here$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/260.test.js b/.freeCodeCamp/test/260.test.js new file mode 100644 index 0000000000..4ea9cacf3f --- /dev/null +++ b/.freeCodeCamp/test/260.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await getScriptOutput('./questionnaire.sh', ['me', 'here']); + + assert(/^\s*echo[ \t]+('|"|)Hello[ \t]+\$NAME from \$LOCATION\.\1[ \t]*;?\s*$/gm.test(scriptFile) && /^Hello me from here\.$/gm.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/270.test.js b/.freeCodeCamp/test/270.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/270.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/280.test.js b/.freeCodeCamp/test/280.test.js new file mode 100644 index 0000000000..c020b92688 --- /dev/null +++ b/.freeCodeCamp/test/280.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const output = await getScriptOutput('./questionnaire.sh', ['me', 'here']); + + assert(/^~~ Questionnaire ~~$/gm.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/290.test.js b/.freeCodeCamp/test/290.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/290.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/30.test.js b/.freeCodeCamp/test/30.test.js new file mode 100644 index 0000000000..b2c1d81501 --- /dev/null +++ b/.freeCodeCamp/test/30.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should echo the correct text', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + + assert(/^\s*echo[ \t]+hello[ \t]+questionnaire[ \t]*;?\s*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/300.test.js b/.freeCodeCamp/test/300.test.js new file mode 100644 index 0000000000..80349d4737 --- /dev/null +++ b/.freeCodeCamp/test/300.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'echo' && lastCommand[1] === '--help'); + }); +}); diff --git a/.freeCodeCamp/test/310.test.js b/.freeCodeCamp/test/310.test.js new file mode 100644 index 0000000000..9b31c172ca --- /dev/null +++ b/.freeCodeCamp/test/310.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'man' && lastCommand[1] === 'echo'); + }); +}); diff --git a/.freeCodeCamp/test/320.test.js b/.freeCodeCamp/test/320.test.js new file mode 100644 index 0000000000..76918bfdcd --- /dev/null +++ b/.freeCodeCamp/test/320.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const output = await getScriptOutput('./questionnaire.sh', ['me', 'here']); + + assert(/^n~~ Questionnaire ~~n$/gm.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/323.test.js b/.freeCodeCamp/test/323.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/323.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/326.test.js b/.freeCodeCamp/test/326.test.js new file mode 100644 index 0000000000..816e64004d --- /dev/null +++ b/.freeCodeCamp/test/326.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const output = await getScriptOutput('./questionnaire.sh', ['me', 'here']); + + assert(/^\n~~ Questionnaire ~~\n{2}/g.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/330.test.js b/.freeCodeCamp/test/330.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/330.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/340.test.js b/.freeCodeCamp/test/340.test.js new file mode 100644 index 0000000000..7691c94f40 --- /dev/null +++ b/.freeCodeCamp/test/340.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested variable added correctly', async () => { + const output = await appendAndRun('../questionnaire.sh', 'echo $QUESTION3', options = { input: ['me', 'here'] }); + + assert(/^What's your favorite coding website\?$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/345.test.js b/.freeCodeCamp/test/345.test.js new file mode 100644 index 0000000000..2d2c302625 --- /dev/null +++ b/.freeCodeCamp/test/345.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested variable correctly', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await getScriptOutput('./questionnaire.sh', ['me', 'here']); + + assert(/^\s*echo[ \t]+('|")?\$QUESTION3\1?[ \t]*;?\s*$/gm.test(scriptFile) && /^What's your favorite coding website\?$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/35.test.js b/.freeCodeCamp/test/35.test.js new file mode 100644 index 0000000000..db32aa3b96 --- /dev/null +++ b/.freeCodeCamp/test/35.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the "sh" command', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'sh' && /^(\.\/)?questionnaire\.sh$/gm.test(lastCommand[1]) && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/350.test.js b/.freeCodeCamp/test/350.test.js new file mode 100644 index 0000000000..812c2b5a53 --- /dev/null +++ b/.freeCodeCamp/test/350.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should use "read" to get input into the correct variable', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await appendAndRun('../questionnaire.sh', 'echo $WEBSITE', options = { input: ['me', 'here', 'freeCodeCamp'] }); + + assert(/^\s*read[ \t]+WEBSITE[ \t]*;?\s*$/gm.test(scriptFile) && /^freeCodeCamp$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/360.test.js b/.freeCodeCamp/test/360.test.js new file mode 100644 index 0000000000..ab4b25e8da --- /dev/null +++ b/.freeCodeCamp/test/360.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + const output = await getScriptOutput('./questionnaire.sh', ['me', 'here', 'freeCodeCamp']); + + assert(/^\s*echo[ \t]+('|"|)Hello[ \t]+\$NAME from \$LOCATION\. I learned that your favorite coding website is \$WEBSITE!\1[ \t]*;?\s*$/gm.test(scriptFile) && /^Hello me from here. I learned that your favorite coding website is freeCodeCamp!$/gm.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/363.test.js b/.freeCodeCamp/test/363.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/363.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/366.test.js b/.freeCodeCamp/test/366.test.js new file mode 100644 index 0000000000..d108115ed1 --- /dev/null +++ b/.freeCodeCamp/test/366.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getScriptOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggested text correctly', async () => { + const output = await getScriptOutput('./questionnaire.sh', ['me', 'here', 'freeCodeCamp']); + + assert(/\n{2}Hello me from here\. I learned that your favorite coding website is freeCodeCamp!\n$/g.test(output)) + }); +}); diff --git a/.freeCodeCamp/test/370.test.js b/.freeCodeCamp/test/370.test.js new file mode 100644 index 0000000000..bd36645a36 --- /dev/null +++ b/.freeCodeCamp/test/370.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/380.test.js b/.freeCodeCamp/test/380.test.js new file mode 100644 index 0000000000..7d81173a0d --- /dev/null +++ b/.freeCodeCamp/test/380.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getDirectoryContents } = require('./utils'); + +describe('You', () => { + it('should use the "touch" command to create the correct file', async () => { + const directoryContents = await getDirectoryContents(`..`); + const lastCommand = await getLastCommand(); + + assert(directoryContents.includes('countdown.sh') && lastCommand[0] === 'touch' && /countdown.sh/g.test(lastCommand[1])); + }); +}); diff --git a/.freeCodeCamp/test/390.test.js b/.freeCodeCamp/test/390.test.js new file mode 100644 index 0000000000..00a90df9fb --- /dev/null +++ b/.freeCodeCamp/test/390.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { canExecute } = require('./utils'); + +describe('Your script file', () => { + it('should have executable permissions', async () => { + const fileIsExecutable = await canExecute('../countdown.sh'); + + assert(fileIsExecutable); + }); +}); diff --git a/.freeCodeCamp/test/40.test.js b/.freeCodeCamp/test/40.test.js new file mode 100644 index 0000000000..155a7f39c1 --- /dev/null +++ b/.freeCodeCamp/test/40.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the "sh" command', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'bash' && /^(\.\/)?questionnaire\.sh$/gm.test(lastCommand[1]) && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/400.test.js b/.freeCodeCamp/test/400.test.js new file mode 100644 index 0000000000..342f421447 --- /dev/null +++ b/.freeCodeCamp/test/400.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the correct "shebang"', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + + assert(/^\s*#![ \t]*\/bin\/bash\s*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/410.test.js b/.freeCodeCamp/test/410.test.js new file mode 100644 index 0000000000..9a1be0c48c --- /dev/null +++ b/.freeCodeCamp/test/410.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested comment added correctly', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + + assert(/^#[ \t]*Program that counts down to zero from a given argument[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/420.test.js b/.freeCodeCamp/test/420.test.js new file mode 100644 index 0000000000..17d82e7e8e --- /dev/null +++ b/.freeCodeCamp/test/420.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggestion correctly', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + + assert(/^[ \t]*echo[ \t]+\$(\*|@)[ \t]*;?[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/425.test.js b/.freeCodeCamp/test/425.test.js new file mode 100644 index 0000000000..34fc051215 --- /dev/null +++ b/.freeCodeCamp/test/425.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && (lastCommand[1] === undefined || lastCommand[1].op === ';') && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/430.test.js b/.freeCodeCamp/test/430.test.js new file mode 100644 index 0000000000..c893712587 --- /dev/null +++ b/.freeCodeCamp/test/430.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct arguments', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === 'arg1' && lastCommand[2] === 'arg2' && lastCommand[3] === 'arg3' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/440.test.js b/.freeCodeCamp/test/440.test.js new file mode 100644 index 0000000000..7fd57f9b32 --- /dev/null +++ b/.freeCodeCamp/test/440.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the suggestion correctly', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + + assert(/^[ \t]*echo[ \t]+\$1[ \t]*;?[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/450.test.js b/.freeCodeCamp/test/450.test.js new file mode 100644 index 0000000000..c893712587 --- /dev/null +++ b/.freeCodeCamp/test/450.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct arguments', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === 'arg1' && lastCommand[2] === 'arg2' && lastCommand[3] === 'arg3' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/460.test.js b/.freeCodeCamp/test/460.test.js new file mode 100644 index 0000000000..c04648cc46 --- /dev/null +++ b/.freeCodeCamp/test/460.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && (lastCommand[1] === undefined || lastCommand[1].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/470.test.js b/.freeCodeCamp/test/470.test.js new file mode 100644 index 0000000000..fa101ad09e --- /dev/null +++ b/.freeCodeCamp/test/470.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'man' && lastCommand[1] === 'if' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/480.test.js b/.freeCodeCamp/test/480.test.js new file mode 100644 index 0000000000..d2fd59f788 --- /dev/null +++ b/.freeCodeCamp/test/480.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'if' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/490.test.js b/.freeCodeCamp/test/490.test.js new file mode 100644 index 0000000000..0902e7118c --- /dev/null +++ b/.freeCodeCamp/test/490.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getCommandOutput, getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "if" statement added correctly', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + const output1 = await getCommandOutput('./countdown.sh arg1'); + const output2 = await getCommandOutput('./countdown.sh'); + + assert(!/echo[ \t]+\$1/g.test(scriptFile) && /^true$/gm.test(output1) && !/^true$/gm.test(output2)); + }); +}); diff --git a/.freeCodeCamp/test/50.test.js b/.freeCodeCamp/test/50.test.js new file mode 100644 index 0000000000..0dfa6a3a04 --- /dev/null +++ b/.freeCodeCamp/test/50.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'which' && lastCommand[1] === 'bash'); + }); +}); diff --git a/.freeCodeCamp/test/500.test.js b/.freeCodeCamp/test/500.test.js new file mode 100644 index 0000000000..c073186759 --- /dev/null +++ b/.freeCodeCamp/test/500.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct arguments', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === 'arg1' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/505.test.js b/.freeCodeCamp/test/505.test.js new file mode 100644 index 0000000000..30fc0bacef --- /dev/null +++ b/.freeCodeCamp/test/505.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct arguments', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] !== 'arg1' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/510.test.js b/.freeCodeCamp/test/510.test.js new file mode 100644 index 0000000000..d0f6854719 --- /dev/null +++ b/.freeCodeCamp/test/510.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "if/else" statement added correctly', async () => { + const output1 = await getCommandOutput('./countdown.sh arg1'); + const output2 = await getCommandOutput('./countdown.sh'); + + assert(/^true$/gm.test(output1) && !/^false$/.test(output1) && !/^true$/gm.test(output2) && /^false$/gm.test(output2)); + }); +}); diff --git a/.freeCodeCamp/test/520.test.js b/.freeCodeCamp/test/520.test.js new file mode 100644 index 0000000000..30fc0bacef --- /dev/null +++ b/.freeCodeCamp/test/520.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct arguments', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] !== 'arg1' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/530.test.js b/.freeCodeCamp/test/530.test.js new file mode 100644 index 0000000000..b5222ed007 --- /dev/null +++ b/.freeCodeCamp/test/530.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested condition for your "if" statement', async () => { + const output1 = await getCommandOutput('./countdown.sh 4'); + const output2 = await getCommandOutput('./countdown.sh 5'); + + assert(/^true$/gm.test(output1) && !/^false$/.test(output1) && !/^true$/gm.test(output2) && /^false$/gm.test(output2)); + }); +}); diff --git a/.freeCodeCamp/test/540.test.js b/.freeCodeCamp/test/540.test.js new file mode 100644 index 0000000000..bca03f792f --- /dev/null +++ b/.freeCodeCamp/test/540.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct arguments', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '4' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/542.test.js b/.freeCodeCamp/test/542.test.js new file mode 100644 index 0000000000..daf57a31c6 --- /dev/null +++ b/.freeCodeCamp/test/542.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct arguments', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '5' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/544.test.js b/.freeCodeCamp/test/544.test.js new file mode 100644 index 0000000000..0bd6cfa26d --- /dev/null +++ b/.freeCodeCamp/test/544.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && (lastCommand[1] === undefined || lastCommand[1].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/546.test.js b/.freeCodeCamp/test/546.test.js new file mode 100644 index 0000000000..a88654f890 --- /dev/null +++ b/.freeCodeCamp/test/546.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === '[['); + }); +}); diff --git a/.freeCodeCamp/test/548.test.js b/.freeCodeCamp/test/548.test.js new file mode 100644 index 0000000000..cee7b8032d --- /dev/null +++ b/.freeCodeCamp/test/548.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'test'); + }); +}); diff --git a/.freeCodeCamp/test/550.test.js b/.freeCodeCamp/test/550.test.js new file mode 100644 index 0000000000..c1c481be73 --- /dev/null +++ b/.freeCodeCamp/test/550.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested condition for your "if" statement', async () => { + const output1 = await getCommandOutput('./countdown.sh 5'); + const output2 = await getCommandOutput('./countdown.sh 6'); + + assert(/^true$/gm.test(output1) && !/^false$/.test(output1) && !/^true$/gm.test(output2) && /^false$/gm.test(output2)); + }); +}); diff --git a/.freeCodeCamp/test/552.test.js b/.freeCodeCamp/test/552.test.js new file mode 100644 index 0000000000..daf57a31c6 --- /dev/null +++ b/.freeCodeCamp/test/552.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct arguments', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '5' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/554.test.js b/.freeCodeCamp/test/554.test.js new file mode 100644 index 0000000000..4d9eae2985 --- /dev/null +++ b/.freeCodeCamp/test/554.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === '[[' && lastCommand[1] === '4' && lastCommand[2] === '-le' && lastCommand[3] === '5' && lastCommand[4] === ']]' && (lastCommand[5] === undefined || lastCommand[5].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/556.test.js b/.freeCodeCamp/test/556.test.js new file mode 100644 index 0000000000..9e754f60dc --- /dev/null +++ b/.freeCodeCamp/test/556.test.js @@ -0,0 +1,13 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + // second to last command + const slc = await getLastCommand(1); + const slcTest = slc[0] === '[[' && slc[1] === '4' && slc[2] === '-le' && slc[3] === '5' && slc[4] === ']]' && (slc[5] === undefined || slc[5].op === ';'); + + assert(/^[ \t]*echo[ \t]+\$\?[ \t]*;?[ \t]*$/.test(lastCommand) && slcTest); + }); +}); diff --git a/.freeCodeCamp/test/558.test.js b/.freeCodeCamp/test/558.test.js new file mode 100644 index 0000000000..5e2e87fb39 --- /dev/null +++ b/.freeCodeCamp/test/558.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === '[[' && lastCommand[1] === '4' && lastCommand[2] === '-ge' && lastCommand[3] === '5' && lastCommand[4] === ']]' && (lastCommand[5] === undefined || lastCommand[5].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/560.test.js b/.freeCodeCamp/test/560.test.js new file mode 100644 index 0000000000..1a1adf58a6 --- /dev/null +++ b/.freeCodeCamp/test/560.test.js @@ -0,0 +1,13 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + const secondToLastCommand = await getLastCommand(1); + const slc = secondToLastCommand; + const slcTest = slc[0] === '[[' && slc[1] === '4' && slc[2] === '-ge' && slc[3] === '5' && slc[4] === ']]' && (slc[5] === undefined || slc[5].op === ';'); + + assert(/echo[ \t]+\$\?[ \t]*;?[ \t]*$/.test(lastCommand) && slcTest); + }); +}); diff --git a/.freeCodeCamp/test/562.test.js b/.freeCodeCamp/test/562.test.js new file mode 100644 index 0000000000..9a59bf9cd5 --- /dev/null +++ b/.freeCodeCamp/test/562.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[\s+4\s+-ge\s+5\s+\]\]\s*;\s*echo\s+\$\?\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/564.test.js b/.freeCodeCamp/test/564.test.js new file mode 100644 index 0000000000..661b894805 --- /dev/null +++ b/.freeCodeCamp/test/564.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[\s+10\s+-ne\s+5\s+\]\]\s*;\s*echo\s+\$\?\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/566.test.js b/.freeCodeCamp/test/566.test.js new file mode 100644 index 0000000000..7eda6bac0c --- /dev/null +++ b/.freeCodeCamp/test/566.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*bad_command\s*;\s*echo\s+\$\?\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/568.test.js b/.freeCodeCamp/test/568.test.js new file mode 100644 index 0000000000..68fd567403 --- /dev/null +++ b/.freeCodeCamp/test/568.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*ls\s*;\s*echo\s+\$\?\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/570.test.js b/.freeCodeCamp/test/570.test.js new file mode 100644 index 0000000000..084a57dbfb --- /dev/null +++ b/.freeCodeCamp/test/570.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*ls\s+-y\s*;\s*echo\s+\$\?\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/572.test.js b/.freeCodeCamp/test/572.test.js new file mode 100644 index 0000000000..cee7b8032d --- /dev/null +++ b/.freeCodeCamp/test/572.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'test'); + }); +}); diff --git a/.freeCodeCamp/test/574.test.js b/.freeCodeCamp/test/574.test.js new file mode 100644 index 0000000000..14560fd7cf --- /dev/null +++ b/.freeCodeCamp/test/574.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[\s+-a\s+(\.\/)?countdown\.sh\s+\]\]\s*;\s*echo\s+\$\?\s*;?\s*$/g.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/575.test.js b/.freeCodeCamp/test/575.test.js new file mode 100644 index 0000000000..e826d27be5 --- /dev/null +++ b/.freeCodeCamp/test/575.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[\s+-a\s+(\.\/)?bad_file\.txt\s+\]\]\s*;\s*echo\s+\$\?\s*;?\s*$/g.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/576.test.js b/.freeCodeCamp/test/576.test.js new file mode 100644 index 0000000000..c745171f8f --- /dev/null +++ b/.freeCodeCamp/test/576.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested commands in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[\s+-x\s+(\.\/)?countdown\.sh\s+\]\]\s*;\s*echo\s+\$\?\s*;?\s*$/g.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/582.test.js b/.freeCodeCamp/test/582.test.js new file mode 100644 index 0000000000..a88654f890 --- /dev/null +++ b/.freeCodeCamp/test/582.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === '[['); + }); +}); diff --git a/.freeCodeCamp/test/584.test.js b/.freeCodeCamp/test/584.test.js new file mode 100644 index 0000000000..fc5995f58d --- /dev/null +++ b/.freeCodeCamp/test/584.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested commands in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[\s+-x\s+(\.\/)?countdown\.sh\s+&&\s+5\s+-le\s+4\s+\]\]\s*;\s*echo\s+\$\?\s*;?\s*$/g.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/586.test.js b/.freeCodeCamp/test/586.test.js new file mode 100644 index 0000000000..843311636e --- /dev/null +++ b/.freeCodeCamp/test/586.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested commands in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\[\[\s+-x\s+(\.\/)?countdown\.sh\s+\|\|\s+5\s+-le\s+4\s+\]\]\s*;\s*echo\s+\$\?\s*;?\s*$/g.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/588.test.js b/.freeCodeCamp/test/588.test.js new file mode 100644 index 0000000000..a02625e33a --- /dev/null +++ b/.freeCodeCamp/test/588.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "if/else" statement added correctly', async () => { + const output1 = await getCommandOutput('./countdown.sh 1'); + const output2 = await getCommandOutput('./countdown.sh 0'); + + assert(/^true$/gm.test(output1) && !/^false$/.test(output1) && !/^true$/gm.test(output2) && /^false$/gm.test(output2)); + }); +}); diff --git a/.freeCodeCamp/test/590.test.js b/.freeCodeCamp/test/590.test.js new file mode 100644 index 0000000000..48d2d51edf --- /dev/null +++ b/.freeCodeCamp/test/590.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "if/else" statement added correctly', async () => { + const output1 = await getCommandOutput('./countdown.sh 1'); + const output2 = await getCommandOutput('./countdown.sh 0'); + + assert(/^true$/gm.test(output1) && !/^false$/.test(output1) && !/^true$/gm.test(output2) && /^Include a positive integer as the first argument\.$/gm.test(output2)); + }); +}); diff --git a/.freeCodeCamp/test/60.test.js b/.freeCodeCamp/test/60.test.js new file mode 100644 index 0000000000..d30b48fbbc --- /dev/null +++ b/.freeCodeCamp/test/60.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the correct "shebang"', async () => { + const scriptFile = await getFileContents('../questionnaire.sh'); + + assert(/^\s*#![ \t]*\/bin\/bash\s*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/600.test.js b/.freeCodeCamp/test/600.test.js new file mode 100644 index 0000000000..da2dd922ee --- /dev/null +++ b/.freeCodeCamp/test/600.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct argument', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '1' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/610.test.js b/.freeCodeCamp/test/610.test.js new file mode 100644 index 0000000000..b1ac105cd7 --- /dev/null +++ b/.freeCodeCamp/test/610.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct argument', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + const arg = parseInt(lastCommand[1]); + + assert(lastCommand[0] === './countdown.sh' && (arg < 1 || isNaN(arg) || /\./.test(lastCommand[1])) && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/615.test.js b/.freeCodeCamp/test/615.test.js new file mode 100644 index 0000000000..0bd6cfa26d --- /dev/null +++ b/.freeCodeCamp/test/615.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && (lastCommand[1] === undefined || lastCommand[1].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/620.test.js b/.freeCodeCamp/test/620.test.js new file mode 100644 index 0000000000..0c99573e3b --- /dev/null +++ b/.freeCodeCamp/test/620.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "for" loop added correctly', async () => { + const output = await getCommandOutput('./countdown.sh 3'); + + assert(/^3\n2\n1\n$/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/630.test.js b/.freeCodeCamp/test/630.test.js new file mode 100644 index 0000000000..0cd5d81e92 --- /dev/null +++ b/.freeCodeCamp/test/630.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct argument', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '10' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/640.test.js b/.freeCodeCamp/test/640.test.js new file mode 100644 index 0000000000..c04648cc46 --- /dev/null +++ b/.freeCodeCamp/test/640.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && (lastCommand[1] === undefined || lastCommand[1].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/650.test.js b/.freeCodeCamp/test/650.test.js new file mode 100644 index 0000000000..3aa3c90028 --- /dev/null +++ b/.freeCodeCamp/test/650.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'ls' && lastCommand[1] === '/' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/660.test.js b/.freeCodeCamp/test/660.test.js new file mode 100644 index 0000000000..3296c0477a --- /dev/null +++ b/.freeCodeCamp/test/660.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'ls' && lastCommand[1] === '/bin' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/670.test.js b/.freeCodeCamp/test/670.test.js new file mode 100644 index 0000000000..f42944ffd6 --- /dev/null +++ b/.freeCodeCamp/test/670.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'man' && lastCommand[1] === 'sleep'); + }); +}); diff --git a/.freeCodeCamp/test/675.test.js b/.freeCodeCamp/test/675.test.js new file mode 100644 index 0000000000..7bb7ef27ff --- /dev/null +++ b/.freeCodeCamp/test/675.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'sleep' && lastCommand[1] === '3' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/680.test.js b/.freeCodeCamp/test/680.test.js new file mode 100644 index 0000000000..5bff6a0efe --- /dev/null +++ b/.freeCodeCamp/test/680.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "for" loop added correctly', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + + assert(/^\s*sleep[ \t]+1[ \t]*;?[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/690.test.js b/.freeCodeCamp/test/690.test.js new file mode 100644 index 0000000000..34df8a549d --- /dev/null +++ b/.freeCodeCamp/test/690.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct argument', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '3' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/692.test.js b/.freeCodeCamp/test/692.test.js new file mode 100644 index 0000000000..2afc0a914b --- /dev/null +++ b/.freeCodeCamp/test/692.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "for" loop added correctly', async () => { + const output = await getCommandOutput('./countdown.sh 1'); + + assert(/^1\n0\n$/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/694.test.js b/.freeCodeCamp/test/694.test.js new file mode 100644 index 0000000000..393c7d8655 --- /dev/null +++ b/.freeCodeCamp/test/694.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct argument', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '3' && (lastCommand[2] === undefined || lastCommand[2].op === ';') && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/696.test.js b/.freeCodeCamp/test/696.test.js new file mode 100644 index 0000000000..fa885f2a5c --- /dev/null +++ b/.freeCodeCamp/test/696.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the correct title', async () => { + const output = await getCommandOutput('./countdown.sh 1'); + + assert(/^\n~~ Countdown Timer ~~\n{2}1\n0\n/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/698.test.js b/.freeCodeCamp/test/698.test.js new file mode 100644 index 0000000000..686b39820e --- /dev/null +++ b/.freeCodeCamp/test/698.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct argument', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '1' && (lastCommand[2] === undefined || lastCommand[2].op === ';') && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/70.test.js b/.freeCodeCamp/test/70.test.js new file mode 100644 index 0000000000..ed8cf4869c --- /dev/null +++ b/.freeCodeCamp/test/70.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './questionnaire.sh' && /\/project$/.test(cwd)); + }); +}); \ No newline at end of file diff --git a/.freeCodeCamp/test/700.test.js b/.freeCodeCamp/test/700.test.js new file mode 100644 index 0000000000..966631383e --- /dev/null +++ b/.freeCodeCamp/test/700.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested comment added correctly', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + const output = await getCommandOutput('./countdown.sh 1'); + + assert(/^\n~~ Countdown Timer ~~\n{2}/g.test(output) && !/1/g.test(output) && /:[ \t]+'[^']*'[ \t]*?\n+/g.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/710.test.js b/.freeCodeCamp/test/710.test.js new file mode 100644 index 0000000000..f3482a3f05 --- /dev/null +++ b/.freeCodeCamp/test/710.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'while'); + }); +}); diff --git a/.freeCodeCamp/test/730.test.js b/.freeCodeCamp/test/730.test.js new file mode 100644 index 0000000000..0f899bb939 --- /dev/null +++ b/.freeCodeCamp/test/730.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested variable added correctly', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + const output = await appendAndRun('../countdown.sh', 'echo $I', { args: [1] }); + + assert(/1/g.test(output) && /I=('|"|)\$1\1/.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/740.test.js b/.freeCodeCamp/test/740.test.js new file mode 100644 index 0000000000..459721e459 --- /dev/null +++ b/.freeCodeCamp/test/740.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "while" loop added correctly', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + + assert(/[ \t]*while[ \t]+\[\[[ \t]+\$I[ \t]+-ge[ \t]+0[ \t]+\]\][ \t]*(;\s*|;?[ \t]*\n+)[ \t]*do\s*echo[ \t]+\$I[ \t]*(;\s*|;?[ \t]*\n+)[ \t]*done[ \t]*(;|[ \t]*\n+)/g.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/750.test.js b/.freeCodeCamp/test/750.test.js new file mode 100644 index 0000000000..1f4f92c503 --- /dev/null +++ b/.freeCodeCamp/test/750.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the correct math in the "while" loop', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + + assert(/[ \t]*while[ \t]+\[\[[ \t]+\$I[ \t]+-ge[ \t]+0[ \t]+\]\][ \t]*(;\s*|;?[ \t]*\n+)[ \t]*do\s*echo[ \t]+\$I[ \t]*(;\s*|;?[ \t]*\n+)[ \t]*\(\([ \t]*I[ \t]*--[ \t]*\)\)[ \t]*(;\s*|;?[ \t]*\n+)[ \t]*done[ \t]*(;|[ \t]*\n+)/g.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/760.test.js b/.freeCodeCamp/test/760.test.js new file mode 100644 index 0000000000..8eab584f4c --- /dev/null +++ b/.freeCodeCamp/test/760.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should correctly have the "sleep" in the "while" loop', async () => { + const scriptFile = await getFileContents('../countdown.sh'); + + assert(/[ \t]*while[ \t]+\[\[[ \t]+\$I[ \t]+-ge[ \t]+0[ \t]+\]\][ \t]*(;\s*|;?[ \t]*\n+)[ \t]*do\s*echo[ \t]+\$I[ \t]*(;\s*|;?[ \t]*\n+)[ \t]*\(\([ \t]*I[ \t]*--[ \t]*\)\)[ \t]*(;\s*|;?[ \t]*\n+)[ \t]*sleep[ \t]+1(;\s*|;?[ \t]*\n+)[ \t]*done[ \t]*(;|[ \t]*\n+)/g.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/770.test.js b/.freeCodeCamp/test/770.test.js new file mode 100644 index 0000000000..86a396c9c0 --- /dev/null +++ b/.freeCodeCamp/test/770.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script with the correct argument', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './countdown.sh' && lastCommand[1] === '5' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/780.test.js b/.freeCodeCamp/test/780.test.js new file mode 100644 index 0000000000..56f8037955 --- /dev/null +++ b/.freeCodeCamp/test/780.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getDirectoryContents } = require('./utils'); + +describe('You', () => { + it('should use the "touch" command to create the correct file', async () => { + const directoryContents = await getDirectoryContents(`..`); + const lastCommand = await getLastCommand(); + + assert(directoryContents.includes('bingo.sh') && lastCommand[0] === 'touch' && /bingo.sh/g.test(lastCommand[1])); + }); +}); diff --git a/.freeCodeCamp/test/790.test.js b/.freeCodeCamp/test/790.test.js new file mode 100644 index 0000000000..133abed3dc --- /dev/null +++ b/.freeCodeCamp/test/790.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { canExecute } = require('./utils'); + +describe('Your script file', () => { + it('should have executable permissions', async () => { + const fileIsExecutable = await canExecute('../bingo.sh'); + + assert(fileIsExecutable); + }); +}); diff --git a/.freeCodeCamp/test/80.test.js b/.freeCodeCamp/test/80.test.js new file mode 100644 index 0000000000..7138ad8f9f --- /dev/null +++ b/.freeCodeCamp/test/80.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should "list" the folder contents with the correct flag', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'ls' && lastCommand[1] === '-l' && /\/project$/.test(cwd)); + }); +}); \ No newline at end of file diff --git a/.freeCodeCamp/test/800.test.js b/.freeCodeCamp/test/800.test.js new file mode 100644 index 0000000000..3b0811c60d --- /dev/null +++ b/.freeCodeCamp/test/800.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the correct "shebang"', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + + assert(/^\s*#![ \t]*\/bin\/bash\s*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/810.test.js b/.freeCodeCamp/test/810.test.js new file mode 100644 index 0000000000..14b3bfcab2 --- /dev/null +++ b/.freeCodeCamp/test/810.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested comment added correctly', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + + assert(/^#[ \t]*Bingo Number Generator[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/815.test.js b/.freeCodeCamp/test/815.test.js new file mode 100644 index 0000000000..6368046daa --- /dev/null +++ b/.freeCodeCamp/test/815.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should "echo" the correct title', async () => { + const output = await getCommandOutput('./bingo.sh'); + + assert(/^\n~~ Bingo Number Generator ~~\n{2}/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/817.test.js b/.freeCodeCamp/test/817.test.js new file mode 100644 index 0000000000..79e01e0b56 --- /dev/null +++ b/.freeCodeCamp/test/817.test.js @@ -0,0 +1,9 @@ +const assert = require('assert'); +const { getFileContents, appendAndRun } = require('./utils'); +describe('Your script', () => { + it('should have the suggested variable added correctly', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + const output = await appendAndRun('../bingo.sh', 'echo $NUMBER'); + assert(/^\s*NUMBER=('|"|)5\1[ \t]*;?[ \t]*$/gm.test(scriptFile) && /^5$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/818.test.js b/.freeCodeCamp/test/818.test.js new file mode 100644 index 0000000000..b7328145be --- /dev/null +++ b/.freeCodeCamp/test/818.test.js @@ -0,0 +1,8 @@ +const assert = require('assert'); +const { getCommandOutput } = require('./utils'); +describe('Your script', () => { + it('should "echo" the suggested variable correctly', async () => { + const output = await getCommandOutput('./bingo.sh'); + assert(/5/g.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/819.test.js b/.freeCodeCamp/test/819.test.js new file mode 100644 index 0000000000..32eb9bd970 --- /dev/null +++ b/.freeCodeCamp/test/819.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './bingo.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/820.test.js b/.freeCodeCamp/test/820.test.js new file mode 100644 index 0000000000..49c080c5c7 --- /dev/null +++ b/.freeCodeCamp/test/820.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'printenv' && (lastCommand[1] === undefined || lastCommand[1].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/822.test.js b/.freeCodeCamp/test/822.test.js new file mode 100644 index 0000000000..b749d6f5d1 --- /dev/null +++ b/.freeCodeCamp/test/822.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo[ \t]+\$LANG[ \t]*;?\s*$/gm.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/824.test.js b/.freeCodeCamp/test/824.test.js new file mode 100644 index 0000000000..c441314118 --- /dev/null +++ b/.freeCodeCamp/test/824.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'declare' && lastCommand[1] === '-p' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/826.test.js b/.freeCodeCamp/test/826.test.js new file mode 100644 index 0000000000..6374fdd8c7 --- /dev/null +++ b/.freeCodeCamp/test/826.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo[ \t]+\$RANDOM[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/828.test.js b/.freeCodeCamp/test/828.test.js new file mode 100644 index 0000000000..7ce3d96cd7 --- /dev/null +++ b/.freeCodeCamp/test/828.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested variable', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + + assert(/^\s*NUMBER=('|"|)\$RANDOM\1[ \t]*;?[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/830.test.js b/.freeCodeCamp/test/830.test.js new file mode 100644 index 0000000000..6007bc3b71 --- /dev/null +++ b/.freeCodeCamp/test/830.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + const secondLastCommand = await getLastCommand(1); + + assert(lastCommand[0] === './bingo.sh' && secondLastCommand[0] === './bingo.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/835.test.js b/.freeCodeCamp/test/835.test.js new file mode 100644 index 0000000000..21ff1bfa01 --- /dev/null +++ b/.freeCodeCamp/test/835.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getFileContents } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested variable', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + + assert(/^\s*NUMBER=('|"|)\$RANDOM%75[ \t]*;?[ \t]*$/gm.test(scriptFile)); + }); +}); diff --git a/.freeCodeCamp/test/840.test.js b/.freeCodeCamp/test/840.test.js new file mode 100644 index 0000000000..32eb9bd970 --- /dev/null +++ b/.freeCodeCamp/test/840.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === './bingo.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/881.test.js b/.freeCodeCamp/test/881.test.js new file mode 100644 index 0000000000..737fd892d9 --- /dev/null +++ b/.freeCodeCamp/test/881.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*I=('|"|)0\1[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/884.test.js b/.freeCodeCamp/test/884.test.js new file mode 100644 index 0000000000..da7ceb9d90 --- /dev/null +++ b/.freeCodeCamp/test/884.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo[ \t]+('|"|)\$I\1[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/887.test.js b/.freeCodeCamp/test/887.test.js new file mode 100644 index 0000000000..f097591937 --- /dev/null +++ b/.freeCodeCamp/test/887.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\(\(\s*\$?I\s*\+\+\s*\)\)\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/890.test.js b/.freeCodeCamp/test/890.test.js new file mode 100644 index 0000000000..da7ceb9d90 --- /dev/null +++ b/.freeCodeCamp/test/890.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo[ \t]+('|"|)\$I\1[ \t]*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/891.test.js b/.freeCodeCamp/test/891.test.js new file mode 100644 index 0000000000..fd263c04b0 --- /dev/null +++ b/.freeCodeCamp/test/891.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'let'); + }); +}); diff --git a/.freeCodeCamp/test/893.test.js b/.freeCodeCamp/test/893.test.js new file mode 100644 index 0000000000..c83bbf3f10 --- /dev/null +++ b/.freeCodeCamp/test/893.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\(\(\s*\$?I\s*\+=\s*10\s*\)\)\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/896.test.js b/.freeCodeCamp/test/896.test.js new file mode 100644 index 0000000000..d2635abd93 --- /dev/null +++ b/.freeCodeCamp/test/896.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+('|"|)\$I\1\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/897.test.js b/.freeCodeCamp/test/897.test.js new file mode 100644 index 0000000000..0c1c1762d3 --- /dev/null +++ b/.freeCodeCamp/test/897.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*\$\(\(\s*\$?I\s*\+\s*4\s*\)\)\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/899.test.js b/.freeCodeCamp/test/899.test.js new file mode 100644 index 0000000000..bb2390ce63 --- /dev/null +++ b/.freeCodeCamp/test/899.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+\$\(\(\s*\$?I\s*\+\s*4\s*\)\)\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/90.test.js b/.freeCodeCamp/test/90.test.js new file mode 100644 index 0000000000..34981bf476 --- /dev/null +++ b/.freeCodeCamp/test/90.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { canExecute } = require('./utils'); + +describe('Your script file', () => { + it('should have executable permissions', async () => { + const fileIsExecutable = await canExecute('../questionnaire.sh'); + + assert(fileIsExecutable); + }); +}); diff --git a/.freeCodeCamp/test/902.test.js b/.freeCodeCamp/test/902.test.js new file mode 100644 index 0000000000..d2635abd93 --- /dev/null +++ b/.freeCodeCamp/test/902.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+('|"|)\$I\1\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/905.test.js b/.freeCodeCamp/test/905.test.js new file mode 100644 index 0000000000..a1cf207602 --- /dev/null +++ b/.freeCodeCamp/test/905.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*J=('|"|)\$\(\(\s*\$?I\s*\-\s*6\s*\)\)\s*\1\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/908.test.js b/.freeCodeCamp/test/908.test.js new file mode 100644 index 0000000000..3d023a84f1 --- /dev/null +++ b/.freeCodeCamp/test/908.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+('|"|)\$J\1\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/911.test.js b/.freeCodeCamp/test/911.test.js new file mode 100644 index 0000000000..2afd8ad6eb --- /dev/null +++ b/.freeCodeCamp/test/911.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+\$\(\(\s*\$?J\s*\*\s*5\s*\+\s*25\s*\)\)\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/912.test.js b/.freeCodeCamp/test/912.test.js new file mode 100644 index 0000000000..3d023a84f1 --- /dev/null +++ b/.freeCodeCamp/test/912.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+('|"|)\$J\1\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/913.test.js b/.freeCodeCamp/test/913.test.js new file mode 100644 index 0000000000..c441314118 --- /dev/null +++ b/.freeCodeCamp/test/913.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'declare' && lastCommand[1] === '-p' && (lastCommand[2] === undefined || lastCommand[2].op === ';')); + }); +}); diff --git a/.freeCodeCamp/test/914.test.js b/.freeCodeCamp/test/914.test.js new file mode 100644 index 0000000000..51663d0f01 --- /dev/null +++ b/.freeCodeCamp/test/914.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'declare' && lastCommand[1] === '-p' && lastCommand[2] === 'J'); + }); +}); diff --git a/.freeCodeCamp/test/916.test.js b/.freeCodeCamp/test/916.test.js new file mode 100644 index 0000000000..d860e1a992 --- /dev/null +++ b/.freeCodeCamp/test/916.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'declare' && lastCommand[1] === '-p' && lastCommand[2] === 'RANDOM'); + }); +}); diff --git a/.freeCodeCamp/test/918.test.js b/.freeCodeCamp/test/918.test.js new file mode 100644 index 0000000000..c4dfdf595f --- /dev/null +++ b/.freeCodeCamp/test/918.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo[ \t]+\$\(\([ \t]*\$?RANDOM[ \t]*%[ \t]*75[ \t]*\)\)[ \t]*;?\s*$/gm.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/920.test.js b/.freeCodeCamp/test/920.test.js new file mode 100644 index 0000000000..c7763f4d14 --- /dev/null +++ b/.freeCodeCamp/test/920.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(0, false); + + assert(/^\s*echo\s+('|"|)\$\(\(\s*\$?RANDOM\s*%\s*75\s*\+\s*1\s*\)\)\1\s*;?\s*$/.test(lastCommand)); + }); +}); diff --git a/.freeCodeCamp/test/928.test.js b/.freeCodeCamp/test/928.test.js new file mode 100644 index 0000000000..e2cf34d614 --- /dev/null +++ b/.freeCodeCamp/test/928.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, getCommandOutput } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested variable', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + const output = await getCommandOutput('./bingo.sh'); + + assert(/^\s*NUMBER=('|"|)\$\(\([ \t]*\$?RANDOM[ \t]*%[ \t]*75[ \t]*\+[ \t]*1[ \t]*\)\)\1[ \t]*;?\s*$/gm.test(scriptFile) && /^\d{1,2}$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/930.test.js b/.freeCodeCamp/test/930.test.js new file mode 100644 index 0000000000..6900e8e496 --- /dev/null +++ b/.freeCodeCamp/test/930.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getLastCommand, getCwd } = require('./utils'); + +describe('You', () => { + it('should run your script by executing it', async () => { + const cwd = await getCwd(); + const lastCommand = await getLastCommand(); + const secondLastCommand = await getLastCommand(1); + + assert(lastCommand[0] === './bingo.sh' && secondLastCommand[0] === './bingo.sh' && /\/project$/.test(cwd)); + }); +}); diff --git a/.freeCodeCamp/test/940.test.js b/.freeCodeCamp/test/940.test.js new file mode 100644 index 0000000000..eb5aad2733 --- /dev/null +++ b/.freeCodeCamp/test/940.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const { getFileContents, appendAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested variable added correctly', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + const output = await appendAndRun('../bingo.sh', 'echo $TEXT'); + + assert(/^\s*TEXT=('|"|)The next number is, \1[ \t]*;?\s*$/gm.test(scriptFile) && /^The next number is,$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/945.test.js b/.freeCodeCamp/test/945.test.js new file mode 100644 index 0000000000..fd263c04b0 --- /dev/null +++ b/.freeCodeCamp/test/945.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const { getLastCommand } = require('./utils'); + +describe('You', () => { + it('should enter the suggested command in the terminal', async () => { + const lastCommand = await getLastCommand(); + + assert(lastCommand[0] === 'help' && lastCommand[1] === 'let'); + }); +}); diff --git a/.freeCodeCamp/test/950.test.js b/.freeCodeCamp/test/950.test.js new file mode 100644 index 0000000000..3f53420218 --- /dev/null +++ b/.freeCodeCamp/test/950.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getFileContents, replaceAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "if" statement added correctly', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + const re = /75/g; + const output = await replaceAndRun('../bingo.sh', re, '15'); + + assert(/^\s*if[ \t]+\(\([ \t]*\$?NUMBER[ \t]*<=[ \t]*15[ \t]*\)\)/gm.test(scriptFile) && !/echo[ \t]+\$NUMBER/.test(scriptFile) && /^The next number is, B:\d{1,2}$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/960.test.js b/.freeCodeCamp/test/960.test.js new file mode 100644 index 0000000000..d0b1e4627a --- /dev/null +++ b/.freeCodeCamp/test/960.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getFileContents, replaceAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "elif" statement added correctly', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + const re = /75\s*\+\s*1/g; + const output = await replaceAndRun('../bingo.sh', re, '15+16'); + + assert(/elif[ \t]+\[\[[ \t]+\$NUMBER[ \t]+-le[ \t]+30[ \t]+\]\]/gm.test(scriptFile) && /^The next number is, I:\d{1,2}$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/970.test.js b/.freeCodeCamp/test/970.test.js new file mode 100644 index 0000000000..101ad7ecbc --- /dev/null +++ b/.freeCodeCamp/test/970.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getFileContents, replaceAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "elif" statement added correctly', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + const re = /75\s*\+\s*1/g; + const output = await replaceAndRun('../bingo.sh', re, '15+31'); + + assert(/elif[ \t]+\(\([ \t]*\$?NUMBER[ \t]*<[ \t]*46[ \t]*\)\)/gm.test(scriptFile) && /^The next number is, N:\d{1,2}$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/980.test.js b/.freeCodeCamp/test/980.test.js new file mode 100644 index 0000000000..0ad0f439b9 --- /dev/null +++ b/.freeCodeCamp/test/980.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getFileContents, replaceAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "elif" statement added correctly', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + const re = /75\s*\+\s*1/g; + const output = await replaceAndRun('../bingo.sh', re, '15+46'); + + assert(/elif[ \t]+\[\[[ \t]+\$NUMBER[ \t]+-lt[ \t]+61[ \t]+\]\]/gm.test(scriptFile) && /^The next number is, G:\d{1,2}$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/990.test.js b/.freeCodeCamp/test/990.test.js new file mode 100644 index 0000000000..f351a991e0 --- /dev/null +++ b/.freeCodeCamp/test/990.test.js @@ -0,0 +1,12 @@ +const assert = require('assert'); +const { getFileContents, replaceAndRun } = require('./utils'); + +describe('Your script', () => { + it('should have the suggested "else" statement added correctly', async () => { + const scriptFile = await getFileContents('../bingo.sh'); + const re = /75\s*\+\s*1/g; + const output = await replaceAndRun('../bingo.sh', re, '15+61'); + + assert(/else\s+echo[ \t]+\$TEXT O:\$NUMBER\s+/gm.test(scriptFile) && /^The next number is, O:\d{1,2}$/gm.test(output)); + }); +}); diff --git a/.freeCodeCamp/test/utils.js b/.freeCodeCamp/test/utils.js new file mode 100644 index 0000000000..65fcc970ad --- /dev/null +++ b/.freeCodeCamp/test/utils.js @@ -0,0 +1,170 @@ +const fs = require('fs'); +const util = require('util'); +const path = require('path'); +const parseCommand = require('shell-quote').parse; +const execute = util.promisify(require('child_process').exec); +const { exec } = require('promisify-child-process'); + +const readFile = util.promisify(fs.readFile); +const readdir = util.promisify(fs.readdir); + +const getLastCommand = async (howManyBack = 0, parse = true, dir = process.cwd()) => { + const pathToBashLogs = path.join(dir, '../../', '.bash_history'); + const bashLogs = await readFile(pathToBashLogs, 'utf8'); + + if (!bashLogs) { + throw new Error(`Could not find ${pathToBashLogs}`); + } + + const logs = bashLogs.split('\n'); + const lastLog = logs[logs.length - howManyBack - 2]; + + if(parse) { + return parseCommand(lastLog); + } else { + return lastLog; + } +}; + +const getNextCommand = async (howManyBack = 2, dir = process.cwd()) => { + const pathToNextCommandLogs = path.join(dir, './test', '.next_command'); + const nextCommandLogs = await readFile(pathToNextCommandLogs, 'utf8'); + + if (!nextCommandLogs) { + throw new Error(`Could not find ${pathToNextCommandLogs}`); + } + + const logs = nextCommandLogs.split('\n'); + const nextCommand = logs[logs.length - howManyBack]; + const parsedCommand = parseCommand(nextCommand); + + return parsedCommand; +}; + +const getCwd = async (dir = process.cwd()) => { + const pathToCwdLogs = path.join(dir, './test', '.cwd'); + const cwdLogs = await readFile(pathToCwdLogs, 'utf8'); + + if (!cwdLogs) { + throw new Error(`Could not find ${pathToCwdLogs}`); + } + + const logs = cwdLogs.split('\n'); + const lastLog = logs[logs.length - 2]; + + return lastLog; +}; + +const getPreviousCwd = async (dir = process.cwd()) => { + const pathToCwdLogs = path.join(dir, './test', '.cwd'); + const cwdLogs = await readFile(pathToCwdLogs, 'utf8'); + + if (!cwdLogs) { + throw new Error(`Could not find ${pathToCwdLogs}`); + } + + const logs = cwdLogs.split('\n'); + const previousLog = logs[logs.length - 3]; + + return previousLog; +}; + +const getDirectoryContents = async (dir = process.cwd()) => { + const directoryContents = await readdir(dir); + + if (!directoryContents) { + throw new Error(`Could not find folder ${dir}`); + } + + return directoryContents; +}; + +const getFileContents = async (file = process.cwd()) => { + const fileContents = await readFile(file); + + if (!fileContents) { + throw new Error(`Could not read file ${file}`); + } + + return fileContents.toString(); +}; + +const getCommandOutput = async function(command) { + const { stdout } = await execute(command, { cwd: '..', shell: '/bin/bash' }); + return stdout; +} + +const canExecute = async function(file) { + try { + fs.accessSync(file, fs.constants.X_OK); + return true; + } catch (err) { + return false; + } +} + +const removeWhitespace = async function(string) { + return string.replace(/\s/g, ''); +} + +const getScriptOutput = async function(command, input = []) { + let nextInput = 0; + + const child = exec(command, {cwd: '..'}); + child.stdout.on('data', () => { + if(nextInput < input.length) { + child.stdin.write(`${input[nextInput++] || ''}\n`); + } + }); + + child.stderr.on('data', err => { + console.log(`An error occurred running ${command}`); + console.log(err); + }); + + setTimeout(() => { + child.kill(); + }, 1000); + + const { stdout } = await child; + return stdout; +}; + +const appendAndRun = async function(file, string, options = { input: [], args: [] }) { + const { input = [], args = []} = options; + const fileContents = await getFileContents(file); + const appended = `${fileContents}\n${string}`; + + fs.writeFileSync('test.sh', appended); + fs.chmodSync('test.sh', '755'); + + const commandOutput = await getScriptOutput(`./.freeCodeCamp/test.sh ${args.join(' ')}`, input); + + return commandOutput; +} + +const replaceAndRun = async function(file, oldString, newString, options = { input: [], args: [] }) { + const { input = [], args = []} = options; + const fileContents = await getFileContents(file); + const replaced = fileContents.replace(oldString, newString); + + fs.writeFileSync('test.sh', replaced); + fs.chmodSync('test.sh', '755'); + + const commandOutput = await getScriptOutput(`./.freeCodeCamp/test.sh ${args.join(' ')}`, input); + + return commandOutput; +} + +exports.getLastCommand = getLastCommand; +exports.getNextCommand = getNextCommand; +exports.getCwd = getCwd; +exports.getPreviousCwd = getPreviousCwd; +exports.getDirectoryContents = getDirectoryContents; +exports.getFileContents = getFileContents; +exports.getCommandOutput = getCommandOutput; +exports.canExecute = canExecute; +exports.removeWhitespace = removeWhitespace; +exports.getScriptOutput = getScriptOutput; +exports.appendAndRun = appendAndRun; +exports.replaceAndRun = replaceAndRun; From 822964ebb046185412b098bc59cf74de53bd47af Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 9 Sep 2020 11:33:19 -0500 Subject: [PATCH 002/325] 10.1 --- .freeCodeCamp/.mocharc.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 717711d3dc..ce03adf7cb 100644 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,8 +1,8 @@ { - "spec": ["./test/*.js"], + "spec": ["./test/10.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", "exit": "true", - "grep": "/passAllTests/" + "grep": "/./" } \ No newline at end of file From 3bdf4ae1cd6947f6605abe7aae3e4e5d20ba1803 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 15 Jul 2025 16:41:09 +0000 Subject: [PATCH 003/325] Save progress: 10.1 --- .freeCodeCamp/.bashrc | 0 .freeCodeCamp/package-lock.json | 830 +++-- .freeCodeCamp/test/.cwd | 2 + .freeCodeCamp/test/.next_command | 35 + .gitignore | 0 .gitpod.yml | 0 .vscode/settings.json | 0 CHANGELOG.md | 31 - TUTORIAL.md | 2881 ---------------- coderoad.yaml | 1349 -------- tutorial.json | 5425 ------------------------------ 11 files changed, 598 insertions(+), 9955 deletions(-) mode change 100644 => 100755 .freeCodeCamp/.bashrc mode change 100644 => 100755 .freeCodeCamp/test/.cwd mode change 100644 => 100755 .freeCodeCamp/test/.next_command mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .gitpod.yml mode change 100644 => 100755 .vscode/settings.json delete mode 100644 CHANGELOG.md delete mode 100644 TUTORIAL.md delete mode 100644 coderoad.yaml delete mode 100644 tutorial.json diff --git a/.freeCodeCamp/.bashrc b/.freeCodeCamp/.bashrc old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/package-lock.json b/.freeCodeCamp/package-lock.json index ca841582a2..1c8152b82a 100644 --- a/.freeCodeCamp/package-lock.json +++ b/.freeCodeCamp/package-lock.json @@ -1,205 +1,263 @@ { "name": "freecodecamp", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "ansi-colors": { + "packages": { + "": { + "name": "freecodecamp", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "mocha": "^7.2.0", + "mocha-tap-reporter": "^0.1.3", + "promisify-child-process": "^4.1.1", + "shell-quote": "^1.7.2" + } + }, + "node_modules/ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "engines": { + "node": ">=6" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "anymatch": { + "node_modules/anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "argparse": { + "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { + "dependencies": { "sprintf-js": "~1.0.2" } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "engines": { + "node": ">=8" + } }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "browser-stdout": { + "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" }, - "camelcase": { + "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } }, - "chalk": { + "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "chokidar": { + "node_modules/chokidar": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", - "requires": { + "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.2.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.1" } }, - "cliui": { + "node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { + "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "color-convert": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "debug": { + "node_modules/debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dependencies": { "ms": "^2.1.1" } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } }, - "define-properties": { + "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { + "dependencies": { "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" } }, - "diff": { + "node_modules/diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "engines": { + "node": ">=0.3.1" + } }, - "emoji-regex": { + "node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, - "es-abstract": { + "node_modules/es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { + "dependencies": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", @@ -211,260 +269,385 @@ "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-to-primitive": { + "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "fill-range": { + "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "find-up": { + "node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { + "dependencies": { "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "flat": { + "node_modules/flat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "requires": { + "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.", + "dependencies": { "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "fsevents": { + "node_modules/fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "glob": { + "node_modules/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" } }, - "glob-parent": { + "node_modules/glob-parent": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { + "dependencies": { "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "growl": { + "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "engines": { + "node": ">=4.x" + } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "he": { + "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-buffer": { + "node_modules/is-buffer": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "engines": { + "node": ">=4" + } }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { + "node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "engines": { + "node": ">=4" + } }, - "is-glob": { + "node_modules/is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "requires": { + "dependencies": { "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-symbol": { + "node_modules/is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { + "dependencies": { "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "js-yaml": { + "node_modules/js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { + "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "locate-path": { + "node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { + "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.19", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, - "log-symbols": { + "node_modules/log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "requires": { + "dependencies": { "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" } }, - "minimatch": { + "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "mkdirp": { + "node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { + "dependencies": { "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "mocha": { + "node_modules/mocha": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", - "requires": { + "dependencies": { "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", "chokidar": "3.3.0", @@ -489,279 +672,378 @@ "yargs": "13.3.2", "yargs-parser": "13.1.2", "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, - "mocha-tap-reporter": { + "node_modules/mocha-tap-reporter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/mocha-tap-reporter/-/mocha-tap-reporter-0.1.3.tgz", "integrity": "sha1-Emy70vggZJXnKxWZFNOXuOoXoig=", - "requires": { + "dependencies": { "mocha": "*" } }, - "ms": { + "node_modules/ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, - "node-environment-flags": { + "node_modules/node-environment-flags": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "requires": { + "dependencies": { "object.getownpropertydescriptors": "^2.0.3", "semver": "^5.7.0" } }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } }, - "object.assign": { + "node_modules/object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { + "dependencies": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", "has-symbols": "^1.0.0", "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" } }, - "object.getownpropertydescriptors": { + "node_modules/object.getownpropertydescriptors": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "requires": { + "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { + "dependencies": { "wrappy": "1" } }, - "p-limit": { + "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { + "dependencies": { "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { + "node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { + "dependencies": { "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "p-try": { + "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } }, - "path-exists": { + "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } }, - "picomatch": { + "node_modules/picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "promisify-child-process": { + "node_modules/promisify-child-process": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/promisify-child-process/-/promisify-child-process-4.1.1.tgz", - "integrity": "sha512-/sRjHZwoXf1rJ+8s4oWjYjGRVKNK1DUnqfRC1Zek18pl0cN6k3yJ1cCbqd0tWNe4h0Gr+SY4vR42N33+T82WkA==" + "integrity": "sha512-/sRjHZwoXf1rJ+8s4oWjYjGRVKNK1DUnqfRC1Zek18pl0cN6k3yJ1cCbqd0tWNe4h0Gr+SY4vR42N33+T82WkA==", + "engines": { + "node": ">=8" + } }, - "readdirp": { + "node_modules/readdirp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "requires": { + "dependencies": { "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } }, - "require-main-filename": { + "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, - "semver": { + "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } }, - "set-blocking": { + "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "shell-quote": { + "node_modules/shell-quote": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "string-width": { + "node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { + "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" } }, - "string.prototype.trimend": { + "node_modules/string.prototype.trimend": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { + "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { + "node_modules/string.prototype.trimstart": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { + "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-ansi": { + "node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { + "dependencies": { "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } }, - "supports-color": { + "node_modules/supports-color": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "which": { + "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "which-module": { + "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "wide-align": { + "node_modules/wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { + "dependencies": { "string-width": "^1.0.2 || 2" } }, - "wrap-ansi": { + "node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { + "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "y18n": { + "node_modules/y18n": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, - "yargs": { + "node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "requires": { + "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", @@ -772,50 +1054,60 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { + } + }, + "node_modules/yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { + "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, - "yargs-unparser": { + "node_modules/yargs-unparser": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "requires": { + "dependencies": { "flat": "^4.1.0", "lodash": "^4.17.15", "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } } } diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd old mode 100644 new mode 100755 index e69de29bb2..b2f7080375 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -0,0 +1,2 @@ +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command old mode 100644 new mode 100755 index e69de29bb2..8d6a682b7a --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -0,0 +1,35 @@ +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +echo hello bash diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.gitpod.yml b/.gitpod.yml old mode 100644 new mode 100755 diff --git a/.vscode/settings.json b/.vscode/settings.json old mode 100644 new mode 100755 diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 514c5dbbdd..0000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,31 +0,0 @@ -## Contributing - -Please read the guidelines in the [contributing docs](https://contribute.freecodecamp.org/#/how-to-work-on-tutorials-that-use-coderoad) before contributing. Contributions to this project need to follow the correct workflow. - -# Change Log - -Whenever a new version is created, add the new branch name and the changes here - -## [v1.0.0] - -- Initial soft release with news article - -## [v1.0.1] - -- Fix regex in steps `950.1` and `970.1`, to match variable in double parenthesis not preceded by `$` -- Fix test description in step `990.1`: elif -> else - -## [v1.0.2] - -- Move startup commands to `setup.sh` -- Run `setup.sh` on continue and reset - -## [v1.0.3] - -- Restructure commits to use new style. Instead of loading a new test file, and commenting out the old one on each commit, this loads all the tests in the `INIT` commit and uses mocha settings to only run tests in a specific file. The commits now just change the test file that should run. -- There was an issue with the last commit not loading after using the reset button in a tutorial. I added a final commit at end that seems to have resolved it. -- Add instructions for [issue](https://github.com/freeCodeCamp/freeCodeCamp/issues/45683) - -## [v2.0.0] - -- Add Gitpod config diff --git a/TUTORIAL.md b/TUTORIAL.md deleted file mode 100644 index 560e014fc4..0000000000 --- a/TUTORIAL.md +++ /dev/null @@ -1,2881 +0,0 @@ -# Learn Bash Scripting by Building Five Programs - -> Welcome to the Bash Scripting lessons! - -## 10. Start the Terminal - -### 10.1 - -**The first thing you need to do is start the terminal.** Do that by clicking the "hamburger" menu at the top left of the screen, going to the "terminal" section, and clicking "new terminal". Once you open a new one, type `echo hello bash` into the terminal and press enter. - -#### HINTS - -- Capitalization matters -- If the tests don't run automatically, "trash" all the terminals and try the instructions again - -## 20. touch questionnaire.sh - -### 20.1 - -You can run commands in the terminal or put them in a file to be run as a script. You will be making five small programs to learn some scripting. The first one will be a "questionnaire". Use the `touch` command to create `questionnaire.sh` in the `project` folder. - -#### HINTS - -- Type `touch questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 30. Add echo questionnaire - -### 30.1 - -To start, open the file in the main editor by clicking the filename in the left side panel. -Then, add the text `echo hello questionnaire` at the top of the file. - -#### HINTS - -- If the left side panel isn't visible, click the icon that looks like two pieces of paper -at the top left to open the panel. Then, click on your file to open it -- Add the suggested text to the `questionnaire.sh` file - -## 35. sh questionnaire.sh - -### 35.1 - -Your script has one command. Run it with `sh questionnaire.sh` to see what happens. `sh` stands for `shell`. - -#### HINTS - -- Type `sh questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 40. bash questionnaire.sh - -### 40.1 - -Using `sh` to run your script uses the `shell` interpreter. Run your script again with `bash questionnaire.sh` to use the `bash` interpreter. `bash` stands for `bourne-again shell`. - -#### HINTS - -- Type `bash questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 50. which bash - -### 50.1 - -The output was the same. There are many interpreters which may not give the output you expect. Find out where the `bash` interpreter is located by entering `which bash` in the terminal. - -#### HINTS - -- Type `which bash` in the terminal and press enter - -## 60. Add shebang - -### 60.1 - -That's the absolute path to the `bash` interpreter. You can tell your program to use it by placing a `shebang` at the very top of the file like this: `#!`. Add a `shebang` at the very top of your file, the one you want looks like this: `#!/bin/bash`. - -#### HINTS - -- Add `#!/bin/bash` at the top of your `questionnaire.sh` file - -## 70. ./questionnaire - -### 70.1 - -Now, instead of using `sh` or `bash` to run your script. You can run it by executing the file and it will default to bash. Execute your script with `./questionnaire.sh`. You will get a permission denied error. - -#### HINTS - -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 80. ls -l - -### 80.1 - -You should have got a permission denied message because you don't have permissions to execute the script. List what's in the `project` folder in long list format with `ls -l` to see the file permissions. - -#### HINTS - -- Type `ls -l` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 90. chmod +x questionnaire.sh - -### 90.1 - -Next to your file is `-rw-r--r--`. All but the first character (`-`) describe permissions different users have with the file. `r` means `read`, `w` means `write`, `x` means `execute`. I don't see an `x` anywhere, so nobody can execute it. Enter `chmod +x questionnaire.sh` in the terminal to give everyone executable permissions. - -#### HINTS - -- Type `chmod +x questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 100. ls -l - -### 100.1 - -List what's in the folder again with `ls -l` to see the new permissions. - -#### HINTS - -- Type `ls -l` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 110. ./questionnaire - -### 110.1 - -The `x` was added by each type of user to denote that anyone can execute the file. Run your file again by executing it with `./questionnaire.sh`. - -#### HINTS - -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 140. Add ls -l - -### 140.1 - -Now it works. In your script, you can add any commands that you would be able to enter in the terminal. Test this by adding the `ls -l` command below your other command. - -#### HINTS - -- Add `ls -l` at the bottom of your `questionnaire.sh` file - -## 150. ./questionnaire - -### 150.1 - -Run the script by executing it again. - -#### HINTS - -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 160. Delete all - shebang - -### 160.1 - -Your script printed the result of the two commands as if you entered them in the terminal. Delete everything but the `shebang` from your file so you can start making the questionnaire. - -#### HINTS - -- Only `#!/bin/bash` should remain in your `questionnaire.sh` file - -## 170. Add QUESTION1 variable - -### 170.1 - -Bash has variables, functions, and other things you might be familiar with. You can create a variable with `VARIABLE_NAME=VALUE`. There cannot be any spaces around the equal (`=`) sign. If a variable has any spaces in it, place double quotes around it. Create a variable named `QUESTION1` and set it's value to `"What's your name?"`. - -#### HINTS - -- Add `QUESTION1="What's your name?"` at the bottom of your `questionnaire.sh` file - -## 180. Add echo $QUESTION1 - -### 180.1 - -To use a variable, place `$` in front of it like this: `$VARIABLE_NAME`. Shell scripts run from top to bottom, so you can only use variable below where it's created. Use `echo` to print your variable. - -#### HINTS - -- Add `echo $QUESTION1` at the bottom of your `questionnaire.sh` file - -## 190. ./questionnaire - -### 190.1 - -Run the file like you did before to see if it worked. - -#### HINTS - -- Run your file by executing it -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 200. Add read NAME - -### 200.1 - -The question was printed. Next, you want to be able to accept input from a user. You can do that with `read` like this: `read VARIABLE_NAME`. This will get user input and store it into a new variable. After you print the question, use `read` to get input and store it in a variable named `NAME`. - -#### HINTS - -- Add `read NAME` at the bottom of your `questionnaire.sh` file - -## 210. Add echo Hello $NAME - -### 210.1 - -At the bottom of your script, use `echo` to print `Hello .` to the terminal. - -#### HINTS - -- You can use your `NAME` variable like this: `$NAME` -- Use your `$NAME` variable in place of `` -- Don't forget the period -- Add `echo Hello $NAME.` at the bottom of your script - -## 220. ./questionnaire - -### 220.1 - -Run the file again. Type your name and press enter after it asks for it. - -#### HINTS - -- Run your file by executing it -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there -- You can press `ctrl+c` to close the program - -## 230. Add QUESTION2 variable - -### 230.1 - -Right below your first variable, create another one named `QUESTION2`. Set the value to, `Where are you from?`. Make sure to put it in double quotes. - -#### HINTS - -- Here's an example: `VARIABLE="value"` -- Add `QUESTION2="Where are you from?"` to your script - -## 240. Add echo $QUESTION2 - -### 240.1 - -After your `read` command, use your new variable to print the next question. - -#### HINTS - -- Use `echo` to print the variable -- Add `echo $QUESTION2` below your `read` command - -## 250. Add read LOCATION - -### 250.1 - -Below where the second question is printed, use `read` to get input from the user into a variable named `LOCATION`. - -#### HINTS - -- Here's an example `read VARIABLE_NAME` -- Add `read LOCATION` to your script below `echo $QUESTION2` - -## 260. Add echo Hello $NAME from $LOCATION - -### 260.1 - -Change the existing response to `Hello from .`. - -#### HINTS - -- Use your two variables in place of `` and ` ` -- The command is `echo`, the flag is `--help` -- Type `echo --help` in the terminal and press enter - -## 310. man echo - -### 310.1 - -That didn't work as I hoped. Another way to find information about a command is with `man`. It stands for `manual` and you can use it like this: `man `. See if there's a manual for `echo`. - -#### HINTS - -- Type `man echo` in the terminal and press enter -- Press enter until you have seen the whole menu - -## 320. Add echo -e \n~~ Questionnaire ~~\n - -### 320.1 - -At the top of the menu, the `-e` option looks promising. And the `\n` below it says `new line`. You should take a look at those. In your script, change the title to `echo -e \n~~ Questionnaire ~~\n` to see if that prints the empty lines. - -#### HINTS - -- Change the suggested line to `echo -e \n~~ Questionnaire ~~\n` - -## 323. ./questionnaire - -### 323.1 - -Run it to see if it worked. You can press `ctrl+c` to close the program after it starts if you don't want to enter values. - -#### HINTS - -- Run your file by executing it -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- You can press `ctrl+c` to close the program - -## 326. Change to echo -e "\n~~ Questionnaire ~~\n" - -### 326.1 - -It didn't print the empty lines. `echo` will only print empty lines if the value is enclosed in quotes. Place double quotes around the title that gets printed to see if it works. - -#### HINTS - -- Change the suggested line to `echo -e "\n~~ Questionnaire ~~\n"` - -## 330. ./questionnaire - -### 330.1 - -Run your script again to see if that fixed it. - -#### HINTS - -- Run your file by executing it -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- You can press `ctrl+c` to close the program - -## 340. Add QUESTION3 variable - -### 340.1 - -Now it's working :smile: Create a `QUESTION3` variable next to the other two, set it's value to `"What's your favorite coding website?"` - -#### HINTS - -- Add `QUESTION3="What's your favorite coding website?"` to your `questionnaire.sh` file -- Add it by the other two variables - -## 345. echo QUESTION3 variable - -### 345.1 - -Use `echo` to print the third question after you `read` the `LOCATION`. - -#### HINTS - -- Add `echo $QUESTION3` below the `read LOCATION` -- Add it to your `questionnaire.sh` file - -## 350. read WEBSITE - -### 350.1 - -After the question you just printed, add code to read input into a variable named `WEBSITE`. - -#### HINTS - -- Add `read WEBSITE` below the `echo $QUESTION3` - -## 360. echo final sentence - -### 360.1 - -Change the `echo` command of the response to print this sentence instead: `Hello from . I learned that your favorite coding website is !`. - -#### HINTS - -- Replace the `echo Hello $NAME from $LOCATION.` with the suggested sentence -- Use your three variables in place of ``, ``, and `` -- The command should look like this: `echo Hello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE!` - -## 363. ./questionnaire - -### 363.1 - -Run the script and enter values when the program is waiting. Let's see the final output. - -#### HINTS - -- Run your file by executing it -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 366. Add line breaks around final sentence - -### 366.1 - -One last thing. Change that final response to print an empty line at the beginning of the sentence. - -#### HINTS - -- Use `echo` with the `-e` flag and a new line (`\n`) character like you did for the title -- Don't forget to put the response in double quotes so it prints the empty line -- Here's an example: `echo -e "\n"` -- Only add a new line at the beginning of the response, not the end -- The final command should look like this: `echo "\nHello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE!"` - -## 370. ./questionnaire - -### 370.1 - -Run it one last time and enter values when it asks to see if you like how it looks. - -#### HINTS - -- Run your file by executing it -- Type `./questionnaire.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 380. touch countdown.sh - -### 380.1 - -It looks good. I think you are done with that script for now. The next program will be countdown timer. Use the `touch` command to create a new file named `countdown.sh` in your `project` folder. - -#### HINTS - -- Type `touch countdown.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 390. chmod +x countdown.sh - -### 390.1 - -Give your file executable permissions so you can run it like the other one. It's the `chmod` command with the `+x` flag. - -#### HINTS - -- Here's an example `chmod ` -- The value for permissions you want to use is `+x` -- You previously used `chmod +x questionnaire.sh` -- Type `chmod +x countdown.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 400. Add shebang - -### 400.1 - -You want to use the `bash` interpreter again. Add a `shebang` at the top of your new file to denote that. - -#### HINTS - -- A `shebang` looks like this: `#!` -- Enter `which bash` in the terminal to see the path to `bash` -- Look at the `shebang` in your first script to get the syntax -- It should look like this: `#!/bin/bash` -- Add `#!/bin/bash` at the top of your `countdown.sh` file - -## 410. Add comment - -### 410.1 - -Comments in `bash` look like this: `# `. Add a comment below the `shebang` that says `Program that counts down to zero from a given argument` so people know what it does. Note that the `shebang` is a special case and is not treated like a comment. - -#### HINTS - -- Add `# Program that counts down to zero from a given argument` to your `countdown.sh` file - -## 420. Add echo $* - -### 420.1 - -Programs can take arguments. You can access them a few different ways with `$`. Add `echo $*` in your script to print all arguments passed to it. - -#### HINTS - -- Add `echo $*` at the bottom of the `countdown.sh` file - -## 425. ./countdown.sh - -### 425.1 - -Execute your script with `./countdown.sh`. - -#### HINTS - -- Type `./countdown.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 430. ./countdown.sh arg1 arg2 arg3 - -### 430.1 - -Nothing was printed. Run your script again, but this time add three arguments to the command; `arg1`, `arg2`, and `arg3`. Place them after the command with a space before each one. - -#### HINTS - -- Type `./countdown.sh arg1 arg2 arg3` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 440. Change to echo $1 - -### 440.1 - -`$*` printed all the arguments passed to your script. To access any one of them, use `$`. `arg2` could have been accessed with `$2`. Change your script to `echo` the first argument instead of all the arguments. - -#### HINTS - -- Try running your script with an argument to make sure it’s giving the expected output -- Use `echo $1` to print the second argument -- Change `echo $*` to `echo $1` in your `countdown.sh` file - -## 450. ./countdown.sh arg1 arg2 arg3 - -### 450.1 - -Run your file with `./countdown.sh arg1 arg2 arg3` again. - -#### HINTS - -- Type `./countdown.sh arg1 arg2 arg3` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 460. help - -### 460.1 - -Now it just prints the first argument. Your program will accept an argument to count down from. You will test it with an `if` statement to make sure it's a positive integer. I wonder what that syntax would look like. Type `help` in the terminal to see if you can find anything. - -#### HINTS - -- Type `help` in the terminal and press enter - -## 470. man if - -### 470.1 - -This is a list of built-in commands. You should look over it, some of them may look familiar. I see `echo` in there. Another one is `if`. See if you can find out more about it by checking its `man` page. - -#### HINTS - -- Here's an example: `man ` -- Type `man if` in the terminal and press enter - -## 480. help if - -### 480.1 - -I guess there isn't a `man` page for it. At the top of the `help` screen, I noticed you can use `help ` to find out more. Yet another way to find out about a command :disappointed_relieved: See if you can find out more about `if` with that method. - -#### HINTS - -- Here's an example `help ` -- Type `help if` in the terminal and press enter - -## 490. Add if arg1 print true - -### 490.1 - -The syntax is at the top, not all of it is required. Here's another example: - -```sh -if [[ CONDITION ]] -then - STATEMENTS -fi -``` - -Remove the `echo $1` in your script and add an `if` condition that checks `if [[ $1 == arg1 ]]`. In its `then` area, use `echo` to print `true` to the screen. There must be spaces on the inside of the brackets (`[[ ... ]]`) and around the operator (`==`). - -#### HINTS - -- Make sure to remove the `echo $1` -- Add the following to your `countdown.sh` file: -```sh -if [[ $1 == arg1 ]] -then - echo true -fi -``` - -## 500. ./countdown arg1 - -### 500.1 - -Notice that the end of the syntax is `fi` (`if` backwards). It should print `true` if you pass `arg1` to your script now. Run the script with `arg1` as the only argument. - -#### HINTS - -- Type `./countdown.sh arg1` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 505. ./countdown !arg1 - -### 505.1 - -The `if` condition worked, it printed `true`. Run it again with anything except `arg1` as the first argument. - -#### HINTS - -- Type `./countdown.sh arg2` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 510. Add else print false - -### 510.1 - -Nothing was printed. One of the optional parts of `if` was an `else` area. You can use it like this: - -```sh -if [[ CONDITION ]] -then - STATEMENTS -else - STATEMENTS -fi -``` - -Add an `else` to your existing `if` condition. Use `echo` to print `false` if the condition fails. - -#### HINTS - -- Your `if` should look like this: -```sh -if [[ $1 == arg1 ]] -then - echo true -else - echo false -fi -``` - -## 520. ./countdown !arg1 - -### 520.1 - -Run the script again and use anything except `arg1` as the only argument. - -#### HINTS - -- Type `./countdown.sh !arg1` in the terminal and press enter -- Make sure you are in the `project` folder first -- Enter `cd ~/project` in the terminal to get to the project folder if you aren't there - -## 530. Change if condition -lt 5 - -### 530.1 - -Now it printed `false`. Your program is expecting an integer to count down from as its argument. You can compare integers inside the brackets (`[[ ... ]]`) of your `if` with `-eq` (equal), `-ne` (not equal), `-lt` (less than), `-le` (less than or equal), `-gt` (greater than), `-ge` (greater than or equal). Change your `if` condition to check if your first argument is less than `5`. - -#### HINTS - -- Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-lt`) -- Your `if` condition should look like this: `[[ $1 -lt 5 ]]` -- The whole `if` should look like this: -```sh -if [[ $1 -lt 5 ]] -then - echo true -else - echo false -fi -``` - -## 540. ./countdown 4 - -### 540.1 - -Run the script again and use `4` as a first argument to make sure it's working. - -#### HINTS - -- Type `./countdown.sh 4` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 542. ./countdown 5 - -### 542.1 - -It printed `true` since your argument was less than `5`. Run it again with `5` as the argument. - -#### HINTS - -- Type `./countdown.sh 5` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 544. help - -### 544.1 - -As expected, that printed `false`. Take a look at that `help` menu again. I want to see if we can find out more about how these expressions work. - -#### HINTS - -- Type `help` in the terminal and press enter - -## 546. help [[ expression ]] - -### 546.1 - -Near the top left, it says `[[ expression ]]`. Those look like the double brackets you are using. See if you can get more info about that with the `help` command like you did with `help if`. - -#### HINTS - -- Here's an example: `help ` -- Type `help [[ expression ]]` or `help [[` in the terminal and press enter - -## 548. help test - -### 548.1 - -It might not be a bad idea to read that. Looks like you can use some, probably familiar, things like `!`, `&&`, and `||` to compare multiple expressions. There's also `==` and `!=` operators for an individual expression. It says something about the `test` built-in command. See if you can bring up the `help` menu for that. - -#### HINTS - -- View the `help` menu of the suggested command like you did for the `help if` -- Here's an example: `help ` -- Type `help test` in the terminal and press enter - -## 550. Change if to [[ $1 -le 5 ]] - -### 550.1 - -That's what I was looking for. At the top are some file operators. There's some string and other operators as well. You should take a look at them. Near the bottom, are the arithmetic operators you used with your `if` condition. Change the condition in your script to check if the first argument is less than or equal to `5`. - -#### HINTS - -- The `if` condition should look like this: `[[ $1 -le 5 ]]` -- Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-le`) -- It's the `if` in your `countdown.sh` file - -## 552. ./countdown 5 - -### 552.1 - -Run the script and use `5` as a first argument again. - -#### HINTS - -- Type `./countdown.sh 5` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 554. [[ 4 -le 5 ]] - -### 554.1 - -Now it prints `true`. Remember I said any command can run in the terminal or a script. Try running an expression right in the terminal by entering `[[ 4 -le 5 ]]` in it. - -#### HINTS - -- Enter the suggested expression in the terminal -- Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-le`) -- Type `[[ 4 -le 5 ]]` in the terminal and press enter - -## 556. echo $? - -### 556.1 - -Nothing happened? Each command has an exit status that can be accessed with `$?`. View the exit status of the **last command** with `echo $?`. - -#### HINTS - -- Type `echo $?` in the terminal and press enter -- Your second to last command should be `[[ 4 -le 5 ]]`. So enter that before `echo $?` - -## 558. [[ 4 -ge 5 ]] - -### 558.1 - -The exit status of `0` means it was true, `4` is indeed less or equal to `5`. Try it again with `[[ 4 -ge 5 ]]`. - -#### HINTS - -- Enter the suggested expression in the terminal -- Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-ge`) -- Type `[[ 4 -ge 5 ]]` in the terminal and press enter - -## 560. echo $? - -### 560.1 - -Use `echo` to view the exit status of the command you just entered. - -#### HINTS - -- Type `echo $?` in the terminal and press enter -- Your second to last command should be `[[ 4 -ge 5 ]]`. So enter that right before `echo $?` - -## 562. [[ 4 -ge 5 ]]; echo $? - -### 562.1 - -It printed `1` this time for false. You can separate commands on a single line with `;`. Enter your last two commands on one line like this: `[[ 4 -ge 5 ]]; echo $?`. It will run the expression, then print the exit status of it since it was the last command. - -#### HINTS - -- Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-ge`) -- Type `[[ 4 -ge 5 ]]; echo $?` in the terminal and press enter - -## 564. [[ 10 -ne 5 ]]; echo $? - -### 564.1 - -It's still false. Using the same syntax of `[[ ... ]]; echo $?`, check if `10` is not equal to `5` and print the exit status of the expression on one line. - -#### HINTS - -- Check the `help test` menu to find the `not equal` operator -- It's the `-ne` operator -- You previously used `[[ 4 -ge 5 ]]; echo $?` -- Make sure there's spaces inside the brackets and around the operator -- Type `[[ 10 -ne 5 ]]; echo $?` in the terminal and press enter - -## 566. bad_command; echo $? - -### 566.1 - -You can think of an exit status of `0` as true. But it means that the command had zero errors. All commands have an exit status. Using the same syntax, enter `bad_command;` and check its exit status on a single line. - -#### HINTS - -- The syntax looks like this: `; echo $?` -- You previously used `[[ 10 -ne 5 ]]; echo $?` -- Type `bad_command; echo $?` in the terminal and press enter - -## 568. ls; echo $? - -### 568.1 - -`command not found`, with an exit status of `127`. Anything but `0` means there was an error with the command. `bad_command` didn't exist. Try it again with `ls`. - -#### HINTS - -- Use the same syntax you have been using -- Here's an example `; echo $?` -- You previously used `bad_command; echo $?` -- Type `ls; echo $?` in the terminal and press enter - -## 570. ls -y; echo $? - -### 570.1 - -The command executed as expected and there were zero errors. So it gave you an exit status of `0`. Try it again with `ls -y`. - -#### HINTS - -- Use the same syntax you have been using -- Here's an example: `; echo $?` -- You previously used `ls; echo $?` -- Type `ls -y; echo $?` in the terminal and press enter - -## 572. help test - -### 572.1 - -The `-y` flag doesn't work with `ls` so it gave you an exit status other than `0`, meaning that the command was unsuccessful. View the `help` menu of the `test` command again, I want to see what else is in that list. - -#### HINTS - -- Here's an example: `help ` -- Type `help test` in the terminal and press enter - -## 574. [[ -a countdown.sh ]]; echo $? - -### 574.1 - -You tried a few of the arithmetic operators, those work for integers. Try one of the file operators. The first one on the list checks if a file exists. Type `[[ -a countdown.sh ]]; echo $?` in the terminal to see if your file exists. - -#### HINTS - -- Enter the suggested commands in the terminal -- Type `[[ -a countdown.sh ]]; echo $?` in the terminal and press enter -- Don't forget the spaces inside the brackets -- Make sure you are in the `project` folder first - -## 575. [[ -a bad_file.txt ]]; echo $? - -### 575.1 - -The file must exist. It's checking the folder the command is entered from. Try it again with `bad_file.txt`. - -#### HINTS - -- Use the same syntax you have been using -- Here's an example: `; echo $?` -- You previously used `[[ -a countdown.sh ]]; echo $?` -- Type `[[ -a bad_file.txt ]]; echo $?` in the terminal and press enter -- Don't forget the spaces inside the brackets - -## 576. [[ -x countdown.sh ]]; echo $? - -### 576.1 - -`bad_file.txt` doesn't exist. I think you're getting the hang of this. Using the same syntax, check if you have permissions to execute your `countdown.sh` file. You may want to look at that menu again. - -#### HINTS - -- View the `help test` menu to find the file operator for checking if a file is executable by you -- It's the `-x` operator -- The syntax you want is `[[ ... ]]; echo $?` to see if the condition is true -- Don't forget the spaces inside the brackets -- Type `[[ -x countdown.sh ]]; echo $?` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 582. help [[ expression ]] - -### 582.1 - -You played around with a number of the expressions. View the `help [[ expression ]]` menu again that you looked at before to see a few more options. You can view the menu with just `help [[`. - -#### HINTS - -- Enter the suggested command in the terminal -- Type `help [[ expression ]]` or `help [[` in the terminal and press enter - -## 584. [[ -x countdown.sh && 5 -le 4 ]]; echo $? - -### 584.1 - -As I mentioned before, you can test multiple expressions with `&&` and `||`. Enter `[[ -x countdown.sh && 5 -le 4 ]]; echo $?` in the terminal to test the file is executable by you **and** five is less than or equal to four. - -#### HINTS - -- Enter the suggested command in the terminal -- Type `[[ -x countdown.sh && 5 -le 4 ]]; echo $?` in the terminal and press enter -- Make sure there's spaces around the brackets and all the operators - -## 586. [[ -x countdown.sh || 5 -le 4 ]]; echo $? - -### 586.1 - -Both conditions weren't true, so the exit status was `1` for `false`. Try testing the same two conditions with the `or` operator. - -#### HINTS - -- Modify this `[[ -x countdown.sh && 5 -le 4 ]]; echo $?` with the suggestion and enter it in the terminal -- Use the `or` operator from the `help [[ expression ]]` menu -- The `or` operator is `||` -- Type `[[ -x countdown.sh || 5 -le 4 ]]; echo $?` in the terminal and press enter -- Make sure there's spaces around the brackets and all the operators - -## 588. Change if to [[ $1 -gt 0 ]] - -### 588.1 - -One of the conditions was true so it printed `0`. I think that's enough of a detour. Back in your script, change the `if` condition to check if the first argument is **greater than zero** so you can be sure it's something you can count down from. - -#### HINTS - -- Use the `-gt` operator in your `if` condition -- The `if` condition should look like this: `[[ $1 -gt 0 ]]` -- It's in the `countdown.sh` file - -## 590. Change if !# message - -### 590.1 - -The condition you added checks if a positive integer was passed as an argument to the script and executes the `then` area. Change the existing `echo` command to print `Include a positive integer as the first argument.` if a positive integer is not used. - -#### HINTS - -- The `else` area should look like this: `echo Include a positive integer as the first argument.` -- The whole `if` condition should look like this: -```sh -if [[ $1 -gt 0 ]] -then - echo true -else - echo Include a positive integer as the first argument. -fi -``` - -## 600. ./countdown 1 - -### 600.1 - -Run your script and use `1` as a first argument to make sure the condition is working. - -#### HINTS - -- Type `./countdown.sh 1` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 610. ./countdown 0 - -### 610.1 - -Run it again and use anything but a positive integer as the only argument. - -#### HINTS - -- Type `./countdown.sh 0` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 615. help - -### 615.1 - -Looks like your `if` condition is working. Next, you want to loop over the argument and count down to zero from it. Check the `help` menu to see if there's any commands for this. - -#### HINTS - -- Enter the suggested command in the terminal -- Type `help` in the terminal and press enter - -## 620. Add for loop for countdown - -### 620.1 - -There's two `for` loops in there, you want the second one. Here's an example: - -```sh -for (( i = 10; i > 0; i-- )) -do - echo $i -done -``` - -The above creates a variable (`i = 10`), then prints it, subtracts one, and repeats until `i` is not greater than `0`. So it prints `10` through `1`. In the `then` area of your condition, replace the `echo` with a `for` loop that prints from the argument (`$1`) to `1`. - -#### HINTS - -- Set the variable to the value of your argument (`$1`) initially -- Use the same syntax as the example except change the `10` to `$1` -- Don't include any extra commands in the `then` area -- Your `then` area should look like this: -```sh -for (( i = $1; i > 0; i-- )) -do - echo $i -done -``` -- The whole `if` condition should look like this: -```sh -if [[ $1 -gt 0 ]] -then - for (( i = $1; i > 0; i-- )) - do - echo $i - done -else - echo Include a positive integer as the first argument. -fi -``` - -## 630. ./countdown 10 - -### 630.1 - -Run your script and use `10` as the first argument. - -#### HINTS - -- Type `./countdown.sh 10` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 640. help - -### 640.1 - -It works :smile: But I want it to pause for one second between each number. Check the `help` menu again to see if there's any commands that might help. - -#### HINTS - -- Enter the suggested command in the terminal -- Type `help` in the terminal and press enter - -## 650. ls / - -### 650.1 - -I'm not seeing the command I was hoping to. These are the built-in commands, where are the rest? Type `ls /` to look around. - -#### HINTS - -- Enter the suggested command in the terminal -- Type `ls /` in the terminal and press enter - -## 660. ls /bin - -### 660.1 - -The `/` listed what's in the root of the file system. I see a `bin` folder, `bin` stands for `binary`. View what's in it with `ls /bin`. - -#### HINTS - -- Enter the suggested command in the terminal -- Type `ls /bin` in the terminal and press enter - -## 670. man sleep - -### 670.1 - -These are some non built-in commands. There's quite a few that should look familiar. One is `bash`, that's the one you used for the `shebang` in your scripts. I see one called `sleep`. View the manual of it. - -#### HINTS - -- View a manual with the `man` command -- Here's an example: `man ` -- Enter `man sleep` in the terminal -- Press enter until you have seen the whole menu - -## 675. sleep 3 - -### 675.1 - -At the top, it says you can pause execution for a number of seconds. Try it out by entering `sleep 3` in the terminal. - -#### HINTS - -- Enter the suggested command in the terminal -- Enter `sleep 3` in the terminal - -## 680. Add sleep to for loop - -### 680.1 - -That should work. In your `for` loop, use `sleep` to make the script pause for `1` second after each number is printed. - -#### HINTS - -- Add the suggestion to the `for` loop in your `countdown.sh` file -- Add `sleep 1` after you print `i` in your `for` loop - -## 690. ./countdown 3 - -### 690.1 - -Run your script and use `3` as the first argument. - -#### HINTS - -- Type `./countdown.sh 3` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 692. Change to >= - -### 692.1 - -Awesome. Except it should print `0` instead of stopping at `1`. Change the condition in your for loop so that it checks for `i >= 0`. - -#### HINTS - -- Your `for` loop should look like this: -```sh -for (( i = $1; i >= 0; i-- )) -do - echo $i - sleep 1 -done -``` -- The whole `if` condition should look like this: -```sh -if [[ $1 -gt 0 ]] -then - for (( i = $1; i >= 0; i-- )) - do - echo $i - sleep 1 - done -else - echo Include a positive integer as the first argument. -fi -``` - -## 694. ./countdown 3 - -### 694.1 - -Run your script with `3` as the argument again. - -#### HINTS - -- Type `./countdown.sh 3` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 696. Add echo -e "title" - -### 696.1 - -Excellent. I want it to display a title like the other script. Make it so that it prints `~~ Countdown Timer ~~` before anything else. Include a new line before and after it like you did for the other title. - -#### HINTS - -- Use the `echo` command with the `-e` flag and the new line (`\n`) character -- Make sure to place the message in double quotes -- Here's an example: `echo -e "\n\n"` -- Add `echo -e "\n~~ Countdown Timer ~~\n"` to the `countdown.sh` file after the comment - -## 698. ./countdown 1 - -### 698.1 - -Run your script and use `1` as the first argument again to see the title. - -#### HINTS - -- Type `./countdown.sh 1` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 700. Add Multiline comment - -### 700.1 - -This is fun. You can create a multiline comment like this: - -```sh -: ' - comment here - more comment here -' -``` - -Comment out your `for` loop with a multiline comment. I want to try and do this with a `while` loop. - -#### HINTS - -- Comment out the `for` loop in your `countdown.sh` file with a multiline comment -- Make sure there's a space between the `:` and `'` -- Your `for` loop should look like this: -```sh -: ' -for (( i = $1; i >= 0; i-- )) -do - echo $i - sleep 1 -done -' -``` - -## 710. help while - -### 710.1 - -View the `help` menu for the `while` command to see if you can find anything. - -#### HINTS - -- Here's an example: `help ` -- Enter `help while` in the terminal - -## 730. Add I variable - -### 730.1 - -It shows the syntax. First, below your comment, create a variable named `I` that is set to the value of your first argument. It will start there, then on each iteration of the `while` loop you can subtract `1` from it until it reaches `0`. - -#### HINTS - -- Add `I=$1` in the `then` area of your `if` statements below the multi-line comment -- The `then` area should look like this: -```sh -: ' -for (( i = $1; i >= 0; i-- )) -do - echo $i - sleep 1 -done -' -I=$1 -``` - -## 740. Add while loop - -### 740.1 - -The menu showed that you can make a `while` loop like this: - -```sh -while [[ CONDITION ]] -do - STATEMENTS -done -``` - -Add a `while` loop below the `I` variable you made. The condition should be `$I -ge 0` and you should `echo` the `I` variable in the `do` statements. - -#### HINTS - -- Your `while` loop should look like this: -```sh -while [[ $I -ge 0 ]] -do - echo $I -done -``` - -## 750. Add (( I-- )) - -### 750.1 - -`I` never changes here, so you would have an infinite loop. You can subtract one from `I` with double parenthesis (`((...))`) and the `--` operator. In your while loop, add `(( I-- ))` after you `echo $I` to subtract one from `I` on each pass. - -#### HINTS - -- Your `while` loop should look like this: -```sh -while [[ $I -ge 0 ]] -do - echo $I - (( I-- )) -done -``` - -## 760. Add sleep 1 - -### 760.1 - -The last thing to do is to add the `sleep` again. In your `while` loop, add the code to make it `sleep` for `1` second. Add the code after the `(( I-- ))`. - -#### HINTS - -- Use the same `sleep 1` you used in the `for` loop -- Your `while` loop should look like this: -```sh -while [[ $I -ge 0 ]] -do - echo $I - (( I-- )) - sleep 1 -done -``` - -## 770. ./countdown.sh 5 - -### 770.1 - -Run the script and use 5 as the first argument. - -#### HINTS - -- Type `./countdown.sh 5` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 780. touch bingo.sh - -### 780.1 - -I think the countdown timer is finished. Feel free to try it with some other arguments. The next one is a bingo number generator. Use `touch` to create `bingo.sh` in the same folder as the others. - -#### HINTS - -- Type `touch bingo.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 790. chmod +x bingo.sh - -### 790.1 - -Give your file executable permissions like you did for the other two. - -#### HINTS - -- Use the `chmod` command with the `+x` flag -- Here's an example `chmod ` -- You previously used `chmod +x countdown.sh` -- Type `chmod +x bingo.sh` in the terminal and press enter - -## 800. Add shebang - -### 800.1 - -Add a `shebang` at the top of your new script. It should use `bash` again like other two. - -#### HINTS - -- A `shebang` looks like this: `#!` -- Enter `which bash` in the terminal to see the path to `bash` -- Look at the `shebang` in one of your other scripts to get the syntax -- It should look like this: `#!/bin/bash` -- Add `#!/bin/bash` at the top of your `bingo.sh` file - -## 810. Add comment - -### 810.1 - -Add a comment below the `shebang` that says, `Bingo Number Generator`. - -#### HINTS - -- Comments look like this: `# ` -- Add `#Bingo Number Generator` below the `shebang` -- Capitalization matters - -## 815. Add echo -e "title" - -### 815.1 - -Before I forget, use a single `echo` command to print a title for this program. It should say `~~ Bingo Number Generator ~~` with an empty line before and after it. - -#### HINTS - -- Use the `echo` command with the `-e` flag and the new line (`\n`) character -- Don't forget the double quotes when using a new line character -- Take a look at one of the title's from a previous file for a hint -- Here's an example: `echo -e "\n\n"` -- You previously used `echo -e "\n~~ Countdown Timer ~~\n"` -- Add `echo -e "\n~~ Bingo Number Generator ~~\n"` below the comment of your `bingo.sh` file - -## 817. Add NUMBER=5 variable - -### 817.1 - -In your script, create a `NUMBER` variable that equals `5`. - -#### HINTS - -- Here's an example: `VARIABLE_NAME=VALUE` -- Add `NUMBER=5` to the bottom of your `bingo.sh` file - -## 818. echo $NUMBER - -### 818.1 - -Below your new variable, use `echo` to print it to the screen. - -#### HINTS - -- Here's an example: `echo $` -- Use `NUMBER` in place of `` -- Add `echo $NUMBER` at the bottom of your `bingo.sh` file - -## 819. ./bingo.sh - -### 819.1 - -Run the script by executing it. - -#### HINTS - -- Type `./bingo.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 820. printenv - -### 820.1 - -The numbers in bingo go up to 75, each number has a letter from the word `bingo` associated with it. You will need to randomly generate a number between 1 and 75. Bash may have something that can help you here. A shell comes with environment variables. View them by entering `printenv` in the terminal. - -#### HINTS - -- Type `printenv` in the terminal and press enter - -## 822. echo $LANG - -### 822.1 - -These are all environment variables, they are predefined and loaded with each shell. Most of them aren’t very relevant, but it’s nice to know they’re there. One of them is `LANG`. Use `echo` to print it in the terminal. - -#### HINTS - -- Here's an example: `echo $` -- Type `echo $LANG` in the terminal and press enter - -## 824. declare -p - -### 824.1 - -View all variables in the shell with `declare -p`. `-p` stands for `print` - -#### HINTS - -- Type `declare -p` in the terminal and press enter - -## 826. echo $RANDOM - -### 826.1 - -This list includes all the environment variables, and any others that may have been created in the current shell. There's one named `RANDOM`. Use `echo` to print it in the terminal. - -#### HINTS - -- Here's an example: `echo $` -- Type `echo $RANDOM` in the terminal and press enter - -## 828. Change to NUMBER=$RANDOM - -### 828.1 - -Back in your script, use the `RANDOM` variable to set `NUMBER` to a random number instead of `5`. - -#### HINTS - -- Change `NUMBER=5` to `NUMBER=$RANDOM` - -## 830. ./bingo.sh - -### 830.1 - -Run the script a few times in a row to make sure it's working. - -#### HINTS - -- Type `./bingo.sh` in the terminal and press enter two times in a row -- Make sure you are in the `project` folder first - -## 835. Change to NUMBER=$RANDOM%75 - -### 835.1 - -The `RANDOM` variable will generate a random number between 0 and 32767. You can use the `modulus` operator to make it in the range you want. In your script, change the `NUMBER` variable to `$RANDOM%75`. - -#### HINTS - -- Change `NUMBER=$RANDOM` to `NUMBER=$RANDOM%75` - -## 840. ./bingo.sh - -### 840.1 - -Run the script again. - -#### HINTS - -- Type `./bingo.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 881. I=0 - -### 881.1 - -Bash sees everything as a string so it just printed the `%75` part literally. In the terminal, create an `I` variable equal to `0` (zero), so you can play with it and figure out how to do some calculations. - -#### HINTS - -- Type `I=0` in the terminal and press enter - -## 884. echo $I - -### 884.1 - -In the terminal, use `echo` to print your new variable. - -#### HINTS - -- Here's an example: `echo $` -- Type `echo $I` in the terminal and press enter - -## 887. (( I++ )) - -### 887.1 - -I noticed that you used double parenthesis in the `while` loop of your countdown timer to subtract one from `I`. Type `(( I++ ))` in the terminal to see if anything happens. - -#### HINTS - -- Type `(( I++ ))` in the terminal and press enter - -## 890. echo $I - -### 890.1 - -There was no output. Use `echo` to print `I` in the terminal again. - -#### HINTS - -- Type `echo $I` in the terminal and press enter - -## 891. help let - -### 891.1 - -The double parenthesis performed the calculation, changing the value of `I` from `0` to `1`. Enter `help let` in the terminal to see the operators you can use with the double parenthesis. - -#### HINTS - -- Type `help let` in the terminal and press enter - -## 893. (( I += 10 )) - -### 893.1 - -You used several of these now, including in the `for` loop from the countdown timer. Enter `(( I += 10 ))` in the terminal to increment `I` by `10`. Note that you don't need to prepend variables with `$` inside these parenthesis. - -#### HINTS - -- Type `(( I += 10 ))` in the terminal and press enter - -## 896. echo $I - -### 896.1 - -Use `echo` to print your `I` variable again. - -#### HINTS - -- Type `echo $I` in the terminal and press enter. - -## 897. $(( I + 4 )) - -### 897.1 - -It should have printed `11` for the value of `I`. Using the double parenthesis like you have been is good for changing variable values or making comparisons. It makes the calculation in place and provides no output. If you want to make a calculation and do something with the result, add a `$` in front like this: `$(( ... ))`. Type `$(( I + 4 ))` in the terminal to see what happens. - -#### HINTS - -- If it didn't print `11` for `I`, enter `I=11` to set it to `11` -- Type `$(( I + 4 ))` in the terminal and press enter - -## 899. echo $(( I + 4 )) - -### 899.1 - -It should say, `bash: 15: command not found`. It replaced the command with the result of the calculation. Effectively, trying to run `15` as a command. Enter the same command, but put `echo` in front of it. The command was `$(( I + 4 ))` - -#### HINTS - -- Type `echo $(( I + 4 ))` in the terminal and press enter - -## 902. echo $I - -### 902.1 - -Again, it replaced the calculation with the result. So it was basically the same as if you entered `echo 15`. Use `echo` to print `I` to the screen again. - -#### HINTS - -- Type `echo $I` in the terminal and press enter - -## 905. J=$(( I - 6 )) - -### 905.1 - -It should still have printed `11` for `I`. See the hints if it didn't. These double parenthesis with a `$` are how you can assign a variable to some calculation. In the terminal, create a `J` variable, and use the `$(( ... ))` syntax to set its value to `I - 6`. - -#### HINTS - -- If it didn't print `11` for `I`, enter `I=11` to set it to `11` -- Type `J=$(( I - 6 ))` in the terminal and press enter - -## 908. echo $J - -### 908.1 - -Use `echo` to print `J`. - -#### HINTS - -- Here's an example: `echo $` -- Type `echo $J` in the terminal and press enter - -## 911. echo $(( J * 5 + 25 )) - -### 911.1 - -`J` should equal `5`. For some more practice, use `echo` to print the value `J * 5 + 25`. - -#### HINTS - -- Type `echo $(( J * 5 + 25 ))` in the terminal and press enter - -## 912. echo $J - -### 912.1 - -It should have printed `50`. Print `J` with `echo` again. - -#### HINTS - -- Here's an example: `echo $` -- Type `echo $J` in the terminal and press enter - -## 913. declare -p - -### 913.1 - -So, as a reminder, `(( ... ))` will perform a calculation or operation and output nothing. `$(( ... ))` will replace the calculation with the result of it. You made a few variables in this shell, view them with `declare -p`. - -#### HINTS - -- Type `declare -p` in the terminal and press enter - -## 914. declare -p J - -### 914.1 - -`declare` can be used to create variables, but you are just going to use it to view them for now. If you scroll up a little, you should find your `I` and `J` variables in there. View `J` with `declare -p J`. - -#### HINTS - -- Type `declare -p J` in the terminal and press enter - -## 916. declare -p RANDOM - -### 916.1 - -I saw `RANDOM` in that list, too. View it with `declare -p ` like you did for `J`. - -#### HINTS - -- Type `declare -p RANDOM` in the terminal and press enter - -## 918. echo $(( RANDOM % 75 )) - -### 918.1 - -Okay, I think I finally know how to get the random number for the Bingo Number Generator. Use `echo` and `RANDOM % 75` to print a random number in the terminal. - -#### HINTS - -- Use the `$(( ... ))` syntax to calculate the random number -- Here's an example: `echo $(( ))` -- Type `echo $(( RANDOM % 75 ))` in the terminal and press enter - -## 920. echo $(( RANDOM % 75 + 1 )) - -### 920.1 - -One tiny problem, that calculation will give a number between 0 and 74. Enter the same command in the terminal, but add `1` to the calculation to get a random number between 1 and 75. - -#### HINTS - -- Type `echo $(( RANDOM % 75 + 1 ))` in the terminal and press enter - -## 928. Set NUMBER=$(( RANDOM % 75 + 1)) - -### 928.1 - -Back in your `bingo.sh` script, change the `NUMBER` variable so that it starts as a random number between 1 and 75 using the syntax you have been practicing. - -#### HINTS - -- Change the `NUMBER` variable to the result of the calculation `RANDOM % 75 + 1` -- Use the `$(( ... ))` syntax to make the calculation -- It should look like this: `NUMBER=$(( RANDOM % 75 + 1 ))` - -## 930. run ./bingo.sh - -### 930.1 - -Run your script a few times in a row to make sure it's working. - -#### HINTS - -- Type `./bingo.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Run it at least two times in a row - -## 940. Add TEXT variable - -### 940.1 - -Next, create a `TEXT` variable and set the value to `"The next number is, "`. When the script is finished, the output will be something like `The next number is B:15`. - -#### HINTS - -- Make sure there's a space after the comma -- Add `TEXT="The next number is, "` to the `bingo.sh` file - -## 945. help let - -### 945.1 - -The letter that goes with the random number depends on what the number is. If it's 15 or less, it will be a `B`. I saw some comparisons in the `help let` menu, take a look at it again. - -#### HINTS - -- Type `help let` in the terminal and press enter - -## 950. Add first if <= 15 - -### 950.1 - -You used the double square brackets with your `if` statement in the last program, but you can use the double parenthesis with these operators as well. In your script, create an `if` statement that uses double parenthesis for the condition. Check if the number variable is less than or equal to 15. If it is, use your two variables to print `The next number is, B:`. - -#### HINTS - -- Make sure you only have two `echo` statements in your script, the title being one of them -- Here's an example of how your `if` statement should look: -```sh -if (( CONDITION )) -then - STATEMENTS -fi -``` -- The condition you want is `(( NUMBER <= 15 ))` -- In the statements area, use `echo` and your two variables to print `The next number is, B:` -- The statements area should look like this: `echo $TEXT B:$NUMBER` -- The whole `if` statement should look like this: -```sh -if (( NUMBER <= 15 )) -then - echo $TEXT B:$NUMBER -fi -``` - -## 960. Add elif -le 30 - -### 960.1 - -`if` statements can have an "else if" area like this: -```sh -if (( CONDITION )) -then - STATEMENTS -elif [[ CONDITION ]] -then - STATEMENTS -fi -``` - -Using the double square brackets this time, add an `elif` condition that checks if the number variable is less than or equal to `30`. If it is, use your two variables again to print `The next number is, I:` - -#### HINTS - -- View the `help test` menu to see the operators you can use with the double square brackets -- The condition you want is `[[ $NUMBER -le 30 ]]`. Don't forget the `$` -- In the statements area, use `echo` and your two variables to print `The next number is, I:` -- The statements area should look like this: `echo $TEXT I:$NUMBER` -- The `elif` area should look like this: -```sh -elif [[ $NUMBER -le 30 ]] -then - echo $TEXT I:$NUMBER -fi -``` -- The whole `if` statement should look like this: -```sh -if (( NUMBER <= 15 )) -then - echo $TEXT B:$NUMBER -elif [[ $NUMBER -le 30 ]] -then - echo $TEXT I:$NUMBER -fi -``` - -## 970. Add elif < 46 - -### 970.1 - -You can add as many `elif` sections to an `if` statement as you want. Add another `elif`, below the last, one that uses the double parenthesis to check if the number variable is less than 46. If it is, use your two variables to print `The next number is, N:` - -#### HINTS - -- View the `help let` menu to see the operators you can use with the double parenthesis -- The operator you want it `<` -- You can add another `elif` like this: -```sh -if CONDITION -then - STATEMENTS -elif CONDITION -then - STATEMENTS -elif CONDITION -then - STATEMENTS -fi -``` -- The condition you want is `(( NUMBER < 46 ))` -- In the statements area, use `echo` and your two variables to print `The next number is, N:` -- The statements area should look like this: `echo $TEXT N:$NUMBER` -- This `elif` area should look like this: -```sh -elif (( NUMBER < 46 )) -then - echo $TEXT N:$NUMBER -fi -``` -- The whole `if` statement should look like this: -```sh -if (( NUMBER <= 15 )) -then - echo $TEXT B:$NUMBER -elif [[ $NUMBER -le 30 ]] -then - echo $TEXT I:$NUMBER -elif (( NUMBER < 46 )) -then - echo $TEXT N:$NUMBER -fi -``` - -## 980. Add elif -lt 61 - -### 980.1 - -Run your script if you want to see the output. It should print one of the sentences if the random number is less than 46. It may take a couple tries. Add another `elif`, below the last one, that uses double square brackets to check if the number variable is less than 61. If it is, use your two variables to print `The next number is, G:` - -#### HINTS - -- View the `help test` menu to see the operators you can use with the double square brackets -- The operator you want it `-lt` -- The condition you want is `[[ $NUMBER -lt 61 ]]`. Don't forget the `$` -- The statements area should look like this: `echo $TEXT G:$NUMBER` -- This `elif` area should look like this: -```sh -elif [[ $NUMBER -lt 61 ]] -then - echo $TEXT G:$NUMBER -fi -``` -- The whole `if` statement should look like this: -```sh -if (( NUMBER <= 15 )) -then - echo $TEXT B:$NUMBER -elif [[ $NUMBER -le 30 ]] -then - echo $TEXT I:$NUMBER -elif (( NUMBER < 46 )) -then - echo $TEXT N:$NUMBER -elif [[ $NUMBER -lt 61 ]] -then - echo $TEXT G:$NUMBER -fi -``` - -## 990. Add else - -### 990.1 - -One more case to handle. Add an `else` at the bottom of the `if` that uses your two variables to print `The next number is, O:`. - -#### HINTS - -- View the `if/else` in your `countdown.sh` file to see how you did it before -- You don't need a condition or the `then` on this one -- Here's an example: -```sh -if CONDITION -then - STATEMENTS -elif CONDITION -then - STATEMENTS -... -else - STATEMENTS -fi -``` -- The `else` area should look like this: -```sh -else - echo $TEXT O:$NUMBER -``` -- The whole `if` should look like this: -```sh -if (( NUMBER <= 15 )) -then - echo $TEXT B:$NUMBER -elif [[ $NUMBER -le 30 ]] -then - echo $TEXT I:$NUMBER -elif (( NUMBER < 46 )) -then - echo $TEXT N:$NUMBER -elif [[ $NUMBER -lt 61 ]] -then - echo $TEXT G:$NUMBER -else - echo $TEXT O:$NUMBER -fi -``` - -## 1000. ./bingo.sh - -### 1000.1 - -Run your script a few times and make sure it's working. - -#### HINTS - -- Type `./bingo.sh` in the terminal and press enter -- Make sure you are in the `project` folder first -- Run it at least two times in a row - -## 1010. touch fortune.sh - -### 1010.1 - -I think the generator is done :smile: The next project is a fortune teller. Use the `touch` command to create `fortune.sh` in the same folder as the other scripts. - -#### HINTS - -- Type `touch fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1020. chmod +x fortune.sh - -### 1020.1 - -Give your file executable permissions. - -#### HINTS - -- Use the `chmod` command with the `+x` flag -- Here's an example `chmod ` -- You previously used `chmod +x bingo.sh` -- Type `chmod +x fortune.sh` in the terminal and press enter - -## 1030. Add shebang - -### 1030.1 - -Add a `shebang` at the top of your new file that uses `bash` again. - -#### HINTS - -- A `shebang` looks like this: `#!` -- Enter `which bash` in the terminal to see the path to `bash` -- Look at the `shebang` in one of your other scripts to get the syntax -- It should look like this: `#!/bin/bash` -- Add `#!/bin/bash` at the top of your `fortune.sh` file - -## 1040. Add comment - -### 1040.1 - -Add comment `Program to tell a persons fortune` - -#### HINTS - -- Comments look like this: `# ` -- Add `#Program to tell a persons fortune` below the `shebang` -- Capitalization matters - -## 1050. Add echo "title" - -### 1050.1 - -Add a title for this one like the others. This one should say `~~ Fortune Teller ~~`. Don't forget the empty line before and after it. - -#### HINTS - -- Print the whole title and the empty lines with a single `echo` command -- Use the `echo` command with the `-e` flag and the new line (`\n`) character -- Don't forget to put it in double quotes -- Take a look at one of the title's from a previous file for a hint -- Here's an example: `echo -e "\n\n"` -- You previously used `echo -e "\n~~ Bingo Number Generator ~~\n"` -- Add `echo -e "\n~~ Fortune Teller ~~\n"` below the comment of your `fortune.sh` file - -## 1060. ./fortune.sh - -### 1060.1 - -Run the file once to make sure it's working. - -#### HINTS - -- Type `./fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1070. ARR=("a" "b" "c") - -### 1070.1 - -This program will have an array of responses. One will be printed randomly after a user inputs a question. Practice first :smile: In the terminal, create an array like this: `ARR=("a" "b" "c")` - -#### HINTS - -- Type the suggested command in the terminal -- Type `ARR=("a" "b" "c")` in the terminal and press enter - -## 1080. echo ${ARR[1]} - -### 1080.1 - -Each variable in the array is like any other variable, just combined into a single variable. In the terminal, print the second item in the array with `echo ${ARR[1]}`. Note that the first item would be index zero. - -#### HINTS - -- Type `echo ${ARR[1]}` in the terminal - -## 1090. echo ${ARR[@]} - -### 1090.1 - -If you recall, you were able to print all the arguments to your `countdown.sh` script with `echo $*`. `echo $@` would have worked as well. Similarly, you can use the `*` or `@` to print your whole array. In the terminal, use `echo` to print all the items in your array. - -#### HINTS - -- Here's an example `echo ${ARR[]}` -- Type `echo ${ARR[@]}` in the terminal and press enter - -## 1100. declare -p ARR - -### 1100.1 - -The variable must be in that `declare` list. View your array variable using the `declare` command and the `-p` flag. - -#### HINTS - -- Here's an example: `declare -p ` -- Type `declare -p ARR` in the terminal - -## 1110. Add RESPONSES array - -### 1110.1 - -The `-a` next to it stands for `array`. In your script, create an array named `RESPONSES`. Give it these six values: `Yes`, `No`, `Maybe`, `Outlook good`, `Don't count on it`, and `Ask again later`. - -#### HINTS - -- Here's an example: `VARIABLE=(value value ...)` -- Make sure any values with spaces are in proper quotes -- You created your other array with `ARR=("a" "b" "c")` -- Add `RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later")` in your script - -## 1120. echo ${RESPONSES[5]} - -### 1120.1 - -In your script, use `echo` to print the last item in the array. - -#### HINTS - -- Here's an example `echo ${ARR[]}` -- Remember that the first item starts at zero -- Add `echo ${RESPONSES[5]}` to your `fortune.sh` file - -## 1130. ./fortune.sh - -### 1130.1 - -Run it to see the output. - -#### HINTS - -- Type `./fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1140. Add N=$(( RANDOM % 6 )) - -### 1140.1 - -You will randomly print one of the values. In your script, create a variable named `N`. Set it equal to a random number between `0` and `5`, the first and last index of the array. - -#### HINTS - -- Use the modulus (`%`) operator and `6` to get a number between `0` and `5` -- Look at the random number you created in the `bingo.sh` file for a hint -- Here's an example: `VARIABLE=$(( ))` -- Calculate a random number in the range you want with `RANDOM % 6` -- Add `N=$(( RANDOM % 6 ))` to the script - -## 1150. Change to echo ${RESPONSES[$N]} - -### 1150.1 - -Change your `echo` command to print the item in the array whose index is the random number you generated. - -#### HINTS - -- Use your `$N` variable as the index where you print an item from the array -- Don't forget that scripts run from top to bottom, so you can't use any variables before they are created -- Change the `echo` line to `echo ${RESPONSES[$N]}` - -## 1160. help - -### 1160.1 - -You will create a function to generate an answer. Check the `help` menu to see if you can find anything. - -#### HINTS - -- Enter the suggested command in the terminal -- Type `help` in the terminal - -## 1170. help function - -### 1170.1 - -See any that might help? There's one that says `function`. See if you can find out more about it. - -#### HINTS - -- Use the `help` command to find out more -- Here's an example: `help ` -- Type `help function` in the terminal - -## 1180. Add GET_FORTUNE function - -### 1180.1 - -It looks like you can create a function like this: - -```sh -FUNCTION_NAME() { - STATEMENTS -} -``` - -Add an empty function named `GET_FORTUNE` to your script. Make sure the response you are printing is the last thing in the script. - -#### HINTS - -- Add this to your script: -```sh -GET_FORTUNE() {} -``` -- Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file - -## 1190. Add echo Ask a yes or no question - -### 1190.1 - -In your function, use `echo` to print `Ask a yes or no question:` - -#### HINTS - -- Your function should look like this: -```sh -GET_FORTUNE() { - echo Ask a yes or no question: -} -``` -- Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file - -## 1200. Add GET_FORTUNE function call - -### 1200.1 - -Call your function by putting the name of it below where you create it. No `$` needed. Make sure the response you are printing is at the bottom of the file. - -#### HINTS - -- Add `GET_FORTUNE` below where you create your function to call it -- Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file - -## 1210. ./fortune.sh - -### 1210.1 - -Run your script to make sure it's working. - -#### HINTS - -- Type `./fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1220. Add read QUESTION - -### 1220.1 - -In your function after you print the sentence, use `read` to get user input into a variable named `QUESTION`. - -#### HINTS - -- Add `read QUESTION` to your function below the `echo` -- Your function should look like this: -```sh -GET_FORTUNE() { - echo Ask a yes or no question: - read QUESTION -} -``` -- Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file - -## 1230. ./fortune.sh - -### 1230.1 - -Run the script again to test it out. Enter a question when it asks. - -#### HINTS - -- Type `./fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1240. help - -### 1240.1 - -I want to make sure the input is a question. You are going to add a loop that asks for input until the input ends with a question mark. View the `help` menu to see if you can find an appropriate loop. - -#### HINTS - -- Type `help` in the terminal and press enter - -## 1250. help until - -### 1250.1 - -View more about that `until` command. That might be the one to use here. - -#### HINTS - -- Use `help ` to view more about a command -- Type `help until` in the terminal and press enter - -## 1260. Add until loop - -### 1260.1 - -The `until` loop is very similar to the `while` loop you used. It will execute the loop until a condition is met. Here's an example: - -```sh -until [[ CONDITION ]] -do - STATEMENTS -done -``` - -Add an `until` loop below your function. Use the double brackets to check if `QUESTION` is equal to `test?`. Move the `GET_FORTUNE` function call to the statements area of the loop. It should run the function until you input `test?` as the question. - -#### HINTS - -- View the `help [[` or `help test` menu to see if you can find the operator to use -- You want the `==` operator -- The condition should look like this: `[[ $QUESTION == test? ]]` -- Your `until` loop should look like this: -```sh -until [[ $QUESTION == test? ]] -do - GET_FORTUNE -done -``` -- You should only call the `GET_FORTUNE` function once -- Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file - -## 1270. ./fortune.sh - -### 1270.1 - -Run the script and enter something other than `test?`. Then enter `test?` after it asks for a question the second time. - -#### HINTS - -- Type `./fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1280. help [[ expression ]] - -### 1280.1 - -View that `help [[ expression ]]` menu again. You need to find out how to test if the input ends with a question mark (`?`). - -#### HINTS - -- Type `help [[` or `help [[ expression ]]` in the terminal and press enter - -## 1290. [[ hello == hello ]]; echo $? - -### 1290.1 - -Let's play with these again. You can test if two strings are the same with `==`. In the terminal, use the `[[ ... ]]; echo $?` syntax you used before to test if `hello` is equal to `hello`. - -#### HINTS - -- Be sure to use the `==` operator -- Type `[[ hello == hello ]]; echo $?` in the terminal and press enter - -## 1300. [[ hello == world ]]; echo $? - -### 1300.1 - -Exit status of `0`, it was true. Using the same syntax, test if `hello` is equal to `world`. - -#### HINTS - -- Use the `[[ ... ]]; echo $?` syntax -- Be sure to use the `==` operator -- Type `[[ hello == world ]]; echo $?` in the terminal and press enter - -## 1310. [[ hello =~ el ]]; echo $? - -### 1310.1 - -False. An important operator in that menu is `=~`. It allows for pattern matching. Using the same syntax but with this operator, check if `hello` contains the pattern `el`. - -#### HINTS - -- Use the `[[ ... ]]; echo $?` syntax -- Use the `=~` operator with it -- Type `[[ hello =~ el ]]; echo $?` in the terminal and press enter - -## 1320. [[ "hello world" =~ "lo wor" ]]; echo $? - -### 1320.1 - -True. The condition was checking for `el` within the word `hello`. Using the same syntax, check if `hello world` contains the pattern `lo wor`. You will need to put them both in quotes so it recognizes the spaces. - -#### HINTS - -- Use the `[[ ... ]]; echo $?` syntax -- Use the `=~` operator with it -- Type `[[ "hello world" =~ "lo wor" ]]; echo $?` in the terminal and press enter - -## 1330. [[ "hello world" =~ ^h ]]; echo $? - -### 1330.1 - -Your patterns have been checking for literal matches, `el` and `lo wor`. You can use regular expression characters as well, but you can't put the pattern in quotes when you do. Using the same syntax, check if `hello world` starts with an `h` by using `^h` as the pattern. - -#### HINTS - -- Make sure not to use quotes around the pattern when using regex characters it -- Type `[[ "hello world" =~ ^h ]]; echo $?` in the terminal - -## 1340. [[ "hello world" =~ ^h.+d$ ]]; echo $? - -### 1340.1 - -Do it again, but use `^h.+d$` as the pattern to see if the string starts with an `h`, has at least one character after it, and ends with a `d`. - -#### HINTS - -- Use the `[[ ... ]]; echo $?` syntax again -- Check if `hello world` contains the suggested pattern -- Make sure not to use quotes around the pattern when using regex characters it -- Type `[[ "hello world" =~ ^h.+d$ ]]; echo $?` in the terminal - -## 1350. VAR="hello world" - -### 1350.1 - -In the terminal, create a variable named `VAR` that equals `hello world`. - -#### HINTS - -- Type `VAR="hello world"` in the terminal - -## 1360. echo $VAR - -### 1360.1 - -Use `echo` to print the variable you just created. - -#### HINTS - -- Type `echo $VAR` in the terminal - -## 1370. [[ $VAR == "hello world" ]]; echo $? - -### 1370.1 - -Using the `[[ ... ]]; echo $?` syntax, check if your variable is equal to `hello world`. - -#### HINTS - -- Check the `help [[` menu to find the operator to use -- It's the `==` operator -- You want to check if `$VAR == "hello world"` -- Type `[[ $VAR == "hello world" ]]; echo $?` in the terminal - -## 1380. [[ $VAR =~ \?$ ]; echo $? - -### 1380.1 - -Using the same syntax, check if your variable ends with `?` by using the pattern `\?$`. - -#### HINTS - -- Be sure to use the pattern matching operator -- It's the `=~` operator -- You want to check if `$VAR =~ \?$` -- Type `[[ $VAR =~ \?$ ]]; echo $?` in the terminal - -## 1385. [[ test? =~ \?$ ]; echo $? - -### 1385.1 - -It doesn't end with `?`. Just to make sure I don't have the pattern wrong, check if `test?` ends with `?`. - -#### HINTS - -- Use the same `[[ ... ]]; echo $?` syntax you have been using -- Use the `\?$` pattern to see if a string ends with `?` -- Make sure you're using the pattern matching operator `=~` -- You want to check if `test? =~ \?$` -- Type `[[ test? =~ \?$ ]]; echo $?` in the terminal - -## 1390. Change until condition - -### 1390.1 - -I think that will work. Back in your script, change the `until` condition to see if your variable ends with `?`. - -#### HINTS - -- Use the pattern matching operator with `\?$` -- It's the `=~` operator -- Your condition should look like this: `[[ $QUESTION =~ \?$ ]]` -- Make sure there's spaces inside the brackets and around the operator - -## 1400. ./fortune.sh - -### 1400.1 - -Run the script and input something that doesn't end with `?` the first time, then something that does the second. - -#### HINTS - -- Type `./fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1410. Add if to GET_FORTUNE - -### 1410.1 - -I know that it asks the same thing if the input isn't what you want. You should let users know that it needs to end with `?`. Add an `if` condition in your **function** that checks `if [[ ! $1 ]]`. Put the existing `echo` statement in the `then` area and make sure the existing `read` is below the whole `if` condition. - -#### HINTS - -- Here's an example: -```sh -if [[ CONDITION ]] -then - STATEMENTS -fi - -read QUESTION -``` -- Your function should look like this: -```sh -function GET_FORTUNE() { - if [[ ! $1 ]] - then - echo Ask a yes or no question: - fi - - read QUESTION -} -``` - -## 1412. Add else to if [[ ! $1 ]] - -### 1412.1 - -You can pass arguments to functions like you did with your script. This condition will check if one isn't passed and print the sentence. Add an `else` to your `if`. Use `echo` to print `Try again. Make sure it ends with a question mark:` if the condition fails. - -#### HINTS - -- Here's an example: -```sh -if [[ CONDITION ]] -then - STATEMENTS -else - STATEMENTS -fi -``` -- Your `if` condition should look like this: -```sh -if [[ ! $1 ]] -then - echo Ask a yes or no question: -else - echo Try again. Make sure it ends with a question mark: -fi -``` - -## 1413. Add argument to function call - -### 1413.1 - -Now, your function will print one thing if you pass it any argument, and something else if not. In the `until` loop, add `again` as an argument to where you call the function. - -#### HINTS - -- Here's an example: `FUNCTION_NAME argument` -- Your function call should look like this: `GET_FORTUNE again` -- Your `until` loop should look like this: -```sh -until [[ $QUESTION =~ \?$ ]] -do - GET_FORTUNE again -done -``` - -## 1416. Add Initial function call - -### 1416.1 - -Now, each time the function is called in the `until` loop, it will pass `again` as an argument and print the `Try again...` sentence. Before your `until` loop, call the function without an argument so the first time it runs, it prints the initial sentence. - -#### HINTS - -- Add `GET_FORTUNE` before the `until` loop - -## 1420. ./fortune.sh - -### 1420.1 - -Run the script and enter something without a question mark when it asks the first time. Use a question mark the second time. - -#### HINTS - -- Type `./fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1425. Add line break in front of response - -### 1425.1 - -Awesome. One last thing. Add an empty line in front of where you print the response. - -#### HINTS - -- Change the existing `echo ${RESPONSES[$N]}` line -- Use the `-e` flag and the new line (`\n`) character with the `echo` statement -- Make sure to use quotes so it prints the new line -- Run the script and see if it's working -- The suggested command should look like this: `echo -e "\n${RESPONSES[$N]}"` - -## 1428. ./fortune.sh - -### 1428.1 - -Run the script one more time to see if you like the output. - -#### HINTS - -- Type `./fortune.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1430. touch five.sh - -### 1430.1 - -Excellent. One last program to make. Use `touch` to create a new file named `five.sh` in the same folder as the others. - -#### HINTS - -- Type `touch five.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1440. chmod +x five.sh - -### 1440.1 - -Give your file executable permissions. - -#### HINTS - -- Use the `chmod` command with the `+x` flag -- Here's an example `chmod ` -- You previously used `chmod +x fortune.sh` -- Type `chmod +x five.sh` in the terminal and press enter - -## 1450. Add shebang - -### 1450.1 - -Add a `shebang` to the new script that uses `bash` like the others. - -#### HINTS - -- A `shebang` looks like this: `#!` -- Enter `which bash` in the terminal to see the path to `bash` -- Look at the `shebang` in one of your other scripts to get the syntax -- It should look like this: `#!/bin/bash` -- Add `#!/bin/bash` at the top of your `five.sh` file - -## 1460. Add comment - -### 1460.1 - -Add a comment below the `shebang` that says, `Program to run my other four programs` - -#### HINTS - -- Comments look like this: `# ` -- Add `# Program to run my other four programs` below the `shebang` -- Capitalization matters - -## 1470. Add ./questionnaire.sh - -### 1470.1 - -This program will run all the programs you made so far consecutively. Add the command to run the `questionnaire.sh` file. - -#### HINTS - -- The command should look like how you would execute the file in the terminal -- Add `./questionnaire.sh` to the `five.sh` file - -## 1480. ./five - -### 1480.1 - -Run the file to see if it works. Enter input when it asks. - -#### HINTS - -- Type `./five.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1490. Add the rest of the scripts - -### 1490.1 - -Add commands to run the rest of your scripts in the file. They should be in this order: `questionnaire`, `countdown`, `bingo`, and `fortune`. Don't forget that your `countdown.sh` file needs an argument, so put a `3` next to it. - -#### HINTS - -- Your `five.sh` file should have these commands: -```sh -./questionnaire.sh -./countdown.sh 3 -./bingo.sh -./fortune.sh -``` - -## 1500. Clear - -### 1500.1 - -Okay, use `clear` to empty out what's in the terminal before the big moment. - -#### HINTS - -- Type `clear` in the terminal - -## 1510. ./five - -### 1510.1 - -Run the script and enter input when it asks. - -#### HINTS - -- Type `./five.sh` in the terminal and press enter -- Make sure you are in the `project` folder first - -## 1520. help - -### 1520.1 - -Cool. I think all the scripts are done. View the `help` menu again I want to explore one more thing. - -#### HINTS - -- Type `help` in the terminal and press enter - -## 1530. help type - -### 1530.1 - -View more about that `type` command. - -#### HINTS - -- Use `help ` to find out more about a command -- Type `help type` in the terminal and press enter - -## 1540. type echo - -### 1540.1 - -It says you can view the type of a command with `type `. Just for fun, lets take a look at the type of a few different commands. View the type of `echo`. - -#### HINTS - -- Type `type echo` in the terminal and press enter - -## 1550. type read - -### 1550.1 - -View the type of the `read` command. - -#### HINTS - -- Type `type read` in the terminal and press enter - -## 1560. type if - -### 1560.1 - -View the type of `if` - -#### HINTS - -- Type `type if` in the terminal and press enter - -## 1570. type then - -### 1570.1 - -View the type of `then` - -#### HINTS - -- Type `type then` in the terminal and press enter - -## 1580. type bash - -### 1580.1 - -Those were all from the `help` menu and described as a `shell builtin` or `shell keyword`. View the type of `bash` - -#### HINTS - -- Type `type bash` in the terminal and press enter - -## 1590. type psql - -### 1590.1 - -That's the location of the `bash` command. View the type of `psql`. - -#### HINTS - -- Type `type psql` in the terminal and press enter - -## 1600. type ./five.sh - -### 1600.1 - -It's showing the location of the commands. View the type of your `./five.sh` file. - -#### HINTS - -- Type `type ./five.sh` in the terminal and press enter - -## 1610. exit - -### 1610.1 - -Last step, close the terminal with the `exit` command. Thanks and happy coding! - -#### HINTS - -- Type `exit` in the terminal and press enter diff --git a/coderoad.yaml b/coderoad.yaml deleted file mode 100644 index 3be3c401dd..0000000000 --- a/coderoad.yaml +++ /dev/null @@ -1,1349 +0,0 @@ -id: 'freeCodeCamp/learn-bash-scripting-by-building-five-programs:v1.0.0' -version: '2.0.0' -config: - setup: - commands: - - ./.freeCodeCamp/setup.sh - - cd .freeCodeCamp && npm install - testRunner: - command: npm run programmatic-test - args: - tap: --reporter=mocha-tap-reporter - directory: .freeCodeCamp - repo: - uri: https://github.com/freeCodeCamp/learn-bash-scripting-by-building-five-programs - branch: v2.0.0 - continue: - commands: - - './.freeCodeCamp/setup.sh' - - './.freeCodeCamp/reset.sh' - reset: - commands: - - './.freeCodeCamp/setup.sh' - - './.freeCodeCamp/reset.sh' - dependencies: - - name: node - version: '>=10' - webhook: - url: 'https://api.freecodecamp.org/coderoad-challenge-completed' - events: - init: false - reset: false - step_complete: false - level_complete: false - tutorial_complete: true -levels: - - id: '10' - steps: - - id: '10.1' - setup: - watchers: - - ../.bash_history - - id: '20' - steps: - - id: '20.1' - setup: - watchers: - - ../.bash_history - - id: '30' - steps: - - id: '30.1' - setup: - watchers: - - ./questionnaire.sh - - id: '35' - steps: - - id: '35.1' - setup: - watchers: - - ../.bash_history - - id: '40' - steps: - - id: '40.1' - setup: - watchers: - - ../.bash_history - - id: '50' - steps: - - id: '50.1' - setup: - watchers: - - ../.bash_history - - id: '60' - steps: - - id: '60.1' - setup: - watchers: - - ./questionnaire.sh - - id: '70' - steps: - - id: '70.1' - setup: - watchers: - - ../.bash_history - - id: '80' - steps: - - id: '80.1' - setup: - watchers: - - ../.bash_history - - id: '90' - steps: - - id: '90.1' - setup: - watchers: - - ../.bash_history - - id: '100' - steps: - - id: '100.1' - setup: - watchers: - - ../.bash_history - - id: '110' - steps: - - id: '110.1' - setup: - watchers: - - ../.bash_history - - id: '140' - steps: - - id: '140.1' - setup: - watchers: - - ./questionnaire.sh - - id: '150' - steps: - - id: '150.1' - setup: - watchers: - - ../.bash_history - - id: '160' - steps: - - id: '160.1' - setup: - watchers: - - ./questionnaire.sh - - id: '170' - steps: - - id: '170.1' - setup: - watchers: - - ./questionnaire.sh - - id: '180' - steps: - - id: '180.1' - setup: - watchers: - - ./questionnaire.sh - - id: '190' - steps: - - id: '190.1' - setup: - watchers: - - ../.bash_history - - id: '200' - steps: - - id: '200.1' - setup: - watchers: - - ./questionnaire.sh - - id: '210' - steps: - - id: '210.1' - setup: - watchers: - - ./questionnaire.sh - - id: '220' - steps: - - id: '220.1' - setup: - watchers: - - ../.bash_history - - id: '230' - steps: - - id: '230.1' - setup: - watchers: - - ./questionnaire.sh - - id: '240' - steps: - - id: '240.1' - setup: - watchers: - - ./questionnaire.sh - - id: '250' - steps: - - id: '250.1' - setup: - watchers: - - ./questionnaire.sh - - id: '260' - steps: - - id: '260.1' - setup: - watchers: - - ./questionnaire.sh - - id: '270' - steps: - - id: '270.1' - setup: - watchers: - - ../.bash_history - - id: '280' - steps: - - id: '280.1' - setup: - watchers: - - ./questionnaire.sh - - id: '290' - steps: - - id: '290.1' - setup: - watchers: - - ../.bash_history - - id: '300' - steps: - - id: '300.1' - setup: - watchers: - - ../.bash_history - - id: '310' - steps: - - id: '310.1' - setup: - watchers: - - ../.bash_history - - id: '320' - steps: - - id: '320.1' - setup: - watchers: - - ./questionnaire.sh - - id: '323' - steps: - - id: '323.1' - setup: - watchers: - - ../.bash_history - - id: '326' - steps: - - id: '326.1' - setup: - watchers: - - ./questionnaire.sh - - id: '330' - steps: - - id: '330.1' - setup: - watchers: - - ../.bash_history - - id: '340' - steps: - - id: '340.1' - setup: - watchers: - - ./questionnaire.sh - - id: '345' - steps: - - id: '345.1' - setup: - watchers: - - ./questionnaire.sh - - id: '350' - steps: - - id: '350.1' - setup: - watchers: - - ./questionnaire.sh - - id: '360' - steps: - - id: '360.1' - setup: - watchers: - - ./questionnaire.sh - - id: '363' - steps: - - id: '363.1' - setup: - watchers: - - ../.bash_history - - id: '366' - steps: - - id: '366.1' - setup: - watchers: - - ./questionnaire.sh - - id: '370' - steps: - - id: '370.1' - setup: - watchers: - - ../.bash_history - - id: '380' - steps: - - id: '380.1' - setup: - watchers: - - ../.bash_history - - id: '390' - steps: - - id: '390.1' - setup: - watchers: - - ../.bash_history - - id: '400' - steps: - - id: '400.1' - setup: - watchers: - - ./countdown.sh - - id: '410' - steps: - - id: '410.1' - setup: - watchers: - - ./countdown.sh - - id: '420' - steps: - - id: '420.1' - setup: - watchers: - - ./countdown.sh - - id: '425' - steps: - - id: '425.1' - setup: - watchers: - - ../.bash_history - - id: '430' - steps: - - id: '430.1' - setup: - watchers: - - ../.bash_history - - id: '440' - steps: - - id: '440.1' - setup: - watchers: - - ./countdown.sh - - id: '450' - steps: - - id: '450.1' - setup: - watchers: - - ../.bash_history - - id: '460' - steps: - - id: '460.1' - setup: - watchers: - - ../.bash_history - - id: '470' - steps: - - id: '470.1' - setup: - watchers: - - ../.bash_history - - id: '480' - steps: - - id: '480.1' - setup: - watchers: - - ../.bash_history - - id: '490' - steps: - - id: '490.1' - setup: - watchers: - - ./countdown.sh - - id: '500' - steps: - - id: '500.1' - setup: - watchers: - - ../.bash_history - - id: '505' - steps: - - id: '505.1' - setup: - watchers: - - ../.bash_history - - id: '510' - steps: - - id: '510.1' - setup: - watchers: - - ./countdown.sh - - id: '520' - steps: - - id: '520.1' - setup: - watchers: - - ../.bash_history - - id: '530' - steps: - - id: '530.1' - setup: - watchers: - - ./countdown.sh - - id: '540' - steps: - - id: '540.1' - setup: - watchers: - - ../.bash_history - - id: '542' - steps: - - id: '542.1' - setup: - watchers: - - ../.bash_history - - id: '544' - steps: - - id: '544.1' - setup: - watchers: - - ../.bash_history - - id: '546' - steps: - - id: '546.1' - setup: - watchers: - - ../.bash_history - - id: '548' - steps: - - id: '548.1' - setup: - watchers: - - ../.bash_history - - id: '550' - steps: - - id: '550.1' - setup: - watchers: - - ./countdown.sh - - id: '552' - steps: - - id: '552.1' - setup: - watchers: - - ../.bash_history - - id: '554' - steps: - - id: '554.1' - setup: - watchers: - - ../.bash_history - - id: '556' - steps: - - id: '556.1' - setup: - watchers: - - ../.bash_history - - id: '558' - steps: - - id: '558.1' - setup: - watchers: - - ../.bash_history - - id: '560' - steps: - - id: '560.1' - setup: - watchers: - - ../.bash_history - - id: '562' - steps: - - id: '562.1' - setup: - watchers: - - ../.bash_history - - id: '564' - steps: - - id: '564.1' - setup: - watchers: - - ../.bash_history - - id: '566' - steps: - - id: '566.1' - setup: - watchers: - - ../.bash_history - - id: '568' - steps: - - id: '568.1' - setup: - watchers: - - ../.bash_history - - id: '570' - steps: - - id: '570.1' - setup: - watchers: - - ../.bash_history - - id: '572' - steps: - - id: '572.1' - setup: - watchers: - - ../.bash_history - - id: '574' - steps: - - id: '574.1' - setup: - watchers: - - ../.bash_history - - id: '575' - steps: - - id: '575.1' - setup: - watchers: - - ../.bash_history - - id: '576' - steps: - - id: '576.1' - setup: - watchers: - - ../.bash_history - - id: '582' - steps: - - id: '582.1' - setup: - watchers: - - ../.bash_history - - id: '584' - steps: - - id: '584.1' - setup: - watchers: - - ../.bash_history - - id: '586' - steps: - - id: '586.1' - setup: - watchers: - - ../.bash_history - - id: '588' - steps: - - id: '588.1' - setup: - watchers: - - ./countdown.sh - - id: '590' - steps: - - id: '590.1' - setup: - watchers: - - ./countdown.sh - - id: '600' - steps: - - id: '600.1' - setup: - watchers: - - ../.bash_history - - id: '610' - steps: - - id: '610.1' - setup: - watchers: - - ../.bash_history - - id: '615' - steps: - - id: '615.1' - setup: - watchers: - - ../.bash_history - - id: '620' - steps: - - id: '620.1' - setup: - watchers: - - ./countdown.sh - - id: '630' - steps: - - id: '630.1' - setup: - watchers: - - ../.bash_history - - id: '640' - steps: - - id: '640.1' - setup: - watchers: - - ../.bash_history - - id: '650' - steps: - - id: '650.1' - setup: - watchers: - - ../.bash_history - - id: '660' - steps: - - id: '660.1' - setup: - watchers: - - ../.bash_history - - id: '670' - steps: - - id: '670.1' - setup: - watchers: - - ../.bash_history - - id: '675' - steps: - - id: '675.1' - setup: - watchers: - - ../.bash_history - - id: '680' - steps: - - id: '680.1' - setup: - watchers: - - ./countdown.sh - - id: '690' - steps: - - id: '690.1' - setup: - watchers: - - ../.bash_history - - id: '692' - steps: - - id: '692.1' - setup: - watchers: - - ./countdown.sh - - id: '694' - steps: - - id: '694.1' - setup: - watchers: - - ../.bash_history - - id: '696' - steps: - - id: '696.1' - setup: - watchers: - - ./countdown.sh - - id: '698' - steps: - - id: '698.1' - setup: - watchers: - - ../.bash_history - - id: '700' - steps: - - id: '700.1' - setup: - watchers: - - ./countdown.sh - - id: '710' - steps: - - id: '710.1' - setup: - watchers: - - ../.bash_history - - id: '730' - steps: - - id: '730.1' - setup: - watchers: - - ./countdown.sh - - id: '740' - steps: - - id: '740.1' - setup: - watchers: - - ./countdown.sh - - id: '750' - steps: - - id: '750.1' - setup: - watchers: - - ./countdown.sh - - id: '760' - steps: - - id: '760.1' - setup: - watchers: - - ./countdown.sh - - id: '770' - steps: - - id: '770.1' - setup: - watchers: - - ../.bash_history - - id: '780' - steps: - - id: '780.1' - setup: - watchers: - - ../.bash_history - - id: '790' - steps: - - id: '790.1' - setup: - watchers: - - ../.bash_history - - id: '800' - steps: - - id: '800.1' - setup: - watchers: - - ./bingo.sh - - id: '810' - steps: - - id: '810.1' - setup: - watchers: - - ./bingo.sh - - id: '815' - steps: - - id: '815.1' - setup: - watchers: - - ./bingo.sh - - id: '817' - steps: - - id: '817.1' - setup: - watchers: - - ./bingo.sh - - id: '818' - steps: - - id: '818.1' - setup: - watchers: - - ./bingo.sh - - id: '819' - steps: - - id: '819.1' - setup: - watchers: - - ../.bash_history - - id: '820' - steps: - - id: '820.1' - setup: - watchers: - - ../.bash_history - - id: '822' - steps: - - id: '822.1' - setup: - watchers: - - ../.bash_history - - id: '824' - steps: - - id: '824.1' - setup: - watchers: - - ../.bash_history - - id: '826' - steps: - - id: '826.1' - setup: - watchers: - - ../.bash_history - - id: '828' - steps: - - id: '828.1' - setup: - watchers: - - ./bingo.sh - - id: '830' - steps: - - id: '830.1' - setup: - watchers: - - ../.bash_history - - id: '835' - steps: - - id: '835.1' - setup: - watchers: - - ./bingo.sh - - id: '840' - steps: - - id: '840.1' - setup: - watchers: - - ../.bash_history - - id: '881' - steps: - - id: '881.1' - setup: - watchers: - - ../.bash_history - - id: '884' - steps: - - id: '884.1' - setup: - watchers: - - ../.bash_history - - id: '887' - steps: - - id: '887.1' - setup: - watchers: - - ../.bash_history - - id: '890' - steps: - - id: '890.1' - setup: - watchers: - - ../.bash_history - - id: '891' - steps: - - id: '891.1' - setup: - watchers: - - ../.bash_history - - id: '893' - steps: - - id: '893.1' - setup: - watchers: - - ../.bash_history - - id: '896' - steps: - - id: '896.1' - setup: - watchers: - - ../.bash_history - - id: '897' - steps: - - id: '897.1' - setup: - watchers: - - ../.bash_history - - id: '899' - steps: - - id: '899.1' - setup: - watchers: - - ../.bash_history - - id: '902' - steps: - - id: '902.1' - setup: - watchers: - - ../.bash_history - - id: '905' - steps: - - id: '905.1' - setup: - watchers: - - ../.bash_history - - id: '908' - steps: - - id: '908.1' - setup: - watchers: - - ../.bash_history - - id: '911' - steps: - - id: '911.1' - setup: - watchers: - - ../.bash_history - - id: '912' - steps: - - id: '912.1' - setup: - watchers: - - ../.bash_history - - id: '913' - steps: - - id: '913.1' - setup: - watchers: - - ../.bash_history - - id: '914' - steps: - - id: '914.1' - setup: - watchers: - - ../.bash_history - - id: '916' - steps: - - id: '916.1' - setup: - watchers: - - ../.bash_history - - id: '918' - steps: - - id: '918.1' - setup: - watchers: - - ../.bash_history - - id: '920' - steps: - - id: '920.1' - setup: - watchers: - - ../.bash_history - - id: '928' - steps: - - id: '928.1' - setup: - watchers: - - ./bingo.sh - - id: '930' - steps: - - id: '930.1' - setup: - watchers: - - ../.bash_history - - id: '940' - steps: - - id: '940.1' - setup: - watchers: - - ./bingo.sh - - id: '945' - steps: - - id: '945.1' - setup: - watchers: - - ../.bash_history - - id: '950' - steps: - - id: '950.1' - setup: - watchers: - - ./bingo.sh - - id: '960' - steps: - - id: '960.1' - setup: - watchers: - - ./bingo.sh - - id: '970' - steps: - - id: '970.1' - setup: - watchers: - - ./bingo.sh - - id: '980' - steps: - - id: '980.1' - setup: - watchers: - - ./bingo.sh - - id: '990' - steps: - - id: '990.1' - setup: - watchers: - - ./bingo.sh - - id: '1000' - steps: - - id: '1000.1' - setup: - watchers: - - ../.bash_history - - id: '1010' - steps: - - id: '1010.1' - setup: - watchers: - - ../.bash_history - - id: '1020' - steps: - - id: '1020.1' - setup: - watchers: - - ../.bash_history - - id: '1030' - steps: - - id: '1030.1' - setup: - watchers: - - ./fortune.sh - - id: '1040' - steps: - - id: '1040.1' - setup: - watchers: - - ./fortune.sh - - id: '1050' - steps: - - id: '1050.1' - setup: - watchers: - - ./fortune.sh - - id: '1060' - steps: - - id: '1060.1' - setup: - watchers: - - ../.bash_history - - id: '1070' - steps: - - id: '1070.1' - setup: - watchers: - - ../.bash_history - - id: '1080' - steps: - - id: '1080.1' - setup: - watchers: - - ../.bash_history - - id: '1090' - steps: - - id: '1090.1' - setup: - watchers: - - ../.bash_history - - id: '1100' - steps: - - id: '1100.1' - setup: - watchers: - - ../.bash_history - - id: '1110' - steps: - - id: '1110.1' - setup: - watchers: - - ./fortune.sh - - id: '1120' - steps: - - id: '1120.1' - setup: - watchers: - - ./fortune.sh - - id: '1130' - steps: - - id: '1130.1' - setup: - watchers: - - ../.bash_history - - id: '1140' - steps: - - id: '1140.1' - setup: - watchers: - - ./fortune.sh - - id: '1150' - steps: - - id: '1150.1' - setup: - watchers: - - ./fortune.sh - - id: '1160' - steps: - - id: '1160.1' - setup: - watchers: - - ../.bash_history - - id: '1170' - steps: - - id: '1170.1' - setup: - watchers: - - ../.bash_history - - id: '1180' - steps: - - id: '1180.1' - setup: - watchers: - - ./fortune.sh - - id: '1190' - steps: - - id: '1190.1' - setup: - watchers: - - ./fortune.sh - - id: '1200' - steps: - - id: '1200.1' - setup: - watchers: - - ./fortune.sh - - id: '1210' - steps: - - id: '1210.1' - setup: - watchers: - - ../.bash_history - - id: '1220' - steps: - - id: '1220.1' - setup: - watchers: - - ./fortune.sh - - id: '1230' - steps: - - id: '1230.1' - setup: - watchers: - - ../.bash_history - - id: '1240' - steps: - - id: '1240.1' - setup: - watchers: - - ../.bash_history - - id: '1250' - steps: - - id: '1250.1' - setup: - watchers: - - ../.bash_history - - id: '1260' - steps: - - id: '1260.1' - setup: - watchers: - - ./fortune.sh - - id: '1270' - steps: - - id: '1270.1' - setup: - watchers: - - ../.bash_history - - id: '1280' - steps: - - id: '1280.1' - setup: - watchers: - - ../.bash_history - - id: '1290' - steps: - - id: '1290.1' - setup: - watchers: - - ../.bash_history - - id: '1300' - steps: - - id: '1300.1' - setup: - watchers: - - ../.bash_history - - id: '1310' - steps: - - id: '1310.1' - setup: - watchers: - - ../.bash_history - - id: '1320' - steps: - - id: '1320.1' - setup: - watchers: - - ../.bash_history - - id: '1330' - steps: - - id: '1330.1' - setup: - watchers: - - ../.bash_history - - id: '1340' - steps: - - id: '1340.1' - setup: - watchers: - - ../.bash_history - - id: '1350' - steps: - - id: '1350.1' - setup: - watchers: - - ../.bash_history - - id: '1360' - steps: - - id: '1360.1' - setup: - watchers: - - ../.bash_history - - id: '1370' - steps: - - id: '1370.1' - setup: - watchers: - - ../.bash_history - - id: '1380' - steps: - - id: '1380.1' - setup: - watchers: - - ../.bash_history - - id: '1385' - steps: - - id: '1385.1' - setup: - watchers: - - ../.bash_history - - id: '1390' - steps: - - id: '1390.1' - setup: - watchers: - - ./fortune.sh - - id: '1400' - steps: - - id: '1400.1' - setup: - watchers: - - ../.bash_history - - id: '1410' - steps: - - id: '1410.1' - setup: - watchers: - - ./fortune.sh - - id: '1412' - steps: - - id: '1412.1' - setup: - watchers: - - ./fortune.sh - - id: '1413' - steps: - - id: '1413.1' - setup: - watchers: - - ./fortune.sh - - id: '1416' - steps: - - id: '1416.1' - setup: - watchers: - - ./fortune.sh - - id: '1420' - steps: - - id: '1420.1' - setup: - watchers: - - ../.bash_history - - id: '1425' - steps: - - id: '1425.1' - setup: - watchers: - - ./fortune.sh - - id: '1428' - steps: - - id: '1428.1' - setup: - watchers: - - ../.bash_history - - id: '1430' - steps: - - id: '1430.1' - setup: - watchers: - - ../.bash_history - - id: '1440' - steps: - - id: '1440.1' - setup: - watchers: - - ../.bash_history - - id: '1450' - steps: - - id: '1450.1' - setup: - watchers: - - ./five.sh - - id: '1460' - steps: - - id: '1460.1' - setup: - watchers: - - ./five.sh - - id: '1470' - steps: - - id: '1470.1' - setup: - watchers: - - ./five.sh - - id: '1480' - steps: - - id: '1480.1' - setup: - watchers: - - ../.bash_history - - id: '1490' - steps: - - id: '1490.1' - setup: - watchers: - - ./five.sh - - id: '1500' - steps: - - id: '1500.1' - setup: - watchers: - - ../.bash_history - - id: '1510' - steps: - - id: '1510.1' - setup: - watchers: - - ../.bash_history - - id: '1520' - steps: - - id: '1520.1' - setup: - watchers: - - ../.bash_history - - id: '1530' - steps: - - id: '1530.1' - setup: - watchers: - - ../.bash_history - - id: '1540' - steps: - - id: '1540.1' - setup: - watchers: - - ../.bash_history - - id: '1550' - steps: - - id: '1550.1' - setup: - watchers: - - ../.bash_history - - id: '1560' - steps: - - id: '1560.1' - setup: - watchers: - - ../.bash_history - - id: '1570' - steps: - - id: '1570.1' - setup: - watchers: - - ../.bash_history - - id: '1580' - steps: - - id: '1580.1' - setup: - watchers: - - ../.bash_history - - id: '1590' - steps: - - id: '1590.1' - setup: - watchers: - - ../.bash_history - - id: '1600' - steps: - - id: '1600.1' - setup: - watchers: - - ../.bash_history - - id: '1610' - steps: - - id: '1610.1' - setup: - watchers: - - ../.bash_history diff --git a/tutorial.json b/tutorial.json deleted file mode 100644 index 989240ab01..0000000000 --- a/tutorial.json +++ /dev/null @@ -1,5425 +0,0 @@ -{ - "id": "freeCodeCamp/learn-bash-scripting-by-building-five-programs:v1.0.0", - "version": "2.0.0", - "summary": { - "title": "Learn Bash Scripting by Building Five Programs", - "description": "> Welcome to the Bash Scripting lessons!" - }, - "config": { - "setup": { - "commands": [ - "./.freeCodeCamp/setup.sh", - "cd .freeCodeCamp && npm install" - ], - "commits": [ - "d1729d3899c17eeece566fe71d05efc208a7004d" - ] - }, - "testRunner": { - "command": "npm run programmatic-test", - "args": { - "tap": "--reporter=mocha-tap-reporter" - }, - "directory": ".freeCodeCamp" - }, - "repo": { - "uri": "https://github.com/freeCodeCamp/learn-bash-scripting-by-building-five-programs", - "branch": "v2.0.0" - }, - "continue": { - "commands": [ - "./.freeCodeCamp/setup.sh", - "./.freeCodeCamp/reset.sh" - ] - }, - "reset": { - "commands": [ - "./.freeCodeCamp/setup.sh", - "./.freeCodeCamp/reset.sh" - ] - }, - "dependencies": [ - { - "name": "node", - "version": ">=10" - } - ], - "webhook": { - "url": "https://api.freecodecamp.org/coderoad-challenge-completed", - "events": { - "init": false, - "reset": false, - "step_complete": false, - "level_complete": false, - "tutorial_complete": true - } - } - }, - "levels": [ - { - "id": "10", - "title": "Start the Terminal", - "summary": "", - "content": "", - "steps": [ - { - "id": "10.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "c7055e012705b9ad2507f88d29235c8e89a730b2" - ] - }, - "content": "**The first thing you need to do is start the terminal.** Do that by clicking the \"hamburger\" menu at the top left of the screen, going to the \"terminal\" section, and clicking \"new terminal\". Once you open a new one, type `echo hello bash` into the terminal and press enter.", - "hints": [ - "Capitalization matters", - "If the tests don't run automatically, \"trash\" all the terminals and try the instructions again" - ] - } - ] - }, - { - "id": "20", - "title": "touch questionnaire.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "20.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "6837d9633c2074f949f97f2660f750ecd79802cd" - ] - }, - "content": "You can run commands in the terminal or put them in a file to be run as a script. You will be making five small programs to learn some scripting. The first one will be a \"questionnaire\". Use the `touch` command to create `questionnaire.sh` in the `project` folder.", - "hints": [ - "Type `touch questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "30", - "title": "Add echo questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "30.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "69d8cb725b6eb494b76e5cfad8b3473846aad07b" - ] - }, - "content": "To start, open the file in the main editor by clicking the filename in the left side panel.\nThen, add the text `echo hello questionnaire` at the top of the file.", - "hints": [ - "If the left side panel isn't visible, click the icon that looks like two pieces of paper \nat the top left to open the panel. Then, click on your file to open it", - "Add the suggested text to the `questionnaire.sh` file" - ] - } - ] - }, - { - "id": "35", - "title": "sh questionnaire.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "35.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "e0d7f17ade077b64b799e8f3c24a6ffb4b978a65" - ] - }, - "content": "Your script has one command. Run it with `sh questionnaire.sh` to see what happens. `sh` stands for `shell`.", - "hints": [ - "Type `sh questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "40", - "title": "bash questionnaire.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "40.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "6a2a08c856faf28356a7d6f2b8f159a412ce411b" - ] - }, - "content": "Using `sh` to run your script uses the `shell` interpreter. Run your script again with `bash questionnaire.sh` to use the `bash` interpreter. `bash` stands for `bourne-again shell`.", - "hints": [ - "Type `bash questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "50", - "title": "which bash", - "summary": "", - "content": "", - "steps": [ - { - "id": "50.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "d80dd97b71cd6abd02d2ed4b724ee7c8d25f8b8d" - ] - }, - "content": "The output was the same. There are many interpreters which may not give the output you expect. Find out where the `bash` interpreter is located by entering `which bash` in the terminal.", - "hints": [ - "Type `which bash` in the terminal and press enter" - ] - } - ] - }, - { - "id": "60", - "title": "Add shebang", - "summary": "", - "content": "", - "steps": [ - { - "id": "60.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "e3f077b1b818ede2918a33226460e5f1c583e3b8" - ] - }, - "content": "That's the absolute path to the `bash` interpreter. You can tell your program to use it by placing a `shebang` at the very top of the file like this: `#!`. Add a `shebang` at the very top of your file, the one you want looks like this: `#!/bin/bash`.", - "hints": [ - "Add `#!/bin/bash` at the top of your `questionnaire.sh` file" - ] - } - ] - }, - { - "id": "70", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "70.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "2313d3900a07704a6c6f6bed5d7d2ff7d956e1f9" - ] - }, - "content": "Now, instead of using `sh` or `bash` to run your script. You can run it by executing the file and it will default to bash. Execute your script with `./questionnaire.sh`. You will get a permission denied error.", - "hints": [ - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "80", - "title": "ls -l", - "summary": "", - "content": "", - "steps": [ - { - "id": "80.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "00bf064f1c87ea54174be60ca796c248472f6f19" - ] - }, - "content": "You should have got a permission denied message because you don't have permissions to execute the script. List what's in the `project` folder in long list format with `ls -l` to see the file permissions.", - "hints": [ - "Type `ls -l` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "90", - "title": "chmod +x questionnaire.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "90.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "edb643af58d65a2bef0abb46a89adffdf93de6e8" - ] - }, - "content": "Next to your file is `-rw-r--r--`. All but the first character (`-`) describe permissions different users have with the file. `r` means `read`, `w` means `write`, `x` means `execute`. I don't see an `x` anywhere, so nobody can execute it. Enter `chmod +x questionnaire.sh` in the terminal to give everyone executable permissions.", - "hints": [ - "Type `chmod +x questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "100", - "title": "ls -l", - "summary": "", - "content": "", - "steps": [ - { - "id": "100.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "5310b0313f2fbe4fb69aea2dc5a962cb56f81e19" - ] - }, - "content": "List what's in the folder again with `ls -l` to see the new permissions.", - "hints": [ - "Type `ls -l` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "110", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "110.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "ce6200621c29675760247ac8cfff085734096a05" - ] - }, - "content": "The `x` was added by each type of user to denote that anyone can execute the file. Run your file again by executing it with `./questionnaire.sh`.", - "hints": [ - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "140", - "title": "Add ls -l", - "summary": "", - "content": "", - "steps": [ - { - "id": "140.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "975fe36751980fe05bc01a7330f4deb38161e584" - ] - }, - "content": "Now it works. In your script, you can add any commands that you would be able to enter in the terminal. Test this by adding the `ls -l` command below your other command.", - "hints": [ - "Add `ls -l` at the bottom of your `questionnaire.sh` file" - ] - } - ] - }, - { - "id": "150", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "150.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "032ce400565f170571d69eed514d8d81f157efe3" - ] - }, - "content": "Run the script by executing it again.", - "hints": [ - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "160", - "title": "Delete all - shebang", - "summary": "", - "content": "", - "steps": [ - { - "id": "160.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "699bbe17489321f53b356eb4c72b5ab16823822a" - ] - }, - "content": "Your script printed the result of the two commands as if you entered them in the terminal. Delete everything but the `shebang` from your file so you can start making the questionnaire.", - "hints": [ - "Only `#!/bin/bash` should remain in your `questionnaire.sh` file" - ] - } - ] - }, - { - "id": "170", - "title": "Add QUESTION1 variable", - "summary": "", - "content": "", - "steps": [ - { - "id": "170.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "a0d5b9d8199f61a9c864b65c4f1e3b95eee21f5b" - ] - }, - "content": "Bash has variables, functions, and other things you might be familiar with. You can create a variable with `VARIABLE_NAME=VALUE`. There cannot be any spaces around the equal (`=`) sign. If a variable has any spaces in it, place double quotes around it. Create a variable named `QUESTION1` and set it's value to `\"What's your name?\"`.", - "hints": [ - "Add `QUESTION1=\"What's your name?\"` at the bottom of your `questionnaire.sh` file" - ] - } - ] - }, - { - "id": "180", - "title": "Add echo $QUESTION1", - "summary": "", - "content": "", - "steps": [ - { - "id": "180.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "cbc4c0e5e6abed357990b57c0e64b66edf5c7fd4" - ] - }, - "content": "To use a variable, place `$` in front of it like this: `$VARIABLE_NAME`. Shell scripts run from top to bottom, so you can only use variable below where it's created. Use `echo` to print your variable.", - "hints": [ - "Add `echo $QUESTION1` at the bottom of your `questionnaire.sh` file" - ] - } - ] - }, - { - "id": "190", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "190.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "626efba75ba0d8f6cbc2ad4cdb8d492702aaaf16" - ] - }, - "content": "Run the file like you did before to see if it worked.", - "hints": [ - "Run your file by executing it", - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "200", - "title": "Add read NAME", - "summary": "", - "content": "", - "steps": [ - { - "id": "200.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "4dae6eafeb5ea31210b27998086a4fc55d023dd1" - ] - }, - "content": "The question was printed. Next, you want to be able to accept input from a user. You can do that with `read` like this: `read VARIABLE_NAME`. This will get user input and store it into a new variable. After you print the question, use `read` to get input and store it in a variable named `NAME`.", - "hints": [ - "Add `read NAME` at the bottom of your `questionnaire.sh` file" - ] - } - ] - }, - { - "id": "210", - "title": "Add echo Hello $NAME", - "summary": "", - "content": "", - "steps": [ - { - "id": "210.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "9317dd685bbefcecac158c2358b42a26b3ce76e8" - ] - }, - "content": "At the bottom of your script, use `echo` to print `Hello .` to the terminal.", - "hints": [ - "You can use your `NAME` variable like this: `$NAME`", - "Use your `$NAME` variable in place of ``", - "Don't forget the period", - "Add `echo Hello $NAME.` at the bottom of your script" - ] - } - ] - }, - { - "id": "220", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "220.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "c81cb6d5774fcaedc5ead1ebe5de54e40f2c9f37" - ] - }, - "content": "Run the file again. Type your name and press enter after it asks for it.", - "hints": [ - "Run your file by executing it", - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there", - "You can press `ctrl+c` to close the program" - ] - } - ] - }, - { - "id": "230", - "title": "Add QUESTION2 variable", - "summary": "", - "content": "", - "steps": [ - { - "id": "230.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "696078c01b4aa042cb3a918029c92cc234a1ede6" - ] - }, - "content": "Right below your first variable, create another one named `QUESTION2`. Set the value to, `Where are you from?`. Make sure to put it in double quotes.", - "hints": [ - "Here's an example: `VARIABLE=\"value\"`", - "Add `QUESTION2=\"Where are you from?\"` to your script" - ] - } - ] - }, - { - "id": "240", - "title": "Add echo $QUESTION2", - "summary": "", - "content": "", - "steps": [ - { - "id": "240.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "5a3ea50c1862b9b8f3788e29071962594904d8a8" - ] - }, - "content": "After your `read` command, use your new variable to print the next question.", - "hints": [ - "Use `echo` to print the variable", - "Add `echo $QUESTION2` below your `read` command" - ] - } - ] - }, - { - "id": "250", - "title": "Add read LOCATION", - "summary": "", - "content": "", - "steps": [ - { - "id": "250.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "eb61d4fac03be52d45c129ccf4b04ae1d64e5fb8" - ] - }, - "content": "Below where the second question is printed, use `read` to get input from the user into a variable named `LOCATION`.", - "hints": [ - "Here's an example `read VARIABLE_NAME`", - "Add `read LOCATION` to your script below `echo $QUESTION2`" - ] - } - ] - }, - { - "id": "260", - "title": "Add echo Hello $NAME from $LOCATION", - "summary": "", - "content": "", - "steps": [ - { - "id": "260.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "f113517382ddca8215e89e2d75f48b346028edf7" - ] - }, - "content": "Change the existing response to `Hello from .`.", - "hints": [ - "Use your two variables in place of `` and ` `", - "The command is `echo`, the flag is `--help`", - "Type `echo --help` in the terminal and press enter" - ] - } - ] - }, - { - "id": "310", - "title": "man echo", - "summary": "", - "content": "", - "steps": [ - { - "id": "310.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "76aed3123c7f7636f897f35c85de07b14fa69e22" - ] - }, - "content": "That didn't work as I hoped. Another way to find information about a command is with `man`. It stands for `manual` and you can use it like this: `man `. See if there's a manual for `echo`.", - "hints": [ - "Type `man echo` in the terminal and press enter", - "Press enter until you have seen the whole menu" - ] - } - ] - }, - { - "id": "320", - "title": "Add echo -e \\n~~ Questionnaire ~~\\n", - "summary": "", - "content": "", - "steps": [ - { - "id": "320.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "7b00267cbc979d62d39392c6f6a4055ec527f4a4" - ] - }, - "content": "At the top of the menu, the `-e` option looks promising. And the `\\n` below it says `new line`. You should take a look at those. In your script, change the title to `echo -e \\n~~ Questionnaire ~~\\n` to see if that prints the empty lines.", - "hints": [ - "Change the suggested line to `echo -e \\n~~ Questionnaire ~~\\n`" - ] - } - ] - }, - { - "id": "323", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "323.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "c95ec4f32a9629903aad8c0f9a0cd95c4addbc36" - ] - }, - "content": "Run it to see if it worked. You can press `ctrl+c` to close the program after it starts if you don't want to enter values.", - "hints": [ - "Run your file by executing it", - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "You can press `ctrl+c` to close the program" - ] - } - ] - }, - { - "id": "326", - "title": "Change to echo -e \"\\n~~ Questionnaire ~~\\n\"", - "summary": "", - "content": "", - "steps": [ - { - "id": "326.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "87149c5f3041ab4804bbe6acd866e2b8a9d8a2fd" - ] - }, - "content": "It didn't print the empty lines. `echo` will only print empty lines if the value is enclosed in quotes. Place double quotes around the title that gets printed to see if it works.", - "hints": [ - "Change the suggested line to `echo -e \"\\n~~ Questionnaire ~~\\n\"`" - ] - } - ] - }, - { - "id": "330", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "330.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "b03cdc968e546bab177dad6ceb397427c8b13f32" - ] - }, - "content": "Run your script again to see if that fixed it.", - "hints": [ - "Run your file by executing it", - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "You can press `ctrl+c` to close the program" - ] - } - ] - }, - { - "id": "340", - "title": "Add QUESTION3 variable", - "summary": "", - "content": "", - "steps": [ - { - "id": "340.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "041b3d5602ba49e25aa04fb54cb9875a29ae8ff9" - ] - }, - "content": "Now it's working :smile: Create a `QUESTION3` variable next to the other two, set it's value to `\"What's your favorite coding website?\"`", - "hints": [ - "Add `QUESTION3=\"What's your favorite coding website?\"` to your `questionnaire.sh` file", - "Add it by the other two variables" - ] - } - ] - }, - { - "id": "345", - "title": "echo QUESTION3 variable", - "summary": "", - "content": "", - "steps": [ - { - "id": "345.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "e44827108d65c0c681a48a5d93561ac475bea276" - ] - }, - "content": "Use `echo` to print the third question after you `read` the `LOCATION`.", - "hints": [ - "Add `echo $QUESTION3` below the `read LOCATION`", - "Add it to your `questionnaire.sh` file" - ] - } - ] - }, - { - "id": "350", - "title": "read WEBSITE", - "summary": "", - "content": "", - "steps": [ - { - "id": "350.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "3d3cfa4d94744740d9052acd427615dc0dd7e362" - ] - }, - "content": "After the question you just printed, add code to read input into a variable named `WEBSITE`.", - "hints": [ - "Add `read WEBSITE` below the `echo $QUESTION3`" - ] - } - ] - }, - { - "id": "360", - "title": "echo final sentence", - "summary": "", - "content": "", - "steps": [ - { - "id": "360.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "b49d95cfbe45dcc3586d871b87413046c2eb0dc7" - ] - }, - "content": "Change the `echo` command of the response to print this sentence instead: `Hello from . I learned that your favorite coding website is !`.", - "hints": [ - "Replace the `echo Hello $NAME from $LOCATION.` with the suggested sentence", - "Use your three variables in place of ``, ``, and ``", - "The command should look like this: `echo Hello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE!`" - ] - } - ] - }, - { - "id": "363", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "363.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "f4da0edfe1e2f7d8f5348464e13e85022ffdfac8" - ] - }, - "content": "Run the script and enter values when the program is waiting. Let's see the final output.", - "hints": [ - "Run your file by executing it", - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "366", - "title": "Add line breaks around final sentence", - "summary": "", - "content": "", - "steps": [ - { - "id": "366.1", - "setup": { - "watchers": [ - "./questionnaire.sh" - ], - "commits": [ - "20bf7ee45f7e78ffaa9118e6ab29b34e4622e92d" - ] - }, - "content": "One last thing. Change that final response to print an empty line at the beginning of the sentence.", - "hints": [ - "Use `echo` with the `-e` flag and a new line (`\\n`) character like you did for the title", - "Don't forget to put the response in double quotes so it prints the empty line", - "Here's an example: `echo -e \"\\n\"`", - "Only add a new line at the beginning of the response, not the end", - "The final command should look like this: `echo \"\\nHello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE!\"`" - ] - } - ] - }, - { - "id": "370", - "title": "./questionnaire", - "summary": "", - "content": "", - "steps": [ - { - "id": "370.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "0ae1eb5b5e03a6fb715457867b6873fd06448b0d" - ] - }, - "content": "Run it one last time and enter values when it asks to see if you like how it looks.", - "hints": [ - "Run your file by executing it", - "Type `./questionnaire.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "380", - "title": "touch countdown.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "380.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "5032cb849673842d83bb8a44a8bcf9ab433b5b45" - ] - }, - "content": "It looks good. I think you are done with that script for now. The next program will be countdown timer. Use the `touch` command to create a new file named `countdown.sh` in your `project` folder.", - "hints": [ - "Type `touch countdown.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "390", - "title": "chmod +x countdown.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "390.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "113b93619636edfe59b5e197fa3ffb7d0ee38344" - ] - }, - "content": "Give your file executable permissions so you can run it like the other one. It's the `chmod` command with the `+x` flag.", - "hints": [ - "Here's an example `chmod `", - "The value for permissions you want to use is `+x`", - "You previously used `chmod +x questionnaire.sh`", - "Type `chmod +x countdown.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "400", - "title": "Add shebang", - "summary": "", - "content": "", - "steps": [ - { - "id": "400.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "c7d5cbab419f488c41a512e80c43d6a6f30317a7" - ] - }, - "content": "You want to use the `bash` interpreter again. Add a `shebang` at the top of your new file to denote that.", - "hints": [ - "A `shebang` looks like this: `#!`", - "Enter `which bash` in the terminal to see the path to `bash`", - "Look at the `shebang` in your first script to get the syntax", - "It should look like this: `#!/bin/bash`", - "Add `#!/bin/bash` at the top of your `countdown.sh` file" - ] - } - ] - }, - { - "id": "410", - "title": "Add comment", - "summary": "", - "content": "", - "steps": [ - { - "id": "410.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "0500487839a9afae97cd21861efca7ae74d50517" - ] - }, - "content": "Comments in `bash` look like this: `# `. Add a comment below the `shebang` that says `Program that counts down to zero from a given argument` so people know what it does. Note that the `shebang` is a special case and is not treated like a comment.", - "hints": [ - "Add `# Program that counts down to zero from a given argument` to your `countdown.sh` file" - ] - } - ] - }, - { - "id": "420", - "title": "Add echo $*", - "summary": "", - "content": "", - "steps": [ - { - "id": "420.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "32e1db7a1de7ce969dda2a3761c49b6072e6ba66" - ] - }, - "content": "Programs can take arguments. You can access them a few different ways with `$`. Add `echo $*` in your script to print all arguments passed to it.", - "hints": [ - "Add `echo $*` at the bottom of the `countdown.sh` file" - ] - } - ] - }, - { - "id": "425", - "title": "./countdown.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "425.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "71bb320aa891dbceb778798127ed754a3e321d4b" - ] - }, - "content": "Execute your script with `./countdown.sh`.", - "hints": [ - "Type `./countdown.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "430", - "title": "./countdown.sh arg1 arg2 arg3", - "summary": "", - "content": "", - "steps": [ - { - "id": "430.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "5fa0d0a01b7de4c295039cd1e5c272fbbc94709e" - ] - }, - "content": "Nothing was printed. Run your script again, but this time add three arguments to the command; `arg1`, `arg2`, and `arg3`. Place them after the command with a space before each one.", - "hints": [ - "Type `./countdown.sh arg1 arg2 arg3` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "440", - "title": "Change to echo $1", - "summary": "", - "content": "", - "steps": [ - { - "id": "440.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "1d94d313685fabdd8fd6b03f8059bb3b5511f70c" - ] - }, - "content": "`$*` printed all the arguments passed to your script. To access any one of them, use `$`. `arg2` could have been accessed with `$2`. Change your script to `echo` the first argument instead of all the arguments.", - "hints": [ - "Try running your script with an argument to make sure it’s giving the expected output", - "Use `echo $1` to print the second argument", - "Change `echo $*` to `echo $1` in your `countdown.sh` file" - ] - } - ] - }, - { - "id": "450", - "title": "./countdown.sh arg1 arg2 arg3", - "summary": "", - "content": "", - "steps": [ - { - "id": "450.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "e1a75faa8f53c223626f99acebf771a1c3d2242d" - ] - }, - "content": "Run your file with `./countdown.sh arg1 arg2 arg3` again.", - "hints": [ - "Type `./countdown.sh arg1 arg2 arg3` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "460", - "title": "help", - "summary": "", - "content": "", - "steps": [ - { - "id": "460.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "82eeaa9087911dc6abeabd96327f97f789edcc0f" - ] - }, - "content": "Now it just prints the first argument. Your program will accept an argument to count down from. You will test it with an `if` statement to make sure it's a positive integer. I wonder what that syntax would look like. Type `help` in the terminal to see if you can find anything.", - "hints": [ - "Type `help` in the terminal and press enter" - ] - } - ] - }, - { - "id": "470", - "title": "man if", - "summary": "", - "content": "", - "steps": [ - { - "id": "470.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "b4781ccf2840e5956f6af7ca998b6f9bcfa0b71d" - ] - }, - "content": "This is a list of built-in commands. You should look over it, some of them may look familiar. I see `echo` in there. Another one is `if`. See if you can find out more about it by checking its `man` page.", - "hints": [ - "Here's an example: `man `", - "Type `man if` in the terminal and press enter" - ] - } - ] - }, - { - "id": "480", - "title": "help if", - "summary": "", - "content": "", - "steps": [ - { - "id": "480.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "0399a64cbaf308de884e2131f7cec581a0e9e1b6" - ] - }, - "content": "I guess there isn't a `man` page for it. At the top of the `help` screen, I noticed you can use `help ` to find out more. Yet another way to find out about a command :disappointed_relieved: See if you can find out more about `if` with that method.", - "hints": [ - "Here's an example `help `", - "Type `help if` in the terminal and press enter" - ] - } - ] - }, - { - "id": "490", - "title": "Add if arg1 print true", - "summary": "", - "content": "", - "steps": [ - { - "id": "490.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "b4f678f4f04c58a3445de260caceb227b6f95a0b" - ] - }, - "content": "The syntax is at the top, not all of it is required. Here's another example:\n\n```sh\nif [[ CONDITION ]]\nthen\n STATEMENTS\nfi\n```\n\nRemove the `echo $1` in your script and add an `if` condition that checks `if [[ $1 == arg1 ]]`. In its `then` area, use `echo` to print `true` to the screen. There must be spaces on the inside of the brackets (`[[ ... ]]`) and around the operator (`==`).", - "hints": [ - "Make sure to remove the `echo $1`", - "Add the following to your `countdown.sh` file:\n```sh\nif [[ $1 == arg1 ]]\nthen\n echo true\nfi\n```" - ] - } - ] - }, - { - "id": "500", - "title": "./countdown arg1", - "summary": "", - "content": "", - "steps": [ - { - "id": "500.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "7c31293d270c9783270f699f15c46872bc23c043" - ] - }, - "content": "Notice that the end of the syntax is `fi` (`if` backwards). It should print `true` if you pass `arg1` to your script now. Run the script with `arg1` as the only argument.", - "hints": [ - "Type `./countdown.sh arg1` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "505", - "title": "./countdown !arg1", - "summary": "", - "content": "", - "steps": [ - { - "id": "505.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "2fa29a4eac4aa6548b70ab1e6067a7233068a18b" - ] - }, - "content": "The `if` condition worked, it printed `true`. Run it again with anything except `arg1` as the first argument.", - "hints": [ - "Type `./countdown.sh arg2` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "510", - "title": "Add else print false", - "summary": "", - "content": "", - "steps": [ - { - "id": "510.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "077d2e69eb61472889781a847b4daed34675d51f" - ] - }, - "content": "Nothing was printed. One of the optional parts of `if` was an `else` area. You can use it like this:\n\n```sh\nif [[ CONDITION ]]\nthen\n STATEMENTS\nelse\n STATEMENTS\nfi\n```\n\nAdd an `else` to your existing `if` condition. Use `echo` to print `false` if the condition fails.", - "hints": [ - "Your `if` should look like this:\n```sh\nif [[ $1 == arg1 ]]\nthen\n echo true\nelse\n echo false\nfi\n```" - ] - } - ] - }, - { - "id": "520", - "title": "./countdown !arg1", - "summary": "", - "content": "", - "steps": [ - { - "id": "520.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "f08cbd81b262179420fa37578545757e7e4fed59" - ] - }, - "content": "Run the script again and use anything except `arg1` as the only argument.", - "hints": [ - "Type `./countdown.sh !arg1` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Enter `cd ~/project` in the terminal to get to the project folder if you aren't there" - ] - } - ] - }, - { - "id": "530", - "title": "Change if condition -lt 5", - "summary": "", - "content": "", - "steps": [ - { - "id": "530.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "d096be1f35e2ff0b4c9c0dfbcea20ac5dc6fcca6" - ] - }, - "content": "Now it printed `false`. Your program is expecting an integer to count down from as its argument. You can compare integers inside the brackets (`[[ ... ]]`) of your `if` with `-eq` (equal), `-ne` (not equal), `-lt` (less than), `-le` (less than or equal), `-gt` (greater than), `-ge` (greater than or equal). Change your `if` condition to check if your first argument is less than `5`.", - "hints": [ - "Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-lt`)", - "Your `if` condition should look like this: `[[ $1 -lt 5 ]]`", - "The whole `if` should look like this:\n```sh\nif [[ $1 -lt 5 ]]\nthen\n echo true\nelse\n echo false\nfi\n```" - ] - } - ] - }, - { - "id": "540", - "title": "./countdown 4", - "summary": "", - "content": "", - "steps": [ - { - "id": "540.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "4706e221bf8aecdaede18b2628d1e15b3ab739e6" - ] - }, - "content": "Run the script again and use `4` as a first argument to make sure it's working.", - "hints": [ - "Type `./countdown.sh 4` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "542", - "title": "./countdown 5", - "summary": "", - "content": "", - "steps": [ - { - "id": "542.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "d45b629f2cd6537934d11e597a18b3905c7fefb9" - ] - }, - "content": "It printed `true` since your argument was less than `5`. Run it again with `5` as the argument.", - "hints": [ - "Type `./countdown.sh 5` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "544", - "title": "help", - "summary": "", - "content": "", - "steps": [ - { - "id": "544.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "08667189e830410e95089ae3c6e3fc4244c87de5" - ] - }, - "content": "As expected, that printed `false`. Take a look at that `help` menu again. I want to see if we can find out more about how these expressions work.", - "hints": [ - "Type `help` in the terminal and press enter" - ] - } - ] - }, - { - "id": "546", - "title": "help [[ expression ]]", - "summary": "", - "content": "", - "steps": [ - { - "id": "546.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "c06a25db53e789394a6ddb22c0f223c502f28764" - ] - }, - "content": "Near the top left, it says `[[ expression ]]`. Those look like the double brackets you are using. See if you can get more info about that with the `help` command like you did with `help if`.", - "hints": [ - "Here's an example: `help `", - "Type `help [[ expression ]]` or `help [[` in the terminal and press enter" - ] - } - ] - }, - { - "id": "548", - "title": "help test", - "summary": "", - "content": "", - "steps": [ - { - "id": "548.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "829f403738dee7080c0c6713a8cead655f1a4ea3" - ] - }, - "content": "It might not be a bad idea to read that. Looks like you can use some, probably familiar, things like `!`, `&&`, and `||` to compare multiple expressions. There's also `==` and `!=` operators for an individual expression. It says something about the `test` built-in command. See if you can bring up the `help` menu for that.", - "hints": [ - "View the `help` menu of the suggested command like you did for the `help if`", - "Here's an example: `help `", - "Type `help test` in the terminal and press enter" - ] - } - ] - }, - { - "id": "550", - "title": "Change if to [[ $1 -le 5 ]]", - "summary": "", - "content": "", - "steps": [ - { - "id": "550.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "bc067a2b68e76d0ed4d5a15aacf17b7590c2f6c3" - ] - }, - "content": "That's what I was looking for. At the top are some file operators. There's some string and other operators as well. You should take a look at them. Near the bottom, are the arithmetic operators you used with your `if` condition. Change the condition in your script to check if the first argument is less than or equal to `5`.", - "hints": [ - "The `if` condition should look like this: `[[ $1 -le 5 ]]`", - "Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-le`)", - "It's the `if` in your `countdown.sh` file" - ] - } - ] - }, - { - "id": "552", - "title": "./countdown 5", - "summary": "", - "content": "", - "steps": [ - { - "id": "552.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "b686a939bd425e40d9d0a653b39c3e2db7844ec3" - ] - }, - "content": "Run the script and use `5` as a first argument again.", - "hints": [ - "Type `./countdown.sh 5` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "554", - "title": "[[ 4 -le 5 ]]", - "summary": "", - "content": "", - "steps": [ - { - "id": "554.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "d4f02b901417c94206bcb71fa80fb102bb4246bb" - ] - }, - "content": "Now it prints `true`. Remember I said any command can run in the terminal or a script. Try running an expression right in the terminal by entering `[[ 4 -le 5 ]]` in it.", - "hints": [ - "Enter the suggested expression in the terminal", - "Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-le`)", - "Type `[[ 4 -le 5 ]]` in the terminal and press enter" - ] - } - ] - }, - { - "id": "556", - "title": "echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "556.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "ed94e2aff2d7efb90f27b6a985cb6562dd0ff480" - ] - }, - "content": "Nothing happened? Each command has an exit status that can be accessed with `$?`. View the exit status of the **last command** with `echo $?`.", - "hints": [ - "Type `echo $?` in the terminal and press enter", - "Your second to last command should be `[[ 4 -le 5 ]]`. So enter that before `echo $?`" - ] - } - ] - }, - { - "id": "558", - "title": "[[ 4 -ge 5 ]]", - "summary": "", - "content": "", - "steps": [ - { - "id": "558.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "257edd9f345de90e8ab18b2f4c0782aa1c73a3c5" - ] - }, - "content": "The exit status of `0` means it was true, `4` is indeed less or equal to `5`. Try it again with `[[ 4 -ge 5 ]]`.", - "hints": [ - "Enter the suggested expression in the terminal", - "Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-ge`)", - "Type `[[ 4 -ge 5 ]]` in the terminal and press enter" - ] - } - ] - }, - { - "id": "560", - "title": "echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "560.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "55ab86cb5207d4c47dd485204e36f88e6e42f527" - ] - }, - "content": "Use `echo` to view the exit status of the command you just entered.", - "hints": [ - "Type `echo $?` in the terminal and press enter", - "Your second to last command should be `[[ 4 -ge 5 ]]`. So enter that right before `echo $?`" - ] - } - ] - }, - { - "id": "562", - "title": "[[ 4 -ge 5 ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "562.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "c330e8ae81ef028e424b1300519deefdd57861f6" - ] - }, - "content": "It printed `1` this time for false. You can separate commands on a single line with `;`. Enter your last two commands on one line like this: `[[ 4 -ge 5 ]]; echo $?`. It will run the expression, then print the exit status of it since it was the last command.", - "hints": [ - "Make sure there's spaces inside the brackets (`[[ ... ]]`) and around the operator (`-ge`)", - "Type `[[ 4 -ge 5 ]]; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "564", - "title": "[[ 10 -ne 5 ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "564.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "f8d172acfa090a77f4d686f980f68eb980f2d6c3" - ] - }, - "content": "It's still false. Using the same syntax of `[[ ... ]]; echo $?`, check if `10` is not equal to `5` and print the exit status of the expression on one line.", - "hints": [ - "Check the `help test` menu to find the `not equal` operator", - "It's the `-ne` operator", - "You previously used `[[ 4 -ge 5 ]]; echo $?`", - "Make sure there's spaces inside the brackets and around the operator", - "Type `[[ 10 -ne 5 ]]; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "566", - "title": "bad_command; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "566.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "8c66e3e4082e5c8fced897708d8b0980b2ad8a9b" - ] - }, - "content": "You can think of an exit status of `0` as true. But it means that the command had zero errors. All commands have an exit status. Using the same syntax, enter `bad_command;` and check its exit status on a single line.", - "hints": [ - "The syntax looks like this: `; echo $?`", - "You previously used `[[ 10 -ne 5 ]]; echo $?`", - "Type `bad_command; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "568", - "title": "ls; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "568.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "63fc31a6ff66f209309e180cf58eb6e14bcf8076" - ] - }, - "content": "`command not found`, with an exit status of `127`. Anything but `0` means there was an error with the command. `bad_command` didn't exist. Try it again with `ls`.", - "hints": [ - "Use the same syntax you have been using", - "Here's an example `; echo $?`", - "You previously used `bad_command; echo $?`", - "Type `ls; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "570", - "title": "ls -y; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "570.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "e377095821bf677c401985c5292fc3f4f1d9ed9e" - ] - }, - "content": "The command executed as expected and there were zero errors. So it gave you an exit status of `0`. Try it again with `ls -y`.", - "hints": [ - "Use the same syntax you have been using", - "Here's an example: `; echo $?`", - "You previously used `ls; echo $?`", - "Type `ls -y; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "572", - "title": "help test", - "summary": "", - "content": "", - "steps": [ - { - "id": "572.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "c586c030659c56b99f1cad4a227e1fa264967626" - ] - }, - "content": "The `-y` flag doesn't work with `ls` so it gave you an exit status other than `0`, meaning that the command was unsuccessful. View the `help` menu of the `test` command again, I want to see what else is in that list.", - "hints": [ - "Here's an example: `help `", - "Type `help test` in the terminal and press enter" - ] - } - ] - }, - { - "id": "574", - "title": "[[ -a countdown.sh ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "574.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "fda649ff2984edc083d2dd2f4921b405fd6200c7" - ] - }, - "content": "You tried a few of the arithmetic operators, those work for integers. Try one of the file operators. The first one on the list checks if a file exists. Type `[[ -a countdown.sh ]]; echo $?` in the terminal to see if your file exists.", - "hints": [ - "Enter the suggested commands in the terminal", - "Type `[[ -a countdown.sh ]]; echo $?` in the terminal and press enter", - "Don't forget the spaces inside the brackets", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "575", - "title": "[[ -a bad_file.txt ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "575.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "eaec2237be298f4f5877c3853ae11db6be4aac64" - ] - }, - "content": "The file must exist. It's checking the folder the command is entered from. Try it again with `bad_file.txt`.", - "hints": [ - "Use the same syntax you have been using", - "Here's an example: `; echo $?`", - "You previously used `[[ -a countdown.sh ]]; echo $?`", - "Type `[[ -a bad_file.txt ]]; echo $?` in the terminal and press enter", - "Don't forget the spaces inside the brackets" - ] - } - ] - }, - { - "id": "576", - "title": "[[ -x countdown.sh ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "576.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "26e5ec03be605f844d852d8f56ddcd9b4295de13" - ] - }, - "content": "`bad_file.txt` doesn't exist. I think you're getting the hang of this. Using the same syntax, check if you have permissions to execute your `countdown.sh` file. You may want to look at that menu again.", - "hints": [ - "View the `help test` menu to find the file operator for checking if a file is executable by you", - "It's the `-x` operator", - "The syntax you want is `[[ ... ]]; echo $?` to see if the condition is true", - "Don't forget the spaces inside the brackets", - "Type `[[ -x countdown.sh ]]; echo $?` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "582", - "title": "help [[ expression ]]", - "summary": "", - "content": "", - "steps": [ - { - "id": "582.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "163f74988205a92952f1b196e3b20daddd2ad5d1" - ] - }, - "content": "You played around with a number of the expressions. View the `help [[ expression ]]` menu again that you looked at before to see a few more options. You can view the menu with just `help [[`.", - "hints": [ - "Enter the suggested command in the terminal", - "Type `help [[ expression ]]` or `help [[` in the terminal and press enter" - ] - } - ] - }, - { - "id": "584", - "title": "[[ -x countdown.sh && 5 -le 4 ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "584.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "3d3c2892f160c8f51590b1beb629316c81736c13" - ] - }, - "content": "As I mentioned before, you can test multiple expressions with `&&` and `||`. Enter `[[ -x countdown.sh && 5 -le 4 ]]; echo $?` in the terminal to test the file is executable by you **and** five is less than or equal to four.", - "hints": [ - "Enter the suggested command in the terminal", - "Type `[[ -x countdown.sh && 5 -le 4 ]]; echo $?` in the terminal and press enter", - "Make sure there's spaces around the brackets and all the operators" - ] - } - ] - }, - { - "id": "586", - "title": "[[ -x countdown.sh || 5 -le 4 ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "586.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "3d966920ad3e23d5d30ea807ef7520f12498e6bf" - ] - }, - "content": "Both conditions weren't true, so the exit status was `1` for `false`. Try testing the same two conditions with the `or` operator.", - "hints": [ - "Modify this `[[ -x countdown.sh && 5 -le 4 ]]; echo $?` with the suggestion and enter it in the terminal", - "Use the `or` operator from the `help [[ expression ]]` menu", - "The `or` operator is `||`", - "Type `[[ -x countdown.sh || 5 -le 4 ]]; echo $?` in the terminal and press enter", - "Make sure there's spaces around the brackets and all the operators" - ] - } - ] - }, - { - "id": "588", - "title": "Change if to [[ $1 -gt 0 ]]", - "summary": "", - "content": "", - "steps": [ - { - "id": "588.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "22640e91bb5ec9c298e7cb6cc0693ef795dbeb1d" - ] - }, - "content": "One of the conditions was true so it printed `0`. I think that's enough of a detour. Back in your script, change the `if` condition to check if the first argument is **greater than zero** so you can be sure it's something you can count down from.", - "hints": [ - "Use the `-gt` operator in your `if` condition", - "The `if` condition should look like this: `[[ $1 -gt 0 ]]`", - "It's in the `countdown.sh` file" - ] - } - ] - }, - { - "id": "590", - "title": "Change if !# message", - "summary": "", - "content": "", - "steps": [ - { - "id": "590.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "c2630e5685a4f1b2ee241041df7a7fd1f075a0b6" - ] - }, - "content": "The condition you added checks if a positive integer was passed as an argument to the script and executes the `then` area. Change the existing `echo` command to print `Include a positive integer as the first argument.` if a positive integer is not used.", - "hints": [ - "The `else` area should look like this: `echo Include a positive integer as the first argument.`", - "The whole `if` condition should look like this:\n```sh\nif [[ $1 -gt 0 ]]\nthen\n echo true\nelse\n echo Include a positive integer as the first argument.\nfi\n```" - ] - } - ] - }, - { - "id": "600", - "title": "./countdown 1", - "summary": "", - "content": "", - "steps": [ - { - "id": "600.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "e2e2e7be210c64523265a3ee75c2ee87227a219f" - ] - }, - "content": "Run your script and use `1` as a first argument to make sure the condition is working.", - "hints": [ - "Type `./countdown.sh 1` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "610", - "title": "./countdown 0", - "summary": "", - "content": "", - "steps": [ - { - "id": "610.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "601e8acaa39e0975040dca2272ef1b07fe26bc3a" - ] - }, - "content": "Run it again and use anything but a positive integer as the only argument.", - "hints": [ - "Type `./countdown.sh 0` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "615", - "title": "help", - "summary": "", - "content": "", - "steps": [ - { - "id": "615.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "63b26df4d1981b82aec6b472525cb3f6439d8929" - ] - }, - "content": "Looks like your `if` condition is working. Next, you want to loop over the argument and count down to zero from it. Check the `help` menu to see if there's any commands for this.", - "hints": [ - "Enter the suggested command in the terminal", - "Type `help` in the terminal and press enter" - ] - } - ] - }, - { - "id": "620", - "title": "Add for loop for countdown", - "summary": "", - "content": "", - "steps": [ - { - "id": "620.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "153928d689ffe4dad123e110a15c58fb9d737717" - ] - }, - "content": "There's two `for` loops in there, you want the second one. Here's an example:\n\n```sh\nfor (( i = 10; i > 0; i-- ))\ndo\n echo $i\ndone\n```\n\nThe above creates a variable (`i = 10`), then prints it, subtracts one, and repeats until `i` is not greater than `0`. So it prints `10` through `1`. In the `then` area of your condition, replace the `echo` with a `for` loop that prints from the argument (`$1`) to `1`.", - "hints": [ - "Set the variable to the value of your argument (`$1`) initially", - "Use the same syntax as the example except change the `10` to `$1`", - "Don't include any extra commands in the `then` area", - "Your `then` area should look like this:\n```sh\nfor (( i = $1; i > 0; i-- ))\ndo\n echo $i\ndone\n```", - "The whole `if` condition should look like this:\n```sh\nif [[ $1 -gt 0 ]]\nthen\n for (( i = $1; i > 0; i-- ))\n do\n echo $i\n done\nelse\n echo Include a positive integer as the first argument.\nfi\n```" - ] - } - ] - }, - { - "id": "630", - "title": "./countdown 10", - "summary": "", - "content": "", - "steps": [ - { - "id": "630.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "06895b6ab56b83650651c8efcb03dd67930bba1f" - ] - }, - "content": "Run your script and use `10` as the first argument.", - "hints": [ - "Type `./countdown.sh 10` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "640", - "title": "help", - "summary": "", - "content": "", - "steps": [ - { - "id": "640.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "2fbbdda735d2d4082d5cee253d36f228472f10ec" - ] - }, - "content": "It works :smile: But I want it to pause for one second between each number. Check the `help` menu again to see if there's any commands that might help.", - "hints": [ - "Enter the suggested command in the terminal", - "Type `help` in the terminal and press enter" - ] - } - ] - }, - { - "id": "650", - "title": "ls /", - "summary": "", - "content": "", - "steps": [ - { - "id": "650.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "4deeb938ad53ac2ffcd2cff5eaf5405244b183bc" - ] - }, - "content": "I'm not seeing the command I was hoping to. These are the built-in commands, where are the rest? Type `ls /` to look around.", - "hints": [ - "Enter the suggested command in the terminal", - "Type `ls /` in the terminal and press enter" - ] - } - ] - }, - { - "id": "660", - "title": "ls /bin", - "summary": "", - "content": "", - "steps": [ - { - "id": "660.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "966e3045d6e18ce9af6770b0d91e7ad944177b04" - ] - }, - "content": "The `/` listed what's in the root of the file system. I see a `bin` folder, `bin` stands for `binary`. View what's in it with `ls /bin`.", - "hints": [ - "Enter the suggested command in the terminal", - "Type `ls /bin` in the terminal and press enter" - ] - } - ] - }, - { - "id": "670", - "title": "man sleep", - "summary": "", - "content": "", - "steps": [ - { - "id": "670.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "0982916478e22aae338712d442262654e707bb41" - ] - }, - "content": "These are some non built-in commands. There's quite a few that should look familiar. One is `bash`, that's the one you used for the `shebang` in your scripts. I see one called `sleep`. View the manual of it.", - "hints": [ - "View a manual with the `man` command", - "Here's an example: `man `", - "Enter `man sleep` in the terminal", - "Press enter until you have seen the whole menu" - ] - } - ] - }, - { - "id": "675", - "title": "sleep 3", - "summary": "", - "content": "", - "steps": [ - { - "id": "675.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "270e7b2e46e772a1e638f96506afd2bea6af2515" - ] - }, - "content": "At the top, it says you can pause execution for a number of seconds. Try it out by entering `sleep 3` in the terminal.", - "hints": [ - "Enter the suggested command in the terminal", - "Enter `sleep 3` in the terminal" - ] - } - ] - }, - { - "id": "680", - "title": "Add sleep to for loop", - "summary": "", - "content": "", - "steps": [ - { - "id": "680.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "8e337b8eea97cd1853de8ce1a3ad74796cd26237" - ] - }, - "content": "That should work. In your `for` loop, use `sleep` to make the script pause for `1` second after each number is printed.", - "hints": [ - "Add the suggestion to the `for` loop in your `countdown.sh` file", - "Add `sleep 1` after you print `i` in your `for` loop" - ] - } - ] - }, - { - "id": "690", - "title": "./countdown 3", - "summary": "", - "content": "", - "steps": [ - { - "id": "690.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "caeacb82ada82d86f42e27fe3b165f64ff2a436f" - ] - }, - "content": "Run your script and use `3` as the first argument.", - "hints": [ - "Type `./countdown.sh 3` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "692", - "title": "Change to >=", - "summary": "", - "content": "", - "steps": [ - { - "id": "692.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "06c6d8ebbb5264303f833c6214147e02c190af3c" - ] - }, - "content": "Awesome. Except it should print `0` instead of stopping at `1`. Change the condition in your for loop so that it checks for `i >= 0`.", - "hints": [ - "Your `for` loop should look like this:\n```sh\nfor (( i = $1; i >= 0; i-- ))\ndo\n echo $i\n sleep 1\ndone\n```", - "The whole `if` condition should look like this:\n```sh\nif [[ $1 -gt 0 ]]\nthen\n for (( i = $1; i >= 0; i-- ))\n do\n echo $i\n sleep 1\n done\nelse\n echo Include a positive integer as the first argument.\nfi\n```" - ] - } - ] - }, - { - "id": "694", - "title": "./countdown 3", - "summary": "", - "content": "", - "steps": [ - { - "id": "694.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "95ada381bd7ff967d1151b087f5d3feded386f37" - ] - }, - "content": "Run your script with `3` as the argument again.", - "hints": [ - "Type `./countdown.sh 3` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "696", - "title": "Add echo -e \"title\"", - "summary": "", - "content": "", - "steps": [ - { - "id": "696.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "d2af9b9ed136a65f744fd37f82b434ba320b4307" - ] - }, - "content": "Excellent. I want it to display a title like the other script. Make it so that it prints `~~ Countdown Timer ~~` before anything else. Include a new line before and after it like you did for the other title.", - "hints": [ - "Use the `echo` command with the `-e` flag and the new line (`\\n`) character", - "Make sure to place the message in double quotes", - "Here's an example: `echo -e \"\\n\\n\"`", - "Add `echo -e \"\\n~~ Countdown Timer ~~\\n\"` to the `countdown.sh` file after the comment" - ] - } - ] - }, - { - "id": "698", - "title": "./countdown 1", - "summary": "", - "content": "", - "steps": [ - { - "id": "698.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "b83ee9759fb2ebe27a3480dceaff3aac8569923a" - ] - }, - "content": "Run your script and use `1` as the first argument again to see the title.", - "hints": [ - "Type `./countdown.sh 1` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "700", - "title": "Add Multiline comment", - "summary": "", - "content": "", - "steps": [ - { - "id": "700.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "87f15f0086a2fce2eeaacb3b63a8978bb78d8030" - ] - }, - "content": "This is fun. You can create a multiline comment like this:\n\n```sh\n: '\n comment here\n more comment here\n'\n```\n\nComment out your `for` loop with a multiline comment. I want to try and do this with a `while` loop.", - "hints": [ - "Comment out the `for` loop in your `countdown.sh` file with a multiline comment", - "Make sure there's a space between the `:` and `'`", - "Your `for` loop should look like this:\n```sh\n: '\nfor (( i = $1; i >= 0; i-- ))\ndo\n echo $i\n sleep 1\ndone\n'\n```" - ] - } - ] - }, - { - "id": "710", - "title": "help while", - "summary": "", - "content": "", - "steps": [ - { - "id": "710.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "4599e7a4a9a85c6fe9461b7c6aea228c5d63d277" - ] - }, - "content": "View the `help` menu for the `while` command to see if you can find anything.", - "hints": [ - "Here's an example: `help `", - "Enter `help while` in the terminal" - ] - } - ] - }, - { - "id": "730", - "title": "Add I variable", - "summary": "", - "content": "", - "steps": [ - { - "id": "730.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "9315b578a4dbe0083d390df034f752fe1eb032a9" - ] - }, - "content": "It shows the syntax. First, below your comment, create a variable named `I` that is set to the value of your first argument. It will start there, then on each iteration of the `while` loop you can subtract `1` from it until it reaches `0`.", - "hints": [ - "Add `I=$1` in the `then` area of your `if` statements below the multi-line comment", - "The `then` area should look like this:\n```sh\n: '\nfor (( i = $1; i >= 0; i-- ))\ndo\n echo $i\n sleep 1\ndone\n'\nI=$1\n```" - ] - } - ] - }, - { - "id": "740", - "title": "Add while loop", - "summary": "", - "content": "", - "steps": [ - { - "id": "740.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "062b65a7f785bf25323de3d615ebace691d51461" - ] - }, - "content": "The menu showed that you can make a `while` loop like this:\n\n```sh\nwhile [[ CONDITION ]]\ndo\n STATEMENTS\ndone\n```\n\nAdd a `while` loop below the `I` variable you made. The condition should be `$I -ge 0` and you should `echo` the `I` variable in the `do` statements.", - "hints": [ - "Your `while` loop should look like this:\n```sh\nwhile [[ $I -ge 0 ]]\ndo\n echo $I\ndone\n```" - ] - } - ] - }, - { - "id": "750", - "title": "Add (( I-- ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "750.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "67371e0bce2df565e43da71d7a6c92fa6773d605" - ] - }, - "content": "`I` never changes here, so you would have an infinite loop. You can subtract one from `I` with double parenthesis (`((...))`) and the `--` operator. In your while loop, add `(( I-- ))` after you `echo $I` to subtract one from `I` on each pass.", - "hints": [ - "Your `while` loop should look like this:\n```sh\nwhile [[ $I -ge 0 ]]\ndo\n echo $I\n (( I-- ))\ndone\n```" - ] - } - ] - }, - { - "id": "760", - "title": "Add sleep 1", - "summary": "", - "content": "", - "steps": [ - { - "id": "760.1", - "setup": { - "watchers": [ - "./countdown.sh" - ], - "commits": [ - "2fe0dd3702f25f06277e9442bdeba653b869eb5f" - ] - }, - "content": "The last thing to do is to add the `sleep` again. In your `while` loop, add the code to make it `sleep` for `1` second. Add the code after the `(( I-- ))`.", - "hints": [ - "Use the same `sleep 1` you used in the `for` loop", - "Your `while` loop should look like this:\n```sh\nwhile [[ $I -ge 0 ]]\ndo\n echo $I\n (( I-- ))\n sleep 1\ndone\n```" - ] - } - ] - }, - { - "id": "770", - "title": "./countdown.sh 5", - "summary": "", - "content": "", - "steps": [ - { - "id": "770.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "21977228375865c92b1e94dc37007afe0c7d6af8" - ] - }, - "content": "Run the script and use 5 as the first argument.", - "hints": [ - "Type `./countdown.sh 5` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "780", - "title": "touch bingo.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "780.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "63bd37392b44ad4be26ba2a1523b2b539eb100a5" - ] - }, - "content": "I think the countdown timer is finished. Feel free to try it with some other arguments. The next one is a bingo number generator. Use `touch` to create `bingo.sh` in the same folder as the others.", - "hints": [ - "Type `touch bingo.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "790", - "title": "chmod +x bingo.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "790.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "6151a29d58e2774c504e231e8cae4a1a91cfc874" - ] - }, - "content": "Give your file executable permissions like you did for the other two.", - "hints": [ - "Use the `chmod` command with the `+x` flag", - "Here's an example `chmod `", - "You previously used `chmod +x countdown.sh`", - "Type `chmod +x bingo.sh` in the terminal and press enter" - ] - } - ] - }, - { - "id": "800", - "title": "Add shebang", - "summary": "", - "content": "", - "steps": [ - { - "id": "800.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "0fbdb1bb455d10df9a4ebe2b64ba21cd4973b4ca" - ] - }, - "content": "Add a `shebang` at the top of your new script. It should use `bash` again like other two.", - "hints": [ - "A `shebang` looks like this: `#!`", - "Enter `which bash` in the terminal to see the path to `bash`", - "Look at the `shebang` in one of your other scripts to get the syntax", - "It should look like this: `#!/bin/bash`", - "Add `#!/bin/bash` at the top of your `bingo.sh` file" - ] - } - ] - }, - { - "id": "810", - "title": "Add comment", - "summary": "", - "content": "", - "steps": [ - { - "id": "810.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "b43741774376fc6a74bbd3f339293e7802e06121" - ] - }, - "content": "Add a comment below the `shebang` that says, `Bingo Number Generator`.", - "hints": [ - "Comments look like this: `# `", - "Add `#Bingo Number Generator` below the `shebang`", - "Capitalization matters" - ] - } - ] - }, - { - "id": "815", - "title": "Add echo -e \"title\"", - "summary": "", - "content": "", - "steps": [ - { - "id": "815.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "dd08de0c34a05bf03dabd2fe8928caed4ec60366" - ] - }, - "content": "Before I forget, use a single `echo` command to print a title for this program. It should say `~~ Bingo Number Generator ~~` with an empty line before and after it.", - "hints": [ - "Use the `echo` command with the `-e` flag and the new line (`\\n`) character", - "Don't forget the double quotes when using a new line character", - "Take a look at one of the title's from a previous file for a hint", - "Here's an example: `echo -e \"\\n\\n\"`", - "You previously used `echo -e \"\\n~~ Countdown Timer ~~\\n\"`", - "Add `echo -e \"\\n~~ Bingo Number Generator ~~\\n\"` below the comment of your `bingo.sh` file" - ] - } - ] - }, - { - "id": "817", - "title": "Add NUMBER=5 variable", - "summary": "", - "content": "", - "steps": [ - { - "id": "817.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "4205be99b9b99e39d4aa59626de92ab354e903a4" - ] - }, - "content": "In your script, create a `NUMBER` variable that equals `5`.", - "hints": [ - "Here's an example: `VARIABLE_NAME=VALUE`", - "Add `NUMBER=5` to the bottom of your `bingo.sh` file" - ] - } - ] - }, - { - "id": "818", - "title": "echo $NUMBER", - "summary": "", - "content": "", - "steps": [ - { - "id": "818.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "8de808502afb1077fa7eacf13d884fa3d4ce4bd3" - ] - }, - "content": "Below your new variable, use `echo` to print it to the screen.", - "hints": [ - "Here's an example: `echo $`", - "Use `NUMBER` in place of ``", - "Add `echo $NUMBER` at the bottom of your `bingo.sh` file" - ] - } - ] - }, - { - "id": "819", - "title": "./bingo.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "819.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "5ded15186d851d102bed32079e4faf5f360de83c" - ] - }, - "content": "Run the script by executing it.", - "hints": [ - "Type `./bingo.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "820", - "title": "printenv", - "summary": "", - "content": "", - "steps": [ - { - "id": "820.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "fe997bdd726486d4ef3dfb39e0b79044c0e50c52" - ] - }, - "content": "The numbers in bingo go up to 75, each number has a letter from the word `bingo` associated with it. You will need to randomly generate a number between 1 and 75. Bash may have something that can help you here. A shell comes with environment variables. View them by entering `printenv` in the terminal.", - "hints": [ - "Type `printenv` in the terminal and press enter" - ] - } - ] - }, - { - "id": "822", - "title": "echo $LANG", - "summary": "", - "content": "", - "steps": [ - { - "id": "822.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "8820243355ad8a1fd92d879669abe1bc92a93a6c" - ] - }, - "content": "These are all environment variables, they are predefined and loaded with each shell. Most of them aren’t very relevant, but it’s nice to know they’re there. One of them is `LANG`. Use `echo` to print it in the terminal.", - "hints": [ - "Here's an example: `echo $`", - "Type `echo $LANG` in the terminal and press enter" - ] - } - ] - }, - { - "id": "824", - "title": "declare -p", - "summary": "", - "content": "", - "steps": [ - { - "id": "824.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "161835a7c5d0ca9af25b5e1435d2717d04d01b5b" - ] - }, - "content": "View all variables in the shell with `declare -p`. `-p` stands for `print`", - "hints": [ - "Type `declare -p` in the terminal and press enter" - ] - } - ] - }, - { - "id": "826", - "title": "echo $RANDOM", - "summary": "", - "content": "", - "steps": [ - { - "id": "826.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "850aba902019cf443232dd772113454fcf192991" - ] - }, - "content": "This list includes all the environment variables, and any others that may have been created in the current shell. There's one named `RANDOM`. Use `echo` to print it in the terminal.", - "hints": [ - "Here's an example: `echo $`", - "Type `echo $RANDOM` in the terminal and press enter" - ] - } - ] - }, - { - "id": "828", - "title": "Change to NUMBER=$RANDOM", - "summary": "", - "content": "", - "steps": [ - { - "id": "828.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "6f6ed3f4a49a45c0d6b32dfa85d321578de9a81f" - ] - }, - "content": "Back in your script, use the `RANDOM` variable to set `NUMBER` to a random number instead of `5`.", - "hints": [ - "Change `NUMBER=5` to `NUMBER=$RANDOM`" - ] - } - ] - }, - { - "id": "830", - "title": "./bingo.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "830.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "4c91112db14750f8befec9a5d39f58809f17efa0" - ] - }, - "content": "Run the script a few times in a row to make sure it's working.", - "hints": [ - "Type `./bingo.sh` in the terminal and press enter two times in a row", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "835", - "title": "Change to NUMBER=$RANDOM%75", - "summary": "", - "content": "", - "steps": [ - { - "id": "835.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "2771e94a66c89a972fbbdc899e7d1b9d72b9eb67" - ] - }, - "content": "The `RANDOM` variable will generate a random number between 0 and 32767. You can use the `modulus` operator to make it in the range you want. In your script, change the `NUMBER` variable to `$RANDOM%75`.", - "hints": [ - "Change `NUMBER=$RANDOM` to `NUMBER=$RANDOM%75`" - ] - } - ] - }, - { - "id": "840", - "title": "./bingo.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "840.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "44f4eb65480138164cdf2a29455b87942f268801" - ] - }, - "content": "Run the script again.", - "hints": [ - "Type `./bingo.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "881", - "title": "I=0", - "summary": "", - "content": "", - "steps": [ - { - "id": "881.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "6283e4deccce80d243265e0de666dc964accb096" - ] - }, - "content": "Bash sees everything as a string so it just printed the `%75` part literally. In the terminal, create an `I` variable equal to `0` (zero), so you can play with it and figure out how to do some calculations.", - "hints": [ - "Type `I=0` in the terminal and press enter" - ] - } - ] - }, - { - "id": "884", - "title": "echo $I", - "summary": "", - "content": "", - "steps": [ - { - "id": "884.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "488f91ab385bcfc1963698db1e13a3e84002a4e0" - ] - }, - "content": "In the terminal, use `echo` to print your new variable.", - "hints": [ - "Here's an example: `echo $`", - "Type `echo $I` in the terminal and press enter" - ] - } - ] - }, - { - "id": "887", - "title": "(( I++ ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "887.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "dac2cfacde326c2dd97336c3dff0c9d6ff10bb76" - ] - }, - "content": "I noticed that you used double parenthesis in the `while` loop of your countdown timer to subtract one from `I`. Type `(( I++ ))` in the terminal to see if anything happens.", - "hints": [ - "Type `(( I++ ))` in the terminal and press enter" - ] - } - ] - }, - { - "id": "890", - "title": "echo $I", - "summary": "", - "content": "", - "steps": [ - { - "id": "890.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "442feb2fe71b44fff9ebd1f364c7f563bdbe11f3" - ] - }, - "content": "There was no output. Use `echo` to print `I` in the terminal again.", - "hints": [ - "Type `echo $I` in the terminal and press enter" - ] - } - ] - }, - { - "id": "891", - "title": "help let", - "summary": "", - "content": "", - "steps": [ - { - "id": "891.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "f9d85ebbfc76781810adae611c06841ee59391a0" - ] - }, - "content": "The double parenthesis performed the calculation, changing the value of `I` from `0` to `1`. Enter `help let` in the terminal to see the operators you can use with the double parenthesis.", - "hints": [ - "Type `help let` in the terminal and press enter" - ] - } - ] - }, - { - "id": "893", - "title": "(( I += 10 ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "893.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "b3b079b976139e42d6fcbf686037ad70cccb3f5b" - ] - }, - "content": "You used several of these now, including in the `for` loop from the countdown timer. Enter `(( I += 10 ))` in the terminal to increment `I` by `10`. Note that you don't need to prepend variables with `$` inside these parenthesis.", - "hints": [ - "Type `(( I += 10 ))` in the terminal and press enter" - ] - } - ] - }, - { - "id": "896", - "title": "echo $I", - "summary": "", - "content": "", - "steps": [ - { - "id": "896.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "11f648d986767bbf9db1936508987f760d761df5" - ] - }, - "content": "Use `echo` to print your `I` variable again.", - "hints": [ - "Type `echo $I` in the terminal and press enter." - ] - } - ] - }, - { - "id": "897", - "title": "$(( I + 4 ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "897.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "9db7402e34a7c0d3a739a661fce15dd8e2695a3c" - ] - }, - "content": "It should have printed `11` for the value of `I`. Using the double parenthesis like you have been is good for changing variable values or making comparisons. It makes the calculation in place and provides no output. If you want to make a calculation and do something with the result, add a `$` in front like this: `$(( ... ))`. Type `$(( I + 4 ))` in the terminal to see what happens.", - "hints": [ - "If it didn't print `11` for `I`, enter `I=11` to set it to `11`", - "Type `$(( I + 4 ))` in the terminal and press enter" - ] - } - ] - }, - { - "id": "899", - "title": "echo $(( I + 4 ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "899.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "5bca8205c10de727ccb9f948d101b65085ef06c4" - ] - }, - "content": "It should say, `bash: 15: command not found`. It replaced the command with the result of the calculation. Effectively, trying to run `15` as a command. Enter the same command, but put `echo` in front of it. The command was `$(( I + 4 ))`", - "hints": [ - "Type `echo $(( I + 4 ))` in the terminal and press enter" - ] - } - ] - }, - { - "id": "902", - "title": "echo $I", - "summary": "", - "content": "", - "steps": [ - { - "id": "902.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "ad012e0eb5dabae4827fe8eaa3a24559e70dd432" - ] - }, - "content": "Again, it replaced the calculation with the result. So it was basically the same as if you entered `echo 15`. Use `echo` to print `I` to the screen again.", - "hints": [ - "Type `echo $I` in the terminal and press enter" - ] - } - ] - }, - { - "id": "905", - "title": "J=$(( I - 6 ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "905.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "0b819edbbee7321be24d9154f417ba6d7ecd9e3d" - ] - }, - "content": "It should still have printed `11` for `I`. See the hints if it didn't. These double parenthesis with a `$` are how you can assign a variable to some calculation. In the terminal, create a `J` variable, and use the `$(( ... ))` syntax to set its value to `I - 6`.", - "hints": [ - "If it didn't print `11` for `I`, enter `I=11` to set it to `11`", - "Type `J=$(( I - 6 ))` in the terminal and press enter" - ] - } - ] - }, - { - "id": "908", - "title": "echo $J", - "summary": "", - "content": "", - "steps": [ - { - "id": "908.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "dd425c2afee492516d0070525d328a53021c642a" - ] - }, - "content": "Use `echo` to print `J`.", - "hints": [ - "Here's an example: `echo $`", - "Type `echo $J` in the terminal and press enter" - ] - } - ] - }, - { - "id": "911", - "title": "echo $(( J * 5 + 25 ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "911.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "88fdb9cfc32a35d91992bf0513d56f535e21c9db" - ] - }, - "content": "`J` should equal `5`. For some more practice, use `echo` to print the value `J * 5 + 25`.", - "hints": [ - "Type `echo $(( J * 5 + 25 ))` in the terminal and press enter" - ] - } - ] - }, - { - "id": "912", - "title": "echo $J", - "summary": "", - "content": "", - "steps": [ - { - "id": "912.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "2afb433302f7e0bf44bf1e197b6256ee7feecd74" - ] - }, - "content": "It should have printed `50`. Print `J` with `echo` again.", - "hints": [ - "Here's an example: `echo $`", - "Type `echo $J` in the terminal and press enter" - ] - } - ] - }, - { - "id": "913", - "title": "declare -p", - "summary": "", - "content": "", - "steps": [ - { - "id": "913.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "a05d0b6b4bc0ad590ac8edbb4602b69214050691" - ] - }, - "content": "So, as a reminder, `(( ... ))` will perform a calculation or operation and output nothing. `$(( ... ))` will replace the calculation with the result of it. You made a few variables in this shell, view them with `declare -p`.", - "hints": [ - "Type `declare -p` in the terminal and press enter" - ] - } - ] - }, - { - "id": "914", - "title": "declare -p J", - "summary": "", - "content": "", - "steps": [ - { - "id": "914.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "b51bfc19e11bd22b9881944f8e9932289a68f263" - ] - }, - "content": "`declare` can be used to create variables, but you are just going to use it to view them for now. If you scroll up a little, you should find your `I` and `J` variables in there. View `J` with `declare -p J`.", - "hints": [ - "Type `declare -p J` in the terminal and press enter" - ] - } - ] - }, - { - "id": "916", - "title": "declare -p RANDOM", - "summary": "", - "content": "", - "steps": [ - { - "id": "916.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "cb74d3bebe8f7340de49c72efc41f43f9969bc23" - ] - }, - "content": "I saw `RANDOM` in that list, too. View it with `declare -p ` like you did for `J`.", - "hints": [ - "Type `declare -p RANDOM` in the terminal and press enter" - ] - } - ] - }, - { - "id": "918", - "title": "echo $(( RANDOM % 75 ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "918.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "a647a1019dcf87cfd6df4c2c537011011c194737" - ] - }, - "content": "Okay, I think I finally know how to get the random number for the Bingo Number Generator. Use `echo` and `RANDOM % 75` to print a random number in the terminal.", - "hints": [ - "Use the `$(( ... ))` syntax to calculate the random number", - "Here's an example: `echo $(( ))`", - "Type `echo $(( RANDOM % 75 ))` in the terminal and press enter" - ] - } - ] - }, - { - "id": "920", - "title": "echo $(( RANDOM % 75 + 1 ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "920.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "72de400421fcc8783821fc8b65f0fe028f4d1f42" - ] - }, - "content": "One tiny problem, that calculation will give a number between 0 and 74. Enter the same command in the terminal, but add `1` to the calculation to get a random number between 1 and 75.", - "hints": [ - "Type `echo $(( RANDOM % 75 + 1 ))` in the terminal and press enter" - ] - } - ] - }, - { - "id": "928", - "title": "Set NUMBER=$(( RANDOM % 75 + 1))", - "summary": "", - "content": "", - "steps": [ - { - "id": "928.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "f32145cc8853348b8a838881078d57922dd1ee8d" - ] - }, - "content": "Back in your `bingo.sh` script, change the `NUMBER` variable so that it starts as a random number between 1 and 75 using the syntax you have been practicing.", - "hints": [ - "Change the `NUMBER` variable to the result of the calculation `RANDOM % 75 + 1`", - "Use the `$(( ... ))` syntax to make the calculation", - "It should look like this: `NUMBER=$(( RANDOM % 75 + 1 ))`" - ] - } - ] - }, - { - "id": "930", - "title": "run ./bingo.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "930.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "fea437ad85a8ab3c71abd2cafc003d42a66067c0" - ] - }, - "content": "Run your script a few times in a row to make sure it's working.", - "hints": [ - "Type `./bingo.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Run it at least two times in a row" - ] - } - ] - }, - { - "id": "940", - "title": "Add TEXT variable", - "summary": "", - "content": "", - "steps": [ - { - "id": "940.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "6b44b7e719cdac71644faf871f71de8cd7b7cdb8" - ] - }, - "content": "Next, create a `TEXT` variable and set the value to `\"The next number is, \"`. When the script is finished, the output will be something like `The next number is B:15`.", - "hints": [ - "Make sure there's a space after the comma", - "Add `TEXT=\"The next number is, \"` to the `bingo.sh` file" - ] - } - ] - }, - { - "id": "945", - "title": "help let", - "summary": "", - "content": "", - "steps": [ - { - "id": "945.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "e2284c78eed3b83639d00cf6fcffbfc91ce5483f" - ] - }, - "content": "The letter that goes with the random number depends on what the number is. If it's 15 or less, it will be a `B`. I saw some comparisons in the `help let` menu, take a look at it again.", - "hints": [ - "Type `help let` in the terminal and press enter" - ] - } - ] - }, - { - "id": "950", - "title": "Add first if <= 15", - "summary": "", - "content": "", - "steps": [ - { - "id": "950.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "904f5a419281ba14098c38e5c06942b3259043df" - ] - }, - "content": "You used the double square brackets with your `if` statement in the last program, but you can use the double parenthesis with these operators as well. In your script, create an `if` statement that uses double parenthesis for the condition. Check if the number variable is less than or equal to 15. If it is, use your two variables to print `The next number is, B:`.", - "hints": [ - "Make sure you only have two `echo` statements in your script, the title being one of them", - "Here's an example of how your `if` statement should look:\n```sh\nif (( CONDITION ))\nthen\n STATEMENTS\nfi\n```", - "The condition you want is `(( NUMBER <= 15 ))`", - "In the statements area, use `echo` and your two variables to print `The next number is, B:`", - "The statements area should look like this: `echo $TEXT B:$NUMBER`", - "The whole `if` statement should look like this:\n```sh\nif (( NUMBER <= 15 ))\nthen\n echo $TEXT B:$NUMBER\nfi\n```" - ] - } - ] - }, - { - "id": "960", - "title": "Add elif -le 30", - "summary": "", - "content": "", - "steps": [ - { - "id": "960.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "c12ab6f08ab57c445b13b525a04797673bf86181" - ] - }, - "content": "`if` statements can have an \"else if\" area like this:\n```sh\nif (( CONDITION ))\nthen\n STATEMENTS\nelif [[ CONDITION ]]\nthen\n STATEMENTS\nfi\n```\n\nUsing the double square brackets this time, add an `elif` condition that checks if the number variable is less than or equal to `30`. If it is, use your two variables again to print `The next number is, I:`", - "hints": [ - "View the `help test` menu to see the operators you can use with the double square brackets", - "The condition you want is `[[ $NUMBER -le 30 ]]`. Don't forget the `$`", - "In the statements area, use `echo` and your two variables to print `The next number is, I:`", - "The statements area should look like this: `echo $TEXT I:$NUMBER`", - "The `elif` area should look like this:\n```sh\nelif [[ $NUMBER -le 30 ]]\nthen\n echo $TEXT I:$NUMBER\nfi\n```", - "The whole `if` statement should look like this:\n```sh\nif (( NUMBER <= 15 ))\nthen\n echo $TEXT B:$NUMBER\nelif [[ $NUMBER -le 30 ]]\nthen\n echo $TEXT I:$NUMBER\nfi\n```" - ] - } - ] - }, - { - "id": "970", - "title": "Add elif < 46", - "summary": "", - "content": "", - "steps": [ - { - "id": "970.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "154979ffadbce61cc7e66f9fe01f7f915f424f0d" - ] - }, - "content": "You can add as many `elif` sections to an `if` statement as you want. Add another `elif`, below the last, one that uses the double parenthesis to check if the number variable is less than 46. If it is, use your two variables to print `The next number is, N:`", - "hints": [ - "View the `help let` menu to see the operators you can use with the double parenthesis", - "The operator you want it `<`", - "You can add another `elif` like this:\n```sh\nif CONDITION\nthen\n STATEMENTS\nelif CONDITION\nthen\n STATEMENTS\nelif CONDITION\nthen\n STATEMENTS\nfi\n```", - "The condition you want is `(( NUMBER < 46 ))`", - "In the statements area, use `echo` and your two variables to print `The next number is, N:`", - "The statements area should look like this: `echo $TEXT N:$NUMBER`", - "This `elif` area should look like this:\n```sh\nelif (( NUMBER < 46 ))\nthen\n echo $TEXT N:$NUMBER\nfi\n```", - "The whole `if` statement should look like this:\n```sh\nif (( NUMBER <= 15 ))\nthen\n echo $TEXT B:$NUMBER\nelif [[ $NUMBER -le 30 ]]\nthen\n echo $TEXT I:$NUMBER\nelif (( NUMBER < 46 ))\nthen\n echo $TEXT N:$NUMBER\nfi\n```" - ] - } - ] - }, - { - "id": "980", - "title": "Add elif -lt 61", - "summary": "", - "content": "", - "steps": [ - { - "id": "980.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "f999eade741d4626b8b61b5d4c85d1e590e1b8fe" - ] - }, - "content": "Run your script if you want to see the output. It should print one of the sentences if the random number is less than 46. It may take a couple tries. Add another `elif`, below the last one, that uses double square brackets to check if the number variable is less than 61. If it is, use your two variables to print `The next number is, G:`", - "hints": [ - "View the `help test` menu to see the operators you can use with the double square brackets", - "The operator you want it `-lt`", - "The condition you want is `[[ $NUMBER -lt 61 ]]`. Don't forget the `$`", - "The statements area should look like this: `echo $TEXT G:$NUMBER`", - "This `elif` area should look like this:\n```sh\nelif [[ $NUMBER -lt 61 ]]\nthen\n echo $TEXT G:$NUMBER\nfi\n```", - "The whole `if` statement should look like this:\n```sh\nif (( NUMBER <= 15 ))\nthen\n echo $TEXT B:$NUMBER\nelif [[ $NUMBER -le 30 ]]\nthen\n echo $TEXT I:$NUMBER\nelif (( NUMBER < 46 ))\nthen\n echo $TEXT N:$NUMBER\nelif [[ $NUMBER -lt 61 ]]\nthen\n echo $TEXT G:$NUMBER\nfi\n```" - ] - } - ] - }, - { - "id": "990", - "title": "Add else", - "summary": "", - "content": "", - "steps": [ - { - "id": "990.1", - "setup": { - "watchers": [ - "./bingo.sh" - ], - "commits": [ - "77e5baf13906b6c03340fa0c896ecc686e9c91cb" - ] - }, - "content": "One more case to handle. Add an `else` at the bottom of the `if` that uses your two variables to print `The next number is, O:`.", - "hints": [ - "View the `if/else` in your `countdown.sh` file to see how you did it before", - "You don't need a condition or the `then` on this one", - "Here's an example:\n```sh\nif CONDITION\nthen\n STATEMENTS\nelif CONDITION\nthen\n STATEMENTS\n...\nelse\n STATEMENTS\nfi\n```", - "The `else` area should look like this:\n```sh\nelse\n echo $TEXT O:$NUMBER\n```", - "The whole `if` should look like this:\n```sh\nif (( NUMBER <= 15 ))\nthen\n echo $TEXT B:$NUMBER\nelif [[ $NUMBER -le 30 ]]\nthen\n echo $TEXT I:$NUMBER\nelif (( NUMBER < 46 ))\nthen\n echo $TEXT N:$NUMBER\nelif [[ $NUMBER -lt 61 ]]\nthen\n echo $TEXT G:$NUMBER\nelse\n echo $TEXT O:$NUMBER\nfi\n```" - ] - } - ] - }, - { - "id": "1000", - "title": "./bingo.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1000.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "75648697077385dce332c4981809aa7e943c6ac1" - ] - }, - "content": "Run your script a few times and make sure it's working.", - "hints": [ - "Type `./bingo.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first", - "Run it at least two times in a row" - ] - } - ] - }, - { - "id": "1010", - "title": "touch fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1010.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "091912f82fb73a336dec8b75504aaa4ee6dd56c3" - ] - }, - "content": "I think the generator is done :smile: The next project is a fortune teller. Use the `touch` command to create `fortune.sh` in the same folder as the other scripts.", - "hints": [ - "Type `touch fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1020", - "title": "chmod +x fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1020.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "8578b65ca826b3b9ad36f2867f96013e961db1ff" - ] - }, - "content": "Give your file executable permissions.", - "hints": [ - "Use the `chmod` command with the `+x` flag", - "Here's an example `chmod `", - "You previously used `chmod +x bingo.sh`", - "Type `chmod +x fortune.sh` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1030", - "title": "Add shebang", - "summary": "", - "content": "", - "steps": [ - { - "id": "1030.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "0610814a83c882ce106c9b244dab2ed3138f07fe" - ] - }, - "content": "Add a `shebang` at the top of your new file that uses `bash` again.", - "hints": [ - "A `shebang` looks like this: `#!`", - "Enter `which bash` in the terminal to see the path to `bash`", - "Look at the `shebang` in one of your other scripts to get the syntax", - "It should look like this: `#!/bin/bash`", - "Add `#!/bin/bash` at the top of your `fortune.sh` file" - ] - } - ] - }, - { - "id": "1040", - "title": "Add comment", - "summary": "", - "content": "", - "steps": [ - { - "id": "1040.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "86b1e46e963430e14617c0163ba5ec7af1ff0472" - ] - }, - "content": "Add comment `Program to tell a persons fortune`", - "hints": [ - "Comments look like this: `# `", - "Add `#Program to tell a persons fortune` below the `shebang`", - "Capitalization matters" - ] - } - ] - }, - { - "id": "1050", - "title": "Add echo \"title\"", - "summary": "", - "content": "", - "steps": [ - { - "id": "1050.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "162216a6339368c37087b5a7fd80d2af3becec9d" - ] - }, - "content": "Add a title for this one like the others. This one should say `~~ Fortune Teller ~~`. Don't forget the empty line before and after it.", - "hints": [ - "Print the whole title and the empty lines with a single `echo` command", - "Use the `echo` command with the `-e` flag and the new line (`\\n`) character", - "Don't forget to put it in double quotes", - "Take a look at one of the title's from a previous file for a hint", - "Here's an example: `echo -e \"\\n\\n\"`", - "You previously used `echo -e \"\\n~~ Bingo Number Generator ~~\\n\"`", - "Add `echo -e \"\\n~~ Fortune Teller ~~\\n\"` below the comment of your `fortune.sh` file" - ] - } - ] - }, - { - "id": "1060", - "title": "./fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1060.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "4268c1c887317dd1ba2effa1893b2b7911ab51ca" - ] - }, - "content": "Run the file once to make sure it's working.", - "hints": [ - "Type `./fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1070", - "title": "ARR=(\"a\" \"b\" \"c\")", - "summary": "", - "content": "", - "steps": [ - { - "id": "1070.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "78dbeb83aeee77fa37c9ec3f4d128e1bbbb7dab3" - ] - }, - "content": "This program will have an array of responses. One will be printed randomly after a user inputs a question. Practice first :smile: In the terminal, create an array like this: `ARR=(\"a\" \"b\" \"c\")`", - "hints": [ - "Type the suggested command in the terminal", - "Type `ARR=(\"a\" \"b\" \"c\")` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1080", - "title": "echo ${ARR[1]}", - "summary": "", - "content": "", - "steps": [ - { - "id": "1080.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "32ec4d1f6be27850c3562f09f6e5d8366bdfac1b" - ] - }, - "content": "Each variable in the array is like any other variable, just combined into a single variable. In the terminal, print the second item in the array with `echo ${ARR[1]}`. Note that the first item would be index zero.", - "hints": [ - "Type `echo ${ARR[1]}` in the terminal" - ] - } - ] - }, - { - "id": "1090", - "title": "echo ${ARR[@]}", - "summary": "", - "content": "", - "steps": [ - { - "id": "1090.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "dd9881a7a38b07bf1b69d1b78d305323d72b0278" - ] - }, - "content": "If you recall, you were able to print all the arguments to your `countdown.sh` script with `echo $*`. `echo $@` would have worked as well. Similarly, you can use the `*` or `@` to print your whole array. In the terminal, use `echo` to print all the items in your array.", - "hints": [ - "Here's an example `echo ${ARR[]}`", - "Type `echo ${ARR[@]}` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1100", - "title": "declare -p ARR", - "summary": "", - "content": "", - "steps": [ - { - "id": "1100.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "8cc2db6813a9f2aa7706e9e37f80ff80d7074340" - ] - }, - "content": "The variable must be in that `declare` list. View your array variable using the `declare` command and the `-p` flag.", - "hints": [ - "Here's an example: `declare -p `", - "Type `declare -p ARR` in the terminal" - ] - } - ] - }, - { - "id": "1110", - "title": "Add RESPONSES array", - "summary": "", - "content": "", - "steps": [ - { - "id": "1110.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "7bc1529027c76784d301d89026e2d8c8eb66fdfe" - ] - }, - "content": "The `-a` next to it stands for `array`. In your script, create an array named `RESPONSES`. Give it these six values: `Yes`, `No`, `Maybe`, `Outlook good`, `Don't count on it`, and `Ask again later`.", - "hints": [ - "Here's an example: `VARIABLE=(value value ...)`", - "Make sure any values with spaces are in proper quotes", - "You created your other array with `ARR=(\"a\" \"b\" \"c\")`", - "Add `RESPONSES=(\"Yes\" \"No\" \"Maybe\" \"Outlook good\" \"Don't count on it\" \"Ask again later\")` in your script" - ] - } - ] - }, - { - "id": "1120", - "title": "echo ${RESPONSES[5]}", - "summary": "", - "content": "", - "steps": [ - { - "id": "1120.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "ec1b52c89e4bb4bcf126a691a26117d72b79706c" - ] - }, - "content": "In your script, use `echo` to print the last item in the array.", - "hints": [ - "Here's an example `echo ${ARR[]}`", - "Remember that the first item starts at zero", - "Add `echo ${RESPONSES[5]}` to your `fortune.sh` file" - ] - } - ] - }, - { - "id": "1130", - "title": "./fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1130.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "21e70693d37e3ea44e207afb7643b806433b1de5" - ] - }, - "content": "Run it to see the output.", - "hints": [ - "Type `./fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1140", - "title": "Add N=$(( RANDOM % 6 ))", - "summary": "", - "content": "", - "steps": [ - { - "id": "1140.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "bbc6d929d41329cb46cc99ea5fb7a58f3f63a637" - ] - }, - "content": "You will randomly print one of the values. In your script, create a variable named `N`. Set it equal to a random number between `0` and `5`, the first and last index of the array.", - "hints": [ - "Use the modulus (`%`) operator and `6` to get a number between `0` and `5`", - "Look at the random number you created in the `bingo.sh` file for a hint", - "Here's an example: `VARIABLE=$(( ))`", - "Calculate a random number in the range you want with `RANDOM % 6`", - "Add `N=$(( RANDOM % 6 ))` to the script" - ] - } - ] - }, - { - "id": "1150", - "title": "Change to echo ${RESPONSES[$N]}", - "summary": "", - "content": "", - "steps": [ - { - "id": "1150.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "d2daa5cbf01a3464148765c9353612e50a2d9a4c" - ] - }, - "content": "Change your `echo` command to print the item in the array whose index is the random number you generated.", - "hints": [ - "Use your `$N` variable as the index where you print an item from the array", - "Don't forget that scripts run from top to bottom, so you can't use any variables before they are created", - "Change the `echo` line to `echo ${RESPONSES[$N]}`" - ] - } - ] - }, - { - "id": "1160", - "title": "help", - "summary": "", - "content": "", - "steps": [ - { - "id": "1160.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "851f3b8c422d74d0bddddb0b7eb34c4081f7b3f9" - ] - }, - "content": "You will create a function to generate an answer. Check the `help` menu to see if you can find anything.", - "hints": [ - "Enter the suggested command in the terminal", - "Type `help` in the terminal" - ] - } - ] - }, - { - "id": "1170", - "title": "help function", - "summary": "", - "content": "", - "steps": [ - { - "id": "1170.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "c018988958dc91a4beecdb1a0458d7e3d2ab1288" - ] - }, - "content": "See any that might help? There's one that says `function`. See if you can find out more about it.", - "hints": [ - "Use the `help` command to find out more", - "Here's an example: `help `", - "Type `help function` in the terminal" - ] - } - ] - }, - { - "id": "1180", - "title": "Add GET_FORTUNE function", - "summary": "", - "content": "", - "steps": [ - { - "id": "1180.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "327d85a12a6a2d4c43aea195a9959ae188da1fbc" - ] - }, - "content": "It looks like you can create a function like this:\n\n```sh\nFUNCTION_NAME() {\n STATEMENTS\n}\n```\n\nAdd an empty function named `GET_FORTUNE` to your script. Make sure the response you are printing is the last thing in the script.", - "hints": [ - "Add this to your script:\n```sh\nGET_FORTUNE() {}\n```", - "Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file" - ] - } - ] - }, - { - "id": "1190", - "title": "Add echo Ask a yes or no question", - "summary": "", - "content": "", - "steps": [ - { - "id": "1190.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "e12272e90ff5acf749a850c5d7bcf665dcebbdf9" - ] - }, - "content": "In your function, use `echo` to print `Ask a yes or no question:`", - "hints": [ - "Your function should look like this:\n```sh\nGET_FORTUNE() {\n echo Ask a yes or no question:\n}\n```", - "Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file" - ] - } - ] - }, - { - "id": "1200", - "title": "Add GET_FORTUNE function call", - "summary": "", - "content": "", - "steps": [ - { - "id": "1200.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "52cd2a8b552c14449bdfe6fd25e6b45ae597203e" - ] - }, - "content": "Call your function by putting the name of it below where you create it. No `$` needed. Make sure the response you are printing is at the bottom of the file.", - "hints": [ - "Add `GET_FORTUNE` below where you create your function to call it", - "Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file" - ] - } - ] - }, - { - "id": "1210", - "title": "./fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1210.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "a7695da26838b007dc4e85862826be1e2bb30b1b" - ] - }, - "content": "Run your script to make sure it's working.", - "hints": [ - "Type `./fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1220", - "title": "Add read QUESTION", - "summary": "", - "content": "", - "steps": [ - { - "id": "1220.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "4fb51b6dec833c289bdf3ad97b5cf0433dd8bfdf" - ] - }, - "content": "In your function after you print the sentence, use `read` to get user input into a variable named `QUESTION`.", - "hints": [ - "Add `read QUESTION` to your function below the `echo`", - "Your function should look like this:\n```sh\nGET_FORTUNE() {\n echo Ask a yes or no question:\n read QUESTION\n}\n```", - "Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file" - ] - } - ] - }, - { - "id": "1230", - "title": "./fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1230.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "abcaa2b9323e45188ef1ad97487815436bc9db3a" - ] - }, - "content": "Run the script again to test it out. Enter a question when it asks.", - "hints": [ - "Type `./fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1240", - "title": "help", - "summary": "", - "content": "", - "steps": [ - { - "id": "1240.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "ef067d88fac584fef91546a9edf43371ff42d54d" - ] - }, - "content": "I want to make sure the input is a question. You are going to add a loop that asks for input until the input ends with a question mark. View the `help` menu to see if you can find an appropriate loop.", - "hints": [ - "Type `help` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1250", - "title": "help until", - "summary": "", - "content": "", - "steps": [ - { - "id": "1250.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "40ae7e8e1aaee1569d7c3a58a7d258b121a4ed37" - ] - }, - "content": "View more about that `until` command. That might be the one to use here.", - "hints": [ - "Use `help ` to view more about a command", - "Type `help until` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1260", - "title": "Add until loop", - "summary": "", - "content": "", - "steps": [ - { - "id": "1260.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "e0c642d4efe1ec69189162007e2bb73ea0027ef1" - ] - }, - "content": "The `until` loop is very similar to the `while` loop you used. It will execute the loop until a condition is met. Here's an example:\n\n```sh\nuntil [[ CONDITION ]]\ndo\n STATEMENTS\ndone\n```\n\nAdd an `until` loop below your function. Use the double brackets to check if `QUESTION` is equal to `test?`. Move the `GET_FORTUNE` function call to the statements area of the loop. It should run the function until you input `test?` as the question.", - "hints": [ - "View the `help [[` or `help test` menu to see if you can find the operator to use", - "You want the `==` operator", - "The condition should look like this: `[[ $QUESTION == test? ]]`", - "Your `until` loop should look like this:\n```sh\nuntil [[ $QUESTION == test? ]]\ndo\n GET_FORTUNE\ndone\n```", - "You should only call the `GET_FORTUNE` function once", - "Your `echo ${RESPONSES[$N]}` command should be at the bottom of the file" - ] - } - ] - }, - { - "id": "1270", - "title": "./fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1270.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "3450bdac3e3f4298714e1e1515a2e87ccd117fed" - ] - }, - "content": "Run the script and enter something other than `test?`. Then enter `test?` after it asks for a question the second time.", - "hints": [ - "Type `./fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1280", - "title": "help [[ expression ]]", - "summary": "", - "content": "", - "steps": [ - { - "id": "1280.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "814637db4fce7bf27982fbcdd15716e22cf0315a" - ] - }, - "content": "View that `help [[ expression ]]` menu again. You need to find out how to test if the input ends with a question mark (`?`).", - "hints": [ - "Type `help [[` or `help [[ expression ]]` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1290", - "title": "[[ hello == hello ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1290.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "8746c43c0f46fc59342bbf0be0269733a60fab78" - ] - }, - "content": "Let's play with these again. You can test if two strings are the same with `==`. In the terminal, use the `[[ ... ]]; echo $?` syntax you used before to test if `hello` is equal to `hello`.", - "hints": [ - "Be sure to use the `==` operator", - "Type `[[ hello == hello ]]; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1300", - "title": "[[ hello == world ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1300.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "7faeea77db51b79188d7d586ad3d52d349607990" - ] - }, - "content": "Exit status of `0`, it was true. Using the same syntax, test if `hello` is equal to `world`.", - "hints": [ - "Use the `[[ ... ]]; echo $?` syntax", - "Be sure to use the `==` operator", - "Type `[[ hello == world ]]; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1310", - "title": "[[ hello =~ el ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1310.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "3429f935110a1002d9ef8f11c55c0deda299eb6f" - ] - }, - "content": "False. An important operator in that menu is `=~`. It allows for pattern matching. Using the same syntax but with this operator, check if `hello` contains the pattern `el`.", - "hints": [ - "Use the `[[ ... ]]; echo $?` syntax", - "Use the `=~` operator with it", - "Type `[[ hello =~ el ]]; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1320", - "title": "[[ \"hello world\" =~ \"lo wor\" ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1320.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "2d2ca6865b121e33c9c1b7a1435a4fb8d72b95bb" - ] - }, - "content": "True. The condition was checking for `el` within the word `hello`. Using the same syntax, check if `hello world` contains the pattern `lo wor`. You will need to put them both in quotes so it recognizes the spaces.", - "hints": [ - "Use the `[[ ... ]]; echo $?` syntax", - "Use the `=~` operator with it", - "Type `[[ \"hello world\" =~ \"lo wor\" ]]; echo $?` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1330", - "title": "[[ \"hello world\" =~ ^h ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1330.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "2e9053f4e9191f5cf2721ee4aea2bb806f6c69ba" - ] - }, - "content": "Your patterns have been checking for literal matches, `el` and `lo wor`. You can use regular expression characters as well, but you can't put the pattern in quotes when you do. Using the same syntax, check if `hello world` starts with an `h` by using `^h` as the pattern.", - "hints": [ - "Make sure not to use quotes around the pattern when using regex characters it", - "Type `[[ \"hello world\" =~ ^h ]]; echo $?` in the terminal" - ] - } - ] - }, - { - "id": "1340", - "title": "[[ \"hello world\" =~ ^h.+d$ ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1340.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "bde1437e6868a46778920620a6ee33ff520c3106" - ] - }, - "content": "Do it again, but use `^h.+d$` as the pattern to see if the string starts with an `h`, has at least one character after it, and ends with a `d`.", - "hints": [ - "Use the `[[ ... ]]; echo $?` syntax again", - "Check if `hello world` contains the suggested pattern", - "Make sure not to use quotes around the pattern when using regex characters it", - "Type `[[ \"hello world\" =~ ^h.+d$ ]]; echo $?` in the terminal" - ] - } - ] - }, - { - "id": "1350", - "title": "VAR=\"hello world\"", - "summary": "", - "content": "", - "steps": [ - { - "id": "1350.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "ea5ee7cb0e002a6fe36f9ee53eaf7164f9208041" - ] - }, - "content": "In the terminal, create a variable named `VAR` that equals `hello world`.", - "hints": [ - "Type `VAR=\"hello world\"` in the terminal" - ] - } - ] - }, - { - "id": "1360", - "title": "echo $VAR", - "summary": "", - "content": "", - "steps": [ - { - "id": "1360.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "28314e08ace3ee3026f27d3e17fb1262947f9a27" - ] - }, - "content": "Use `echo` to print the variable you just created.", - "hints": [ - "Type `echo $VAR` in the terminal" - ] - } - ] - }, - { - "id": "1370", - "title": "[[ $VAR == \"hello world\" ]]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1370.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "dd275d39c5579a25a2738622840b491d3c5593b4" - ] - }, - "content": "Using the `[[ ... ]]; echo $?` syntax, check if your variable is equal to `hello world`.", - "hints": [ - "Check the `help [[` menu to find the operator to use", - "It's the `==` operator", - "You want to check if `$VAR == \"hello world\"`", - "Type `[[ $VAR == \"hello world\" ]]; echo $?` in the terminal" - ] - } - ] - }, - { - "id": "1380", - "title": "[[ $VAR =~ \\?$ ]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1380.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "1bd60833f62a63ab0d681e7a56ce50ec2f284e23" - ] - }, - "content": "Using the same syntax, check if your variable ends with `?` by using the pattern `\\?$`.", - "hints": [ - "Be sure to use the pattern matching operator", - "It's the `=~` operator", - "You want to check if `$VAR =~ \\?$`", - "Type `[[ $VAR =~ \\?$ ]]; echo $?` in the terminal" - ] - } - ] - }, - { - "id": "1385", - "title": "[[ test? =~ \\?$ ]; echo $?", - "summary": "", - "content": "", - "steps": [ - { - "id": "1385.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "5d2bda9231186f953db932c12ed82b28524ba43b" - ] - }, - "content": "It doesn't end with `?`. Just to make sure I don't have the pattern wrong, check if `test?` ends with `?`.", - "hints": [ - "Use the same `[[ ... ]]; echo $?` syntax you have been using", - "Use the `\\?$` pattern to see if a string ends with `?`", - "Make sure you're using the pattern matching operator `=~`", - "You want to check if `test? =~ \\?$`", - "Type `[[ test? =~ \\?$ ]]; echo $?` in the terminal" - ] - } - ] - }, - { - "id": "1390", - "title": "Change until condition", - "summary": "", - "content": "", - "steps": [ - { - "id": "1390.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "cb5142cd8434d3e23aeecb4f7532a54744a5a550" - ] - }, - "content": "I think that will work. Back in your script, change the `until` condition to see if your variable ends with `?`.", - "hints": [ - "Use the pattern matching operator with `\\?$`", - "It's the `=~` operator", - "Your condition should look like this: `[[ $QUESTION =~ \\?$ ]]`", - "Make sure there's spaces inside the brackets and around the operator" - ] - } - ] - }, - { - "id": "1400", - "title": "./fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1400.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "494562adfed9aabb9c24778b2d2b47f109d579ae" - ] - }, - "content": "Run the script and input something that doesn't end with `?` the first time, then something that does the second.", - "hints": [ - "Type `./fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1410", - "title": "Add if to GET_FORTUNE", - "summary": "", - "content": "", - "steps": [ - { - "id": "1410.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "aeae05477a13c14adeb951b76770cfb887ed19a1" - ] - }, - "content": "I know that it asks the same thing if the input isn't what you want. You should let users know that it needs to end with `?`. Add an `if` condition in your **function** that checks `if [[ ! $1 ]]`. Put the existing `echo` statement in the `then` area and make sure the existing `read` is below the whole `if` condition.", - "hints": [ - "Here's an example:\n```sh\nif [[ CONDITION ]]\nthen\n STATEMENTS\nfi\n\nread QUESTION\n```", - "Your function should look like this:\n```sh\nfunction GET_FORTUNE() {\n if [[ ! $1 ]]\n then\n echo Ask a yes or no question:\n fi\n\n read QUESTION\n}\n```" - ] - } - ] - }, - { - "id": "1412", - "title": "Add else to if [[ ! $1 ]]", - "summary": "", - "content": "", - "steps": [ - { - "id": "1412.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "380bf3b8be3bd0772f7f12ad9a2045d27816b178" - ] - }, - "content": "You can pass arguments to functions like you did with your script. This condition will check if one isn't passed and print the sentence. Add an `else` to your `if`. Use `echo` to print `Try again. Make sure it ends with a question mark:` if the condition fails.", - "hints": [ - "Here's an example:\n```sh\nif [[ CONDITION ]]\nthen\n STATEMENTS\nelse\n STATEMENTS\nfi\n```", - "Your `if` condition should look like this:\n```sh\nif [[ ! $1 ]]\nthen\n echo Ask a yes or no question:\nelse\n echo Try again. Make sure it ends with a question mark:\nfi\n```" - ] - } - ] - }, - { - "id": "1413", - "title": "Add argument to function call", - "summary": "", - "content": "", - "steps": [ - { - "id": "1413.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "4a438f7dfb9076a664895420c34919370910ea6f" - ] - }, - "content": "Now, your function will print one thing if you pass it any argument, and something else if not. In the `until` loop, add `again` as an argument to where you call the function.", - "hints": [ - "Here's an example: `FUNCTION_NAME argument`", - "Your function call should look like this: `GET_FORTUNE again`", - "Your `until` loop should look like this:\n```sh\nuntil [[ $QUESTION =~ \\?$ ]]\ndo\n GET_FORTUNE again\ndone\n```" - ] - } - ] - }, - { - "id": "1416", - "title": "Add Initial function call", - "summary": "", - "content": "", - "steps": [ - { - "id": "1416.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "324fcb85a3d1ee627f5e3f6e671a748df364e837" - ] - }, - "content": "Now, each time the function is called in the `until` loop, it will pass `again` as an argument and print the `Try again...` sentence. Before your `until` loop, call the function without an argument so the first time it runs, it prints the initial sentence.", - "hints": [ - "Add `GET_FORTUNE` before the `until` loop" - ] - } - ] - }, - { - "id": "1420", - "title": "./fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1420.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "9e9241861d3594cd8d9e9fe71b740a423471c0c8" - ] - }, - "content": "Run the script and enter something without a question mark when it asks the first time. Use a question mark the second time.", - "hints": [ - "Type `./fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1425", - "title": "Add line break in front of response", - "summary": "", - "content": "", - "steps": [ - { - "id": "1425.1", - "setup": { - "watchers": [ - "./fortune.sh" - ], - "commits": [ - "d2c548715c431f43692b6c78e38795a7fdf0335b" - ] - }, - "content": "Awesome. One last thing. Add an empty line in front of where you print the response.", - "hints": [ - "Change the existing `echo ${RESPONSES[$N]}` line", - "Use the `-e` flag and the new line (`\\n`) character with the `echo` statement", - "Make sure to use quotes so it prints the new line", - "Run the script and see if it's working", - "The suggested command should look like this: `echo -e \"\\n${RESPONSES[$N]}\"`" - ] - } - ] - }, - { - "id": "1428", - "title": "./fortune.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1428.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "efefa327a027bae2b7f4b8cbcf5b9fa45b5693c9" - ] - }, - "content": "Run the script one more time to see if you like the output.", - "hints": [ - "Type `./fortune.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1430", - "title": "touch five.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1430.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "781ce90e8da4e84d244b6405cfa8b1bff0d735c0" - ] - }, - "content": "Excellent. One last program to make. Use `touch` to create a new file named `five.sh` in the same folder as the others.", - "hints": [ - "Type `touch five.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1440", - "title": "chmod +x five.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1440.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "b3cd240d5c0e890b4f7d0376bfacec6653497ef4" - ] - }, - "content": "Give your file executable permissions.", - "hints": [ - "Use the `chmod` command with the `+x` flag", - "Here's an example `chmod `", - "You previously used `chmod +x fortune.sh`", - "Type `chmod +x five.sh` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1450", - "title": "Add shebang", - "summary": "", - "content": "", - "steps": [ - { - "id": "1450.1", - "setup": { - "watchers": [ - "./five.sh" - ], - "commits": [ - "600d935f73ca8d6eade088cb30cc3c51bd09eb70" - ] - }, - "content": "Add a `shebang` to the new script that uses `bash` like the others.", - "hints": [ - "A `shebang` looks like this: `#!`", - "Enter `which bash` in the terminal to see the path to `bash`", - "Look at the `shebang` in one of your other scripts to get the syntax", - "It should look like this: `#!/bin/bash`", - "Add `#!/bin/bash` at the top of your `five.sh` file" - ] - } - ] - }, - { - "id": "1460", - "title": "Add comment", - "summary": "", - "content": "", - "steps": [ - { - "id": "1460.1", - "setup": { - "watchers": [ - "./five.sh" - ], - "commits": [ - "ed12144637452be8a7607aa9620e08889eb3e44c" - ] - }, - "content": "Add a comment below the `shebang` that says, `Program to run my other four programs`", - "hints": [ - "Comments look like this: `# `", - "Add `# Program to run my other four programs` below the `shebang`", - "Capitalization matters" - ] - } - ] - }, - { - "id": "1470", - "title": "Add ./questionnaire.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1470.1", - "setup": { - "watchers": [ - "./five.sh" - ], - "commits": [ - "596f431aa5f3db7610463e7a146a98a0224e6afe" - ] - }, - "content": "This program will run all the programs you made so far consecutively. Add the command to run the `questionnaire.sh` file.", - "hints": [ - "The command should look like how you would execute the file in the terminal", - "Add `./questionnaire.sh` to the `five.sh` file" - ] - } - ] - }, - { - "id": "1480", - "title": "./five", - "summary": "", - "content": "", - "steps": [ - { - "id": "1480.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "35cc3cea0ca8e5d30e2b5c75e8fa90dea42c4377" - ] - }, - "content": "Run the file to see if it works. Enter input when it asks.", - "hints": [ - "Type `./five.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1490", - "title": "Add the rest of the scripts", - "summary": "", - "content": "", - "steps": [ - { - "id": "1490.1", - "setup": { - "watchers": [ - "./five.sh" - ], - "commits": [ - "92850450c6ec7cbdb5c17f47d7bc4ce8e372afa3" - ] - }, - "content": "Add commands to run the rest of your scripts in the file. They should be in this order: `questionnaire`, `countdown`, `bingo`, and `fortune`. Don't forget that your `countdown.sh` file needs an argument, so put a `3` next to it.", - "hints": [ - "Your `five.sh` file should have these commands:\n```sh\n./questionnaire.sh\n./countdown.sh 3\n./bingo.sh\n./fortune.sh\n```" - ] - } - ] - }, - { - "id": "1500", - "title": "Clear", - "summary": "", - "content": "", - "steps": [ - { - "id": "1500.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "ab932636cb400bcae42284cd965bf0293eea4f5a" - ] - }, - "content": "Okay, use `clear` to empty out what's in the terminal before the big moment.", - "hints": [ - "Type `clear` in the terminal" - ] - } - ] - }, - { - "id": "1510", - "title": "./five", - "summary": "", - "content": "", - "steps": [ - { - "id": "1510.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "000f62662ab29bb322e4c16f8d296b0309c969fe" - ] - }, - "content": "Run the script and enter input when it asks.", - "hints": [ - "Type `./five.sh` in the terminal and press enter", - "Make sure you are in the `project` folder first" - ] - } - ] - }, - { - "id": "1520", - "title": "help", - "summary": "", - "content": "", - "steps": [ - { - "id": "1520.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "0020e8e0262b988a15ca445fcd5a256b9a23c6fb" - ] - }, - "content": "Cool. I think all the scripts are done. View the `help` menu again I want to explore one more thing.", - "hints": [ - "Type `help` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1530", - "title": "help type", - "summary": "", - "content": "", - "steps": [ - { - "id": "1530.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "e497707bc47bb00839f084976de8a931080ef111" - ] - }, - "content": "View more about that `type` command.", - "hints": [ - "Use `help ` to find out more about a command", - "Type `help type` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1540", - "title": "type echo", - "summary": "", - "content": "", - "steps": [ - { - "id": "1540.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "85aab97c0f3a73d1b01c80c97a39580afaf2e49c" - ] - }, - "content": "It says you can view the type of a command with `type `. Just for fun, lets take a look at the type of a few different commands. View the type of `echo`.", - "hints": [ - "Type `type echo` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1550", - "title": "type read", - "summary": "", - "content": "", - "steps": [ - { - "id": "1550.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "2042a1384041e64f140e8239a31a386ac965186d" - ] - }, - "content": "View the type of the `read` command.", - "hints": [ - "Type `type read` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1560", - "title": "type if", - "summary": "", - "content": "", - "steps": [ - { - "id": "1560.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "21c228b482c27b245638be8bfaaad8c5b63d9a63" - ] - }, - "content": "View the type of `if`", - "hints": [ - "Type `type if` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1570", - "title": "type then", - "summary": "", - "content": "", - "steps": [ - { - "id": "1570.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "33d983b0b632042e55d82b514b234fbc2b4e4c2b" - ] - }, - "content": "View the type of `then`", - "hints": [ - "Type `type then` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1580", - "title": "type bash", - "summary": "", - "content": "", - "steps": [ - { - "id": "1580.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "a638a83758e348d9c9794d1963c637ec219306f3" - ] - }, - "content": "Those were all from the `help` menu and described as a `shell builtin` or `shell keyword`. View the type of `bash`", - "hints": [ - "Type `type bash` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1590", - "title": "type psql", - "summary": "", - "content": "", - "steps": [ - { - "id": "1590.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "504b22b8212d539520fed73bd00ee28925ac1f8e" - ] - }, - "content": "That's the location of the `bash` command. View the type of `psql`.", - "hints": [ - "Type `type psql` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1600", - "title": "type ./five.sh", - "summary": "", - "content": "", - "steps": [ - { - "id": "1600.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "ece9f053a5f0f0f859b848d6d38b99d9c100841a" - ] - }, - "content": "It's showing the location of the commands. View the type of your `./five.sh` file.", - "hints": [ - "Type `type ./five.sh` in the terminal and press enter" - ] - } - ] - }, - { - "id": "1610", - "title": "exit", - "summary": "", - "content": "", - "steps": [ - { - "id": "1610.1", - "setup": { - "watchers": [ - "../.bash_history" - ], - "commits": [ - "876baa475f70b3df2a4df9fbb87bec857b72ec4d" - ] - }, - "content": "Last step, close the terminal with the `exit` command. Thanks and happy coding!", - "hints": [ - "Type `exit` in the terminal and press enter" - ] - } - ] - } - ] -} \ No newline at end of file From 7d60f54ac982eee3d0e1c78f1439e186d2ca881b Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:03:27 -0600 Subject: [PATCH 004/325] 20.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index ce03adf7cb..ecf66ddf01 100644 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/10.test.js"], + "spec": ["./test/20.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 28ce4dd6d5087308e776f11658fbe1bb8ca37773 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 14:58:02 +0000 Subject: [PATCH 005/325] Save progress: 20.1 --- .freeCodeCamp/.mocharc.json | 0 .freeCodeCamp/package-lock.json | 0 .freeCodeCamp/package.json | 0 .freeCodeCamp/test/.cwd | 5 +++ .freeCodeCamp/test/.next_command | 71 ++++++++++++++++++++++++++++++++ .freeCodeCamp/test/10.test.js | 0 .freeCodeCamp/test/100.test.js | 0 .freeCodeCamp/test/1000.test.js | 0 .freeCodeCamp/test/1010.test.js | 0 .freeCodeCamp/test/1020.test.js | 0 .freeCodeCamp/test/1030.test.js | 0 .freeCodeCamp/test/1040.test.js | 0 .freeCodeCamp/test/1050.test.js | 0 .freeCodeCamp/test/1060.test.js | 0 .freeCodeCamp/test/1070.test.js | 0 .freeCodeCamp/test/1080.test.js | 0 .freeCodeCamp/test/1090.test.js | 0 .freeCodeCamp/test/110.test.js | 0 .freeCodeCamp/test/1100.test.js | 0 .freeCodeCamp/test/1110.test.js | 0 .freeCodeCamp/test/1120.test.js | 0 .freeCodeCamp/test/1130.test.js | 0 .freeCodeCamp/test/1140.test.js | 0 .freeCodeCamp/test/1150.test.js | 0 .freeCodeCamp/test/1160.test.js | 0 .freeCodeCamp/test/1170.test.js | 0 .freeCodeCamp/test/1180.test.js | 0 .freeCodeCamp/test/1190.test.js | 0 .freeCodeCamp/test/1200.test.js | 0 .freeCodeCamp/test/1210.test.js | 0 .freeCodeCamp/test/1220.test.js | 0 .freeCodeCamp/test/1230.test.js | 0 .freeCodeCamp/test/1240.test.js | 0 .freeCodeCamp/test/1250.test.js | 0 .freeCodeCamp/test/1260.test.js | 0 .freeCodeCamp/test/1270.test.js | 0 .freeCodeCamp/test/1280.test.js | 0 .freeCodeCamp/test/1290.test.js | 0 .freeCodeCamp/test/1300.test.js | 0 .freeCodeCamp/test/1310.test.js | 0 .freeCodeCamp/test/1320.test.js | 0 .freeCodeCamp/test/1330.test.js | 0 .freeCodeCamp/test/1340.test.js | 0 .freeCodeCamp/test/1350.test.js | 0 .freeCodeCamp/test/1360.test.js | 0 .freeCodeCamp/test/1370.test.js | 0 .freeCodeCamp/test/1380.test.js | 0 .freeCodeCamp/test/1385.test.js | 0 .freeCodeCamp/test/1390.test.js | 0 .freeCodeCamp/test/140.test.js | 0 .freeCodeCamp/test/1400.test.js | 0 .freeCodeCamp/test/1410.test.js | 0 .freeCodeCamp/test/1412.test.js | 0 .freeCodeCamp/test/1413.test.js | 0 .freeCodeCamp/test/1416.test.js | 0 .freeCodeCamp/test/1420.test.js | 0 .freeCodeCamp/test/1425.test.js | 0 .freeCodeCamp/test/1428.test.js | 0 .freeCodeCamp/test/1430.test.js | 0 .freeCodeCamp/test/1440.test.js | 0 .freeCodeCamp/test/1450.test.js | 0 .freeCodeCamp/test/1460.test.js | 0 .freeCodeCamp/test/1470.test.js | 0 .freeCodeCamp/test/1480.test.js | 0 .freeCodeCamp/test/1490.test.js | 0 .freeCodeCamp/test/150.test.js | 0 .freeCodeCamp/test/1500.test.js | 0 .freeCodeCamp/test/1510.test.js | 0 .freeCodeCamp/test/1520.test.js | 0 .freeCodeCamp/test/1530.test.js | 0 .freeCodeCamp/test/1540.test.js | 0 .freeCodeCamp/test/1550.test.js | 0 .freeCodeCamp/test/1560.test.js | 0 .freeCodeCamp/test/1570.test.js | 0 .freeCodeCamp/test/1580.test.js | 0 .freeCodeCamp/test/1590.test.js | 0 .freeCodeCamp/test/160.test.js | 0 .freeCodeCamp/test/1600.test.js | 0 .freeCodeCamp/test/1610.test.js | 0 .freeCodeCamp/test/170.test.js | 0 .freeCodeCamp/test/180.test.js | 0 .freeCodeCamp/test/190.test.js | 0 .freeCodeCamp/test/20.test.js | 0 .freeCodeCamp/test/200.test.js | 0 .freeCodeCamp/test/210.test.js | 0 .freeCodeCamp/test/220.test.js | 0 .freeCodeCamp/test/230.test.js | 0 .freeCodeCamp/test/240.test.js | 0 .freeCodeCamp/test/250.test.js | 0 .freeCodeCamp/test/260.test.js | 0 .freeCodeCamp/test/270.test.js | 0 .freeCodeCamp/test/280.test.js | 0 .freeCodeCamp/test/290.test.js | 0 .freeCodeCamp/test/30.test.js | 0 .freeCodeCamp/test/300.test.js | 0 .freeCodeCamp/test/310.test.js | 0 .freeCodeCamp/test/320.test.js | 0 .freeCodeCamp/test/323.test.js | 0 .freeCodeCamp/test/326.test.js | 0 .freeCodeCamp/test/330.test.js | 0 .freeCodeCamp/test/340.test.js | 0 .freeCodeCamp/test/345.test.js | 0 .freeCodeCamp/test/35.test.js | 0 .freeCodeCamp/test/350.test.js | 0 .freeCodeCamp/test/360.test.js | 0 .freeCodeCamp/test/363.test.js | 0 .freeCodeCamp/test/366.test.js | 0 .freeCodeCamp/test/370.test.js | 0 .freeCodeCamp/test/380.test.js | 0 .freeCodeCamp/test/390.test.js | 0 .freeCodeCamp/test/40.test.js | 0 .freeCodeCamp/test/400.test.js | 0 .freeCodeCamp/test/410.test.js | 0 .freeCodeCamp/test/420.test.js | 0 .freeCodeCamp/test/425.test.js | 0 .freeCodeCamp/test/430.test.js | 0 .freeCodeCamp/test/440.test.js | 0 .freeCodeCamp/test/450.test.js | 0 .freeCodeCamp/test/460.test.js | 0 .freeCodeCamp/test/470.test.js | 0 .freeCodeCamp/test/480.test.js | 0 .freeCodeCamp/test/490.test.js | 0 .freeCodeCamp/test/50.test.js | 0 .freeCodeCamp/test/500.test.js | 0 .freeCodeCamp/test/505.test.js | 0 .freeCodeCamp/test/510.test.js | 0 .freeCodeCamp/test/520.test.js | 0 .freeCodeCamp/test/530.test.js | 0 .freeCodeCamp/test/540.test.js | 0 .freeCodeCamp/test/542.test.js | 0 .freeCodeCamp/test/544.test.js | 0 .freeCodeCamp/test/546.test.js | 0 .freeCodeCamp/test/548.test.js | 0 .freeCodeCamp/test/550.test.js | 0 .freeCodeCamp/test/552.test.js | 0 .freeCodeCamp/test/554.test.js | 0 .freeCodeCamp/test/556.test.js | 0 .freeCodeCamp/test/558.test.js | 0 .freeCodeCamp/test/560.test.js | 0 .freeCodeCamp/test/562.test.js | 0 .freeCodeCamp/test/564.test.js | 0 .freeCodeCamp/test/566.test.js | 0 .freeCodeCamp/test/568.test.js | 0 .freeCodeCamp/test/570.test.js | 0 .freeCodeCamp/test/572.test.js | 0 .freeCodeCamp/test/574.test.js | 0 .freeCodeCamp/test/575.test.js | 0 .freeCodeCamp/test/576.test.js | 0 .freeCodeCamp/test/582.test.js | 0 .freeCodeCamp/test/584.test.js | 0 .freeCodeCamp/test/586.test.js | 0 .freeCodeCamp/test/588.test.js | 0 .freeCodeCamp/test/590.test.js | 0 .freeCodeCamp/test/60.test.js | 0 .freeCodeCamp/test/600.test.js | 0 .freeCodeCamp/test/610.test.js | 0 .freeCodeCamp/test/615.test.js | 0 .freeCodeCamp/test/620.test.js | 0 .freeCodeCamp/test/630.test.js | 0 .freeCodeCamp/test/640.test.js | 0 .freeCodeCamp/test/650.test.js | 0 .freeCodeCamp/test/660.test.js | 0 .freeCodeCamp/test/670.test.js | 0 .freeCodeCamp/test/675.test.js | 0 .freeCodeCamp/test/680.test.js | 0 .freeCodeCamp/test/690.test.js | 0 .freeCodeCamp/test/692.test.js | 0 .freeCodeCamp/test/694.test.js | 0 .freeCodeCamp/test/696.test.js | 0 .freeCodeCamp/test/698.test.js | 0 .freeCodeCamp/test/70.test.js | 0 .freeCodeCamp/test/700.test.js | 0 .freeCodeCamp/test/710.test.js | 0 .freeCodeCamp/test/730.test.js | 0 .freeCodeCamp/test/740.test.js | 0 .freeCodeCamp/test/750.test.js | 0 .freeCodeCamp/test/760.test.js | 0 .freeCodeCamp/test/770.test.js | 0 .freeCodeCamp/test/780.test.js | 0 .freeCodeCamp/test/790.test.js | 0 .freeCodeCamp/test/80.test.js | 0 .freeCodeCamp/test/800.test.js | 0 .freeCodeCamp/test/810.test.js | 0 .freeCodeCamp/test/815.test.js | 0 .freeCodeCamp/test/817.test.js | 0 .freeCodeCamp/test/818.test.js | 0 .freeCodeCamp/test/819.test.js | 0 .freeCodeCamp/test/820.test.js | 0 .freeCodeCamp/test/822.test.js | 0 .freeCodeCamp/test/824.test.js | 0 .freeCodeCamp/test/826.test.js | 0 .freeCodeCamp/test/828.test.js | 0 .freeCodeCamp/test/830.test.js | 0 .freeCodeCamp/test/835.test.js | 0 .freeCodeCamp/test/840.test.js | 0 .freeCodeCamp/test/881.test.js | 0 .freeCodeCamp/test/884.test.js | 0 .freeCodeCamp/test/887.test.js | 0 .freeCodeCamp/test/890.test.js | 0 .freeCodeCamp/test/891.test.js | 0 .freeCodeCamp/test/893.test.js | 0 .freeCodeCamp/test/896.test.js | 0 .freeCodeCamp/test/897.test.js | 0 .freeCodeCamp/test/899.test.js | 0 .freeCodeCamp/test/90.test.js | 0 .freeCodeCamp/test/902.test.js | 0 .freeCodeCamp/test/905.test.js | 0 .freeCodeCamp/test/908.test.js | 0 .freeCodeCamp/test/911.test.js | 0 .freeCodeCamp/test/912.test.js | 0 .freeCodeCamp/test/913.test.js | 0 .freeCodeCamp/test/914.test.js | 0 .freeCodeCamp/test/916.test.js | 0 .freeCodeCamp/test/918.test.js | 0 .freeCodeCamp/test/920.test.js | 0 .freeCodeCamp/test/928.test.js | 0 .freeCodeCamp/test/930.test.js | 0 .freeCodeCamp/test/940.test.js | 0 .freeCodeCamp/test/945.test.js | 0 .freeCodeCamp/test/950.test.js | 0 .freeCodeCamp/test/960.test.js | 0 .freeCodeCamp/test/970.test.js | 0 .freeCodeCamp/test/980.test.js | 0 .freeCodeCamp/test/990.test.js | 0 .freeCodeCamp/test/utils.js | 0 225 files changed, 76 insertions(+) mode change 100644 => 100755 .freeCodeCamp/.mocharc.json mode change 100644 => 100755 .freeCodeCamp/package-lock.json mode change 100644 => 100755 .freeCodeCamp/package.json mode change 100644 => 100755 .freeCodeCamp/test/10.test.js mode change 100644 => 100755 .freeCodeCamp/test/100.test.js mode change 100644 => 100755 .freeCodeCamp/test/1000.test.js mode change 100644 => 100755 .freeCodeCamp/test/1010.test.js mode change 100644 => 100755 .freeCodeCamp/test/1020.test.js mode change 100644 => 100755 .freeCodeCamp/test/1030.test.js mode change 100644 => 100755 .freeCodeCamp/test/1040.test.js mode change 100644 => 100755 .freeCodeCamp/test/1050.test.js mode change 100644 => 100755 .freeCodeCamp/test/1060.test.js mode change 100644 => 100755 .freeCodeCamp/test/1070.test.js mode change 100644 => 100755 .freeCodeCamp/test/1080.test.js mode change 100644 => 100755 .freeCodeCamp/test/1090.test.js mode change 100644 => 100755 .freeCodeCamp/test/110.test.js mode change 100644 => 100755 .freeCodeCamp/test/1100.test.js mode change 100644 => 100755 .freeCodeCamp/test/1110.test.js mode change 100644 => 100755 .freeCodeCamp/test/1120.test.js mode change 100644 => 100755 .freeCodeCamp/test/1130.test.js mode change 100644 => 100755 .freeCodeCamp/test/1140.test.js mode change 100644 => 100755 .freeCodeCamp/test/1150.test.js mode change 100644 => 100755 .freeCodeCamp/test/1160.test.js mode change 100644 => 100755 .freeCodeCamp/test/1170.test.js mode change 100644 => 100755 .freeCodeCamp/test/1180.test.js mode change 100644 => 100755 .freeCodeCamp/test/1190.test.js mode change 100644 => 100755 .freeCodeCamp/test/1200.test.js mode change 100644 => 100755 .freeCodeCamp/test/1210.test.js mode change 100644 => 100755 .freeCodeCamp/test/1220.test.js mode change 100644 => 100755 .freeCodeCamp/test/1230.test.js mode change 100644 => 100755 .freeCodeCamp/test/1240.test.js mode change 100644 => 100755 .freeCodeCamp/test/1250.test.js mode change 100644 => 100755 .freeCodeCamp/test/1260.test.js mode change 100644 => 100755 .freeCodeCamp/test/1270.test.js mode change 100644 => 100755 .freeCodeCamp/test/1280.test.js mode change 100644 => 100755 .freeCodeCamp/test/1290.test.js mode change 100644 => 100755 .freeCodeCamp/test/1300.test.js mode change 100644 => 100755 .freeCodeCamp/test/1310.test.js mode change 100644 => 100755 .freeCodeCamp/test/1320.test.js mode change 100644 => 100755 .freeCodeCamp/test/1330.test.js mode change 100644 => 100755 .freeCodeCamp/test/1340.test.js mode change 100644 => 100755 .freeCodeCamp/test/1350.test.js mode change 100644 => 100755 .freeCodeCamp/test/1360.test.js mode change 100644 => 100755 .freeCodeCamp/test/1370.test.js mode change 100644 => 100755 .freeCodeCamp/test/1380.test.js mode change 100644 => 100755 .freeCodeCamp/test/1385.test.js mode change 100644 => 100755 .freeCodeCamp/test/1390.test.js mode change 100644 => 100755 .freeCodeCamp/test/140.test.js mode change 100644 => 100755 .freeCodeCamp/test/1400.test.js mode change 100644 => 100755 .freeCodeCamp/test/1410.test.js mode change 100644 => 100755 .freeCodeCamp/test/1412.test.js mode change 100644 => 100755 .freeCodeCamp/test/1413.test.js mode change 100644 => 100755 .freeCodeCamp/test/1416.test.js mode change 100644 => 100755 .freeCodeCamp/test/1420.test.js mode change 100644 => 100755 .freeCodeCamp/test/1425.test.js mode change 100644 => 100755 .freeCodeCamp/test/1428.test.js mode change 100644 => 100755 .freeCodeCamp/test/1430.test.js mode change 100644 => 100755 .freeCodeCamp/test/1440.test.js mode change 100644 => 100755 .freeCodeCamp/test/1450.test.js mode change 100644 => 100755 .freeCodeCamp/test/1460.test.js mode change 100644 => 100755 .freeCodeCamp/test/1470.test.js mode change 100644 => 100755 .freeCodeCamp/test/1480.test.js mode change 100644 => 100755 .freeCodeCamp/test/1490.test.js mode change 100644 => 100755 .freeCodeCamp/test/150.test.js mode change 100644 => 100755 .freeCodeCamp/test/1500.test.js mode change 100644 => 100755 .freeCodeCamp/test/1510.test.js mode change 100644 => 100755 .freeCodeCamp/test/1520.test.js mode change 100644 => 100755 .freeCodeCamp/test/1530.test.js mode change 100644 => 100755 .freeCodeCamp/test/1540.test.js mode change 100644 => 100755 .freeCodeCamp/test/1550.test.js mode change 100644 => 100755 .freeCodeCamp/test/1560.test.js mode change 100644 => 100755 .freeCodeCamp/test/1570.test.js mode change 100644 => 100755 .freeCodeCamp/test/1580.test.js mode change 100644 => 100755 .freeCodeCamp/test/1590.test.js mode change 100644 => 100755 .freeCodeCamp/test/160.test.js mode change 100644 => 100755 .freeCodeCamp/test/1600.test.js mode change 100644 => 100755 .freeCodeCamp/test/1610.test.js mode change 100644 => 100755 .freeCodeCamp/test/170.test.js mode change 100644 => 100755 .freeCodeCamp/test/180.test.js mode change 100644 => 100755 .freeCodeCamp/test/190.test.js mode change 100644 => 100755 .freeCodeCamp/test/20.test.js mode change 100644 => 100755 .freeCodeCamp/test/200.test.js mode change 100644 => 100755 .freeCodeCamp/test/210.test.js mode change 100644 => 100755 .freeCodeCamp/test/220.test.js mode change 100644 => 100755 .freeCodeCamp/test/230.test.js mode change 100644 => 100755 .freeCodeCamp/test/240.test.js mode change 100644 => 100755 .freeCodeCamp/test/250.test.js mode change 100644 => 100755 .freeCodeCamp/test/260.test.js mode change 100644 => 100755 .freeCodeCamp/test/270.test.js mode change 100644 => 100755 .freeCodeCamp/test/280.test.js mode change 100644 => 100755 .freeCodeCamp/test/290.test.js mode change 100644 => 100755 .freeCodeCamp/test/30.test.js mode change 100644 => 100755 .freeCodeCamp/test/300.test.js mode change 100644 => 100755 .freeCodeCamp/test/310.test.js mode change 100644 => 100755 .freeCodeCamp/test/320.test.js mode change 100644 => 100755 .freeCodeCamp/test/323.test.js mode change 100644 => 100755 .freeCodeCamp/test/326.test.js mode change 100644 => 100755 .freeCodeCamp/test/330.test.js mode change 100644 => 100755 .freeCodeCamp/test/340.test.js mode change 100644 => 100755 .freeCodeCamp/test/345.test.js mode change 100644 => 100755 .freeCodeCamp/test/35.test.js mode change 100644 => 100755 .freeCodeCamp/test/350.test.js mode change 100644 => 100755 .freeCodeCamp/test/360.test.js mode change 100644 => 100755 .freeCodeCamp/test/363.test.js mode change 100644 => 100755 .freeCodeCamp/test/366.test.js mode change 100644 => 100755 .freeCodeCamp/test/370.test.js mode change 100644 => 100755 .freeCodeCamp/test/380.test.js mode change 100644 => 100755 .freeCodeCamp/test/390.test.js mode change 100644 => 100755 .freeCodeCamp/test/40.test.js mode change 100644 => 100755 .freeCodeCamp/test/400.test.js mode change 100644 => 100755 .freeCodeCamp/test/410.test.js mode change 100644 => 100755 .freeCodeCamp/test/420.test.js mode change 100644 => 100755 .freeCodeCamp/test/425.test.js mode change 100644 => 100755 .freeCodeCamp/test/430.test.js mode change 100644 => 100755 .freeCodeCamp/test/440.test.js mode change 100644 => 100755 .freeCodeCamp/test/450.test.js mode change 100644 => 100755 .freeCodeCamp/test/460.test.js mode change 100644 => 100755 .freeCodeCamp/test/470.test.js mode change 100644 => 100755 .freeCodeCamp/test/480.test.js mode change 100644 => 100755 .freeCodeCamp/test/490.test.js mode change 100644 => 100755 .freeCodeCamp/test/50.test.js mode change 100644 => 100755 .freeCodeCamp/test/500.test.js mode change 100644 => 100755 .freeCodeCamp/test/505.test.js mode change 100644 => 100755 .freeCodeCamp/test/510.test.js mode change 100644 => 100755 .freeCodeCamp/test/520.test.js mode change 100644 => 100755 .freeCodeCamp/test/530.test.js mode change 100644 => 100755 .freeCodeCamp/test/540.test.js mode change 100644 => 100755 .freeCodeCamp/test/542.test.js mode change 100644 => 100755 .freeCodeCamp/test/544.test.js mode change 100644 => 100755 .freeCodeCamp/test/546.test.js mode change 100644 => 100755 .freeCodeCamp/test/548.test.js mode change 100644 => 100755 .freeCodeCamp/test/550.test.js mode change 100644 => 100755 .freeCodeCamp/test/552.test.js mode change 100644 => 100755 .freeCodeCamp/test/554.test.js mode change 100644 => 100755 .freeCodeCamp/test/556.test.js mode change 100644 => 100755 .freeCodeCamp/test/558.test.js mode change 100644 => 100755 .freeCodeCamp/test/560.test.js mode change 100644 => 100755 .freeCodeCamp/test/562.test.js mode change 100644 => 100755 .freeCodeCamp/test/564.test.js mode change 100644 => 100755 .freeCodeCamp/test/566.test.js mode change 100644 => 100755 .freeCodeCamp/test/568.test.js mode change 100644 => 100755 .freeCodeCamp/test/570.test.js mode change 100644 => 100755 .freeCodeCamp/test/572.test.js mode change 100644 => 100755 .freeCodeCamp/test/574.test.js mode change 100644 => 100755 .freeCodeCamp/test/575.test.js mode change 100644 => 100755 .freeCodeCamp/test/576.test.js mode change 100644 => 100755 .freeCodeCamp/test/582.test.js mode change 100644 => 100755 .freeCodeCamp/test/584.test.js mode change 100644 => 100755 .freeCodeCamp/test/586.test.js mode change 100644 => 100755 .freeCodeCamp/test/588.test.js mode change 100644 => 100755 .freeCodeCamp/test/590.test.js mode change 100644 => 100755 .freeCodeCamp/test/60.test.js mode change 100644 => 100755 .freeCodeCamp/test/600.test.js mode change 100644 => 100755 .freeCodeCamp/test/610.test.js mode change 100644 => 100755 .freeCodeCamp/test/615.test.js mode change 100644 => 100755 .freeCodeCamp/test/620.test.js mode change 100644 => 100755 .freeCodeCamp/test/630.test.js mode change 100644 => 100755 .freeCodeCamp/test/640.test.js mode change 100644 => 100755 .freeCodeCamp/test/650.test.js mode change 100644 => 100755 .freeCodeCamp/test/660.test.js mode change 100644 => 100755 .freeCodeCamp/test/670.test.js mode change 100644 => 100755 .freeCodeCamp/test/675.test.js mode change 100644 => 100755 .freeCodeCamp/test/680.test.js mode change 100644 => 100755 .freeCodeCamp/test/690.test.js mode change 100644 => 100755 .freeCodeCamp/test/692.test.js mode change 100644 => 100755 .freeCodeCamp/test/694.test.js mode change 100644 => 100755 .freeCodeCamp/test/696.test.js mode change 100644 => 100755 .freeCodeCamp/test/698.test.js mode change 100644 => 100755 .freeCodeCamp/test/70.test.js mode change 100644 => 100755 .freeCodeCamp/test/700.test.js mode change 100644 => 100755 .freeCodeCamp/test/710.test.js mode change 100644 => 100755 .freeCodeCamp/test/730.test.js mode change 100644 => 100755 .freeCodeCamp/test/740.test.js mode change 100644 => 100755 .freeCodeCamp/test/750.test.js mode change 100644 => 100755 .freeCodeCamp/test/760.test.js mode change 100644 => 100755 .freeCodeCamp/test/770.test.js mode change 100644 => 100755 .freeCodeCamp/test/780.test.js mode change 100644 => 100755 .freeCodeCamp/test/790.test.js mode change 100644 => 100755 .freeCodeCamp/test/80.test.js mode change 100644 => 100755 .freeCodeCamp/test/800.test.js mode change 100644 => 100755 .freeCodeCamp/test/810.test.js mode change 100644 => 100755 .freeCodeCamp/test/815.test.js mode change 100644 => 100755 .freeCodeCamp/test/817.test.js mode change 100644 => 100755 .freeCodeCamp/test/818.test.js mode change 100644 => 100755 .freeCodeCamp/test/819.test.js mode change 100644 => 100755 .freeCodeCamp/test/820.test.js mode change 100644 => 100755 .freeCodeCamp/test/822.test.js mode change 100644 => 100755 .freeCodeCamp/test/824.test.js mode change 100644 => 100755 .freeCodeCamp/test/826.test.js mode change 100644 => 100755 .freeCodeCamp/test/828.test.js mode change 100644 => 100755 .freeCodeCamp/test/830.test.js mode change 100644 => 100755 .freeCodeCamp/test/835.test.js mode change 100644 => 100755 .freeCodeCamp/test/840.test.js mode change 100644 => 100755 .freeCodeCamp/test/881.test.js mode change 100644 => 100755 .freeCodeCamp/test/884.test.js mode change 100644 => 100755 .freeCodeCamp/test/887.test.js mode change 100644 => 100755 .freeCodeCamp/test/890.test.js mode change 100644 => 100755 .freeCodeCamp/test/891.test.js mode change 100644 => 100755 .freeCodeCamp/test/893.test.js mode change 100644 => 100755 .freeCodeCamp/test/896.test.js mode change 100644 => 100755 .freeCodeCamp/test/897.test.js mode change 100644 => 100755 .freeCodeCamp/test/899.test.js mode change 100644 => 100755 .freeCodeCamp/test/90.test.js mode change 100644 => 100755 .freeCodeCamp/test/902.test.js mode change 100644 => 100755 .freeCodeCamp/test/905.test.js mode change 100644 => 100755 .freeCodeCamp/test/908.test.js mode change 100644 => 100755 .freeCodeCamp/test/911.test.js mode change 100644 => 100755 .freeCodeCamp/test/912.test.js mode change 100644 => 100755 .freeCodeCamp/test/913.test.js mode change 100644 => 100755 .freeCodeCamp/test/914.test.js mode change 100644 => 100755 .freeCodeCamp/test/916.test.js mode change 100644 => 100755 .freeCodeCamp/test/918.test.js mode change 100644 => 100755 .freeCodeCamp/test/920.test.js mode change 100644 => 100755 .freeCodeCamp/test/928.test.js mode change 100644 => 100755 .freeCodeCamp/test/930.test.js mode change 100644 => 100755 .freeCodeCamp/test/940.test.js mode change 100644 => 100755 .freeCodeCamp/test/945.test.js mode change 100644 => 100755 .freeCodeCamp/test/950.test.js mode change 100644 => 100755 .freeCodeCamp/test/960.test.js mode change 100644 => 100755 .freeCodeCamp/test/970.test.js mode change 100644 => 100755 .freeCodeCamp/test/980.test.js mode change 100644 => 100755 .freeCodeCamp/test/990.test.js mode change 100644 => 100755 .freeCodeCamp/test/utils.js diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/package-lock.json b/.freeCodeCamp/package-lock.json old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/package.json b/.freeCodeCamp/package.json old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index b2f7080375..805571976a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -1,2 +1,7 @@ /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 8d6a682b7a..e8bb9eea4c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -33,3 +33,74 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} echo hello bash +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +questionnaire.sh +touch questionnarie.sh +touch questionnaire.sh diff --git a/.freeCodeCamp/test/10.test.js b/.freeCodeCamp/test/10.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/100.test.js b/.freeCodeCamp/test/100.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1000.test.js b/.freeCodeCamp/test/1000.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1010.test.js b/.freeCodeCamp/test/1010.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1020.test.js b/.freeCodeCamp/test/1020.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1030.test.js b/.freeCodeCamp/test/1030.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1040.test.js b/.freeCodeCamp/test/1040.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1050.test.js b/.freeCodeCamp/test/1050.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1060.test.js b/.freeCodeCamp/test/1060.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1070.test.js b/.freeCodeCamp/test/1070.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1080.test.js b/.freeCodeCamp/test/1080.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1090.test.js b/.freeCodeCamp/test/1090.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/110.test.js b/.freeCodeCamp/test/110.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1100.test.js b/.freeCodeCamp/test/1100.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1110.test.js b/.freeCodeCamp/test/1110.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1120.test.js b/.freeCodeCamp/test/1120.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1130.test.js b/.freeCodeCamp/test/1130.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1140.test.js b/.freeCodeCamp/test/1140.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1150.test.js b/.freeCodeCamp/test/1150.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1160.test.js b/.freeCodeCamp/test/1160.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1170.test.js b/.freeCodeCamp/test/1170.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1180.test.js b/.freeCodeCamp/test/1180.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1190.test.js b/.freeCodeCamp/test/1190.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1200.test.js b/.freeCodeCamp/test/1200.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1210.test.js b/.freeCodeCamp/test/1210.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1220.test.js b/.freeCodeCamp/test/1220.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1230.test.js b/.freeCodeCamp/test/1230.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1240.test.js b/.freeCodeCamp/test/1240.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1250.test.js b/.freeCodeCamp/test/1250.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1260.test.js b/.freeCodeCamp/test/1260.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1270.test.js b/.freeCodeCamp/test/1270.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1280.test.js b/.freeCodeCamp/test/1280.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1290.test.js b/.freeCodeCamp/test/1290.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1300.test.js b/.freeCodeCamp/test/1300.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1310.test.js b/.freeCodeCamp/test/1310.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1320.test.js b/.freeCodeCamp/test/1320.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1330.test.js b/.freeCodeCamp/test/1330.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1340.test.js b/.freeCodeCamp/test/1340.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1350.test.js b/.freeCodeCamp/test/1350.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1360.test.js b/.freeCodeCamp/test/1360.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1370.test.js b/.freeCodeCamp/test/1370.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1380.test.js b/.freeCodeCamp/test/1380.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1385.test.js b/.freeCodeCamp/test/1385.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1390.test.js b/.freeCodeCamp/test/1390.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/140.test.js b/.freeCodeCamp/test/140.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1400.test.js b/.freeCodeCamp/test/1400.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1410.test.js b/.freeCodeCamp/test/1410.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1412.test.js b/.freeCodeCamp/test/1412.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1413.test.js b/.freeCodeCamp/test/1413.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1416.test.js b/.freeCodeCamp/test/1416.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1420.test.js b/.freeCodeCamp/test/1420.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1425.test.js b/.freeCodeCamp/test/1425.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1428.test.js b/.freeCodeCamp/test/1428.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1430.test.js b/.freeCodeCamp/test/1430.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1440.test.js b/.freeCodeCamp/test/1440.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1450.test.js b/.freeCodeCamp/test/1450.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1460.test.js b/.freeCodeCamp/test/1460.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1470.test.js b/.freeCodeCamp/test/1470.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1480.test.js b/.freeCodeCamp/test/1480.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1490.test.js b/.freeCodeCamp/test/1490.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/150.test.js b/.freeCodeCamp/test/150.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1500.test.js b/.freeCodeCamp/test/1500.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1510.test.js b/.freeCodeCamp/test/1510.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1520.test.js b/.freeCodeCamp/test/1520.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1530.test.js b/.freeCodeCamp/test/1530.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1540.test.js b/.freeCodeCamp/test/1540.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1550.test.js b/.freeCodeCamp/test/1550.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1560.test.js b/.freeCodeCamp/test/1560.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1570.test.js b/.freeCodeCamp/test/1570.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1580.test.js b/.freeCodeCamp/test/1580.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1590.test.js b/.freeCodeCamp/test/1590.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/160.test.js b/.freeCodeCamp/test/160.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1600.test.js b/.freeCodeCamp/test/1600.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/1610.test.js b/.freeCodeCamp/test/1610.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/170.test.js b/.freeCodeCamp/test/170.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/180.test.js b/.freeCodeCamp/test/180.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/190.test.js b/.freeCodeCamp/test/190.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/20.test.js b/.freeCodeCamp/test/20.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/200.test.js b/.freeCodeCamp/test/200.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/210.test.js b/.freeCodeCamp/test/210.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/220.test.js b/.freeCodeCamp/test/220.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/230.test.js b/.freeCodeCamp/test/230.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/240.test.js b/.freeCodeCamp/test/240.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/250.test.js b/.freeCodeCamp/test/250.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/260.test.js b/.freeCodeCamp/test/260.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/270.test.js b/.freeCodeCamp/test/270.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/280.test.js b/.freeCodeCamp/test/280.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/290.test.js b/.freeCodeCamp/test/290.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/30.test.js b/.freeCodeCamp/test/30.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/300.test.js b/.freeCodeCamp/test/300.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/310.test.js b/.freeCodeCamp/test/310.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/320.test.js b/.freeCodeCamp/test/320.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/323.test.js b/.freeCodeCamp/test/323.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/326.test.js b/.freeCodeCamp/test/326.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/330.test.js b/.freeCodeCamp/test/330.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/340.test.js b/.freeCodeCamp/test/340.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/345.test.js b/.freeCodeCamp/test/345.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/35.test.js b/.freeCodeCamp/test/35.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/350.test.js b/.freeCodeCamp/test/350.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/360.test.js b/.freeCodeCamp/test/360.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/363.test.js b/.freeCodeCamp/test/363.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/366.test.js b/.freeCodeCamp/test/366.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/370.test.js b/.freeCodeCamp/test/370.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/380.test.js b/.freeCodeCamp/test/380.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/390.test.js b/.freeCodeCamp/test/390.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/40.test.js b/.freeCodeCamp/test/40.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/400.test.js b/.freeCodeCamp/test/400.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/410.test.js b/.freeCodeCamp/test/410.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/420.test.js b/.freeCodeCamp/test/420.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/425.test.js b/.freeCodeCamp/test/425.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/430.test.js b/.freeCodeCamp/test/430.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/440.test.js b/.freeCodeCamp/test/440.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/450.test.js b/.freeCodeCamp/test/450.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/460.test.js b/.freeCodeCamp/test/460.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/470.test.js b/.freeCodeCamp/test/470.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/480.test.js b/.freeCodeCamp/test/480.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/490.test.js b/.freeCodeCamp/test/490.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/50.test.js b/.freeCodeCamp/test/50.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/500.test.js b/.freeCodeCamp/test/500.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/505.test.js b/.freeCodeCamp/test/505.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/510.test.js b/.freeCodeCamp/test/510.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/520.test.js b/.freeCodeCamp/test/520.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/530.test.js b/.freeCodeCamp/test/530.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/540.test.js b/.freeCodeCamp/test/540.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/542.test.js b/.freeCodeCamp/test/542.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/544.test.js b/.freeCodeCamp/test/544.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/546.test.js b/.freeCodeCamp/test/546.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/548.test.js b/.freeCodeCamp/test/548.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/550.test.js b/.freeCodeCamp/test/550.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/552.test.js b/.freeCodeCamp/test/552.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/554.test.js b/.freeCodeCamp/test/554.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/556.test.js b/.freeCodeCamp/test/556.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/558.test.js b/.freeCodeCamp/test/558.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/560.test.js b/.freeCodeCamp/test/560.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/562.test.js b/.freeCodeCamp/test/562.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/564.test.js b/.freeCodeCamp/test/564.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/566.test.js b/.freeCodeCamp/test/566.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/568.test.js b/.freeCodeCamp/test/568.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/570.test.js b/.freeCodeCamp/test/570.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/572.test.js b/.freeCodeCamp/test/572.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/574.test.js b/.freeCodeCamp/test/574.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/575.test.js b/.freeCodeCamp/test/575.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/576.test.js b/.freeCodeCamp/test/576.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/582.test.js b/.freeCodeCamp/test/582.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/584.test.js b/.freeCodeCamp/test/584.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/586.test.js b/.freeCodeCamp/test/586.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/588.test.js b/.freeCodeCamp/test/588.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/590.test.js b/.freeCodeCamp/test/590.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/60.test.js b/.freeCodeCamp/test/60.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/600.test.js b/.freeCodeCamp/test/600.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/610.test.js b/.freeCodeCamp/test/610.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/615.test.js b/.freeCodeCamp/test/615.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/620.test.js b/.freeCodeCamp/test/620.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/630.test.js b/.freeCodeCamp/test/630.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/640.test.js b/.freeCodeCamp/test/640.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/650.test.js b/.freeCodeCamp/test/650.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/660.test.js b/.freeCodeCamp/test/660.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/670.test.js b/.freeCodeCamp/test/670.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/675.test.js b/.freeCodeCamp/test/675.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/680.test.js b/.freeCodeCamp/test/680.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/690.test.js b/.freeCodeCamp/test/690.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/692.test.js b/.freeCodeCamp/test/692.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/694.test.js b/.freeCodeCamp/test/694.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/696.test.js b/.freeCodeCamp/test/696.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/698.test.js b/.freeCodeCamp/test/698.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/70.test.js b/.freeCodeCamp/test/70.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/700.test.js b/.freeCodeCamp/test/700.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/710.test.js b/.freeCodeCamp/test/710.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/730.test.js b/.freeCodeCamp/test/730.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/740.test.js b/.freeCodeCamp/test/740.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/750.test.js b/.freeCodeCamp/test/750.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/760.test.js b/.freeCodeCamp/test/760.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/770.test.js b/.freeCodeCamp/test/770.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/780.test.js b/.freeCodeCamp/test/780.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/790.test.js b/.freeCodeCamp/test/790.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/80.test.js b/.freeCodeCamp/test/80.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/800.test.js b/.freeCodeCamp/test/800.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/810.test.js b/.freeCodeCamp/test/810.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/815.test.js b/.freeCodeCamp/test/815.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/817.test.js b/.freeCodeCamp/test/817.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/818.test.js b/.freeCodeCamp/test/818.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/819.test.js b/.freeCodeCamp/test/819.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/820.test.js b/.freeCodeCamp/test/820.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/822.test.js b/.freeCodeCamp/test/822.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/824.test.js b/.freeCodeCamp/test/824.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/826.test.js b/.freeCodeCamp/test/826.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/828.test.js b/.freeCodeCamp/test/828.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/830.test.js b/.freeCodeCamp/test/830.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/835.test.js b/.freeCodeCamp/test/835.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/840.test.js b/.freeCodeCamp/test/840.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/881.test.js b/.freeCodeCamp/test/881.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/884.test.js b/.freeCodeCamp/test/884.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/887.test.js b/.freeCodeCamp/test/887.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/890.test.js b/.freeCodeCamp/test/890.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/891.test.js b/.freeCodeCamp/test/891.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/893.test.js b/.freeCodeCamp/test/893.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/896.test.js b/.freeCodeCamp/test/896.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/897.test.js b/.freeCodeCamp/test/897.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/899.test.js b/.freeCodeCamp/test/899.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/90.test.js b/.freeCodeCamp/test/90.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/902.test.js b/.freeCodeCamp/test/902.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/905.test.js b/.freeCodeCamp/test/905.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/908.test.js b/.freeCodeCamp/test/908.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/911.test.js b/.freeCodeCamp/test/911.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/912.test.js b/.freeCodeCamp/test/912.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/913.test.js b/.freeCodeCamp/test/913.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/914.test.js b/.freeCodeCamp/test/914.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/916.test.js b/.freeCodeCamp/test/916.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/918.test.js b/.freeCodeCamp/test/918.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/920.test.js b/.freeCodeCamp/test/920.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/928.test.js b/.freeCodeCamp/test/928.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/930.test.js b/.freeCodeCamp/test/930.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/940.test.js b/.freeCodeCamp/test/940.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/945.test.js b/.freeCodeCamp/test/945.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/950.test.js b/.freeCodeCamp/test/950.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/960.test.js b/.freeCodeCamp/test/960.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/970.test.js b/.freeCodeCamp/test/970.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/980.test.js b/.freeCodeCamp/test/980.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/990.test.js b/.freeCodeCamp/test/990.test.js old mode 100644 new mode 100755 diff --git a/.freeCodeCamp/test/utils.js b/.freeCodeCamp/test/utils.js old mode 100644 new mode 100755 From 49723d3810c03a627a3cbb5227409d1641773697 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:08:59 -0600 Subject: [PATCH 006/325] 30.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset.sh | 1 + .freeCodeCamp/reset_files/questionnaire.sh | 0 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100755 .freeCodeCamp/reset_files/questionnaire.sh diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index ecf66ddf01..fabc5d47e3 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/20.test.js"], + "spec": ["./test/30.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset.sh b/.freeCodeCamp/reset.sh index e69de29bb2..626774efde 100755 --- a/.freeCodeCamp/reset.sh +++ b/.freeCodeCamp/reset.sh @@ -0,0 +1 @@ +cp ./.freeCodeCamp/reset_files/questionnaire.sh . \ No newline at end of file diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh new file mode 100755 index 0000000000..e69de29bb2 From e2ffae737903c56fb12e98e4607670a6055afd2b Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:12:12 +0000 Subject: [PATCH 007/325] Save progress: 30.1 --- .freeCodeCamp/test/.cwd | 10 ++++++++++ .freeCodeCamp/test/.next_command | 10 ++++++++++ questionnaire.sh | 1 + questionnarie.sh | 0 4 files changed, 21 insertions(+) create mode 100644 questionnaire.sh create mode 100644 questionnarie.sh diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 805571976a..d86a12df8b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -5,3 +5,13 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index e8bb9eea4c..022e61ae9e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -104,3 +104,13 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} questionnaire.sh touch questionnarie.sh touch questionnaire.sh +git origin https://github.com/Mofazzal-Hossain-Evan/learn-bash-scripting-by-building-five-programs +git status +git init +git remote add origin https://github.com/Mofazzal-Hossain-Evan/learn-bash-scripting-by-building-five-programs.git +git checkout -b main +git push origin main +git remote -v +git remote set-url origin https://github.com/Mofazzal-Hossain-Evan/learn-bash-scripting-by-building-five-programs.git +git push origin main +echo hello questionnaire diff --git a/questionnaire.sh b/questionnaire.sh new file mode 100644 index 0000000000..c7363c798d --- /dev/null +++ b/questionnaire.sh @@ -0,0 +1 @@ +echo hello questionnaire \ No newline at end of file diff --git a/questionnarie.sh b/questionnarie.sh new file mode 100644 index 0000000000..e69de29bb2 From 92f065a845ff103c83e31147cabce879c992a3f2 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 19:16:27 -0600 Subject: [PATCH 008/325] 35.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index fabc5d47e3..dde8ad5d59 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/30.test.js"], + "spec": ["./test/35.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From f8046104052475a443529f1d6589d8c95eaf9f44 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:12:56 +0000 Subject: [PATCH 009/325] Save progress: 35.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index d86a12df8b..b670a0f182 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -15,3 +15,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 022e61ae9e..4505383b11 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -114,3 +114,4 @@ git remote -v git remote set-url origin https://github.com/Mofazzal-Hossain-Evan/learn-bash-scripting-by-building-five-programs.git git push origin main echo hello questionnaire +sh questionnaire.sh From 080ed98d4464cfd24074e0eb0fa41511aaa75800 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:11:43 -0600 Subject: [PATCH 010/325] 40.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index dde8ad5d59..92f441fb10 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/35.test.js"], + "spec": ["./test/40.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index e69de29bb2..c7363c798d 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -0,0 +1 @@ +echo hello questionnaire \ No newline at end of file From f13d7f63c1cefab4dd7da41a6a534c6be3db59ba Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:23:40 +0000 Subject: [PATCH 011/325] Save progress: 40.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + questionnarie.sh | 0 3 files changed, 2 insertions(+) delete mode 100644 questionnarie.sh diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index b670a0f182..51c70e9546 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -16,3 +16,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 4505383b11..e2a37d6642 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -115,3 +115,4 @@ git remote set-url origin https://github.com/Mofazzal-Hossain-Evan/learn-bash-sc git push origin main echo hello questionnaire sh questionnaire.sh +bash questionnaire.sh diff --git a/questionnarie.sh b/questionnarie.sh deleted file mode 100644 index e69de29bb2..0000000000 From 97174ec1ecdf13306720d68eb8da02149cc86017 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:14:24 -0600 Subject: [PATCH 012/325] 50.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 92f441fb10..9fddadda33 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/40.test.js"], + "spec": ["./test/50.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 2f3b72b81f20b86a33746706340a3682826673d3 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:24:12 +0000 Subject: [PATCH 013/325] Save progress: 50.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 51c70e9546..26c56488ec 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -17,3 +17,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index e2a37d6642..3eb141831f 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -116,3 +116,5 @@ git push origin main echo hello questionnaire sh questionnaire.sh bash questionnaire.sh +wich bash +which bash From ef8913af8217870ecdcec8f733876a8a26913302 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:16:04 -0600 Subject: [PATCH 014/325] 60.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 9fddadda33..632cdd382d 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/50.test.js"], + "spec": ["./test/60.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 9edb2ac174f4aa15311158b6bc38e2ce33bc121e Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:27:18 +0000 Subject: [PATCH 015/325] Save progress: 60.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + questionnaire.sh | 1 + 3 files changed, 3 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 26c56488ec..96cf86525d 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -19,3 +19,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 3eb141831f..f9ae93794e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -118,3 +118,4 @@ sh questionnaire.sh bash questionnaire.sh wich bash which bash +shebang diff --git a/questionnaire.sh b/questionnaire.sh index c7363c798d..3461c3aa57 100644 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1 +1,2 @@ +#!/bin/bash echo hello questionnaire \ No newline at end of file From f5d84178e795e82cba0274f5c260557e9cf6b9c2 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:22:01 -0600 Subject: [PATCH 016/325] 70.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 632cdd382d..e8cbeeb7e8 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/60.test.js"], + "spec": ["./test/70.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index c7363c798d..74f56419af 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1 +1,3 @@ +#!/bin/bash + echo hello questionnaire \ No newline at end of file From b5ecac02fe8b320678a8673418a3c6a046d45dee Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:27:55 +0000 Subject: [PATCH 017/325] Save progress: 70.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 96cf86525d..8087d576db 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -20,3 +20,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index f9ae93794e..321067bd25 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -119,3 +119,4 @@ bash questionnaire.sh wich bash which bash shebang +./questionnaire.sh From aa5a0bc797b997d28841167a57ba08685fb819c3 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:22:15 -0600 Subject: [PATCH 018/325] 80.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e8cbeeb7e8..9bcd52117c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/70.test.js"], + "spec": ["./test/80.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 79f9ea62c2e7cf6d0b8d7f26d15bf6d08e361d57 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:33:33 +0000 Subject: [PATCH 019/325] Save progress: 80.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 8087d576db..459c3d794a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -21,3 +21,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 321067bd25..e5e274e642 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -120,3 +120,4 @@ wich bash which bash shebang ./questionnaire.sh +ls --color=auto -l From 960291eeb3105c59210b57cbc69a02ddd6800274 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:22:34 -0600 Subject: [PATCH 020/325] 90.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 9bcd52117c..2fbb3230ee 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/80.test.js"], + "spec": ["./test/90.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 7418dde6709cb1283810b1cc8c29ab12bfc738ae Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:34:26 +0000 Subject: [PATCH 021/325] Save progress: 90.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + questionnaire.sh | 0 3 files changed, 2 insertions(+) mode change 100644 => 100755 questionnaire.sh diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 459c3d794a..7544078509 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -22,3 +22,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index e5e274e642..46eae69604 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -121,3 +121,4 @@ which bash shebang ./questionnaire.sh ls --color=auto -l +chmod +x questionnaire.sh diff --git a/questionnaire.sh b/questionnaire.sh old mode 100644 new mode 100755 From 5d210e1c4f421cb9e8d3570232ea2d43dc99642b Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:23:49 -0600 Subject: [PATCH 022/325] 100.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 2fbb3230ee..b333473bb8 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/90.test.js"], + "spec": ["./test/100.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From c322d042bbe1334c71d211477217cb0a932b9e34 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:41:15 +0000 Subject: [PATCH 023/325] Save progress: 100.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 7544078509..80546422b4 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -23,3 +23,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 46eae69604..1cf0c262b5 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -122,3 +122,4 @@ shebang ./questionnaire.sh ls --color=auto -l chmod +x questionnaire.sh +ls --color=auto -l From 87f65032780fd25f1d64c431610418c8ab56fcaa Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:24:44 -0600 Subject: [PATCH 024/325] 110.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index b333473bb8..fcaba9244a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/100.test.js"], + "spec": ["./test/110.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From af3701366f95ce3c37c1a1e1fc896fd59a7a7d7f Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:41:52 +0000 Subject: [PATCH 025/325] Save progress: 110.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 80546422b4..23e51754f5 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -24,3 +24,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 1cf0c262b5..0ff0e0a63d 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -123,3 +123,5 @@ shebang ls --color=auto -l chmod +x questionnaire.sh ls --color=auto -l +./questionnaire/sh +./questionnaire.sh From a836f28e0f0b9c0f6e01278b4c6082bd8a1a2a0b Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:26:19 -0600 Subject: [PATCH 026/325] 140.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index fcaba9244a..7eca221c57 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/110.test.js"], + "spec": ["./test/140.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From e1ddc37cb274d63e064b9f8322a105058b6e9df9 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:56:09 +0000 Subject: [PATCH 027/325] Save progress: 140.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ questionnaire.sh | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 23e51754f5..502ff2b807 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -26,3 +26,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 0ff0e0a63d..ed56226859 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -125,3 +125,5 @@ chmod +x questionnaire.sh ls --color=auto -l ./questionnaire/sh ./questionnaire.sh +ls --color=auto -l +ls --color=auto -l diff --git a/questionnaire.sh b/questionnaire.sh index 3461c3aa57..332ed32fdd 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,2 +1,4 @@ #!/bin/bash -echo hello questionnaire \ No newline at end of file +echo hello questionnaire + +ls -l \ No newline at end of file From 1316453923b93f01ca0bc4f235a600cd110795c0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:26:37 -0600 Subject: [PATCH 028/325] 150.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 7eca221c57..fa47d4f738 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/140.test.js"], + "spec": ["./test/150.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 74f56419af..7e99e8375d 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1,3 +1,4 @@ #!/bin/bash -echo hello questionnaire \ No newline at end of file +echo hello questionnaire +ls -l From c806cd4bd09d14fd47a012b457d8ec5ba06c99ef Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:56:29 +0000 Subject: [PATCH 029/325] Save progress: 150.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 502ff2b807..9d2edf5989 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -28,3 +28,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index ed56226859..8839cc21d9 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -127,3 +127,4 @@ ls --color=auto -l ./questionnaire.sh ls --color=auto -l ls --color=auto -l +./questionnaire.sh From f874387abe0a4b86ac7ff1578bca780b13377bbd Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:26:59 -0600 Subject: [PATCH 030/325] 160.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index fa47d4f738..0c832c542a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/150.test.js"], + "spec": ["./test/160.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 50ef4e62390991555dee794ba2ae631a6f6449a9 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 15:58:40 +0000 Subject: [PATCH 031/325] Save progress: 160.1 --- questionnaire.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/questionnaire.sh b/questionnaire.sh index 332ed32fdd..a9bf588e2f 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,4 +1 @@ #!/bin/bash -echo hello questionnaire - -ls -l \ No newline at end of file From 95b64622d97ba931666817ffddda899d976f17d3 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:27:33 -0600 Subject: [PATCH 032/325] 170.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 0c832c542a..c9419733aa 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/160.test.js"], + "spec": ["./test/170.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 7e99e8375d..a9bf588e2f 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1,4 +1 @@ #!/bin/bash - -echo hello questionnaire -ls -l From 54556a2413409e1e311a7a26a32932958ad639eb Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:00:43 +0000 Subject: [PATCH 033/325] Save progress: 170.1 --- questionnaire.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/questionnaire.sh b/questionnaire.sh index a9bf588e2f..7a0deccde9 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1 +1,2 @@ #!/bin/bash +QUESTION1="What's your name?" \ No newline at end of file From 96638f44d6d73e4aa6d705502a2e4bb1dd17b507 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:28:14 -0600 Subject: [PATCH 034/325] 180.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index c9419733aa..e7264f2354 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/170.test.js"], + "spec": ["./test/180.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index a9bf588e2f..77b9f62a3c 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1 +1,3 @@ #!/bin/bash + +QUESTION1="What's your name?" From 08cc73d60747a1575da4ba2f777e9fa071ef7d31 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:01:44 +0000 Subject: [PATCH 035/325] Save progress: 180.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + questionnaire.sh | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 9d2edf5989..3838208a2e 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -29,3 +29,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 8839cc21d9..cafce72796 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -128,3 +128,4 @@ ls --color=auto -l ls --color=auto -l ls --color=auto -l ./questionnaire.sh +echo $QUESTION1 diff --git a/questionnaire.sh b/questionnaire.sh index 7a0deccde9..d22840e805 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,2 +1,3 @@ #!/bin/bash -QUESTION1="What's your name?" \ No newline at end of file +QUESTION1="What's your name?" +echo $QUESTION1 \ No newline at end of file From 20dae63c506753e8371bf12cacf6f7ebd862580c Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:30:04 -0600 Subject: [PATCH 036/325] 190.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e7264f2354..c0c1108f22 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/180.test.js"], + "spec": ["./test/190.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 77b9f62a3c..340bccd4e1 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1,3 +1,5 @@ #!/bin/bash QUESTION1="What's your name?" + +echo $QUESTION1 From 30b16900734547849ee6cec51f8f683092a0b7c9 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:04:20 +0000 Subject: [PATCH 037/325] Save progress: 190.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 3838208a2e..cd7284609f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -30,3 +30,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index cafce72796..aaf6ae0cee 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -129,3 +129,4 @@ ls --color=auto -l ls --color=auto -l ./questionnaire.sh echo $QUESTION1 +./questionnaire.sh From d7f0583cf259f642effc6cbbc90cfb08d9d0831c Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:31:29 -0600 Subject: [PATCH 038/325] 200.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index c0c1108f22..087d25d9b6 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/190.test.js"], + "spec": ["./test/200.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 0e1914a8d3a06f467546cf5e9e91aea1ae34df84 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:05:05 +0000 Subject: [PATCH 039/325] Save progress: 200.1 --- questionnaire.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/questionnaire.sh b/questionnaire.sh index d22840e805..05b3e14d6d 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,3 +1,4 @@ #!/bin/bash QUESTION1="What's your name?" -echo $QUESTION1 \ No newline at end of file +echo $QUESTION1 +read NAME \ No newline at end of file From 37b921eaf172149681956b7a8216e2f9c4f60446 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:32:06 -0600 Subject: [PATCH 040/325] 210.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 087d25d9b6..4606d370e6 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/200.test.js"], + "spec": ["./test/210.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 340bccd4e1..7ccaeb9ad2 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -3,3 +3,4 @@ QUESTION1="What's your name?" echo $QUESTION1 +read NAME From 65f37e906d3b471134243384cb9391415831b25d Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:10:04 +0000 Subject: [PATCH 041/325] Save progress: 210.1 --- .freeCodeCamp/test/.cwd | 4 ++++ .freeCodeCamp/test/.next_command | 4 ++++ questionnaire.sh | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index cd7284609f..6304500b5f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -31,3 +31,7 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index aaf6ae0cee..64b154e823 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -130,3 +130,7 @@ ls --color=auto -l ./questionnaire.sh echo $QUESTION1 ./questionnaire.sh +echo hello $NAME +echo Hello $NAME +echo hello name +hello $NAME diff --git a/questionnaire.sh b/questionnaire.sh index 05b3e14d6d..ea8e7dbff8 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,4 +1,5 @@ #!/bin/bash QUESTION1="What's your name?" echo $QUESTION1 -read NAME \ No newline at end of file +read NAME +echo Hello $NAME. \ No newline at end of file From bdc9fe7b21860d7351af5dc511847d28832d7c89 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:32:14 -0600 Subject: [PATCH 042/325] 220.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 4606d370e6..20cfea8a0a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/210.test.js"], + "spec": ["./test/220.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 7ccaeb9ad2..a584e217b4 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -4,3 +4,5 @@ QUESTION1="What's your name?" echo $QUESTION1 read NAME + +echo Hello $NAME. From 76bc45ea9640638fb1e43d40a40a8c890fd9803c Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:14:55 +0000 Subject: [PATCH 043/325] Save progress: 220.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 6304500b5f..97de382889 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -35,3 +35,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 64b154e823..1c646f6e9e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -134,3 +134,4 @@ echo hello $NAME echo Hello $NAME echo hello name hello $NAME +./questionnaire.sh From 5b785223fed7f8f0fba6aa1009e7380f45611bff Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:32:41 -0600 Subject: [PATCH 044/325] 230.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 20cfea8a0a..0e4c7f897a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/220.test.js"], + "spec": ["./test/230.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 8a8cc7816ca9bda4fdf1309dc8605cb559019fd8 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:16:10 +0000 Subject: [PATCH 045/325] Save progress: 230.1 --- questionnaire.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/questionnaire.sh b/questionnaire.sh index ea8e7dbff8..98d1a53c47 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,5 +1,6 @@ #!/bin/bash QUESTION1="What's your name?" +QUESTION2="Where are you from?" echo $QUESTION1 read NAME echo Hello $NAME. \ No newline at end of file From 7992aca81526fafcb5eb1437080fbcf3d5bedfbd Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:33:04 -0600 Subject: [PATCH 046/325] 240.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 0e4c7f897a..f1d0db35da 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/230.test.js"], + "spec": ["./test/240.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index a584e217b4..2b4071c2cc 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1,6 +1,7 @@ #!/bin/bash QUESTION1="What's your name?" +QUESTION2="Where are you from?" echo $QUESTION1 read NAME From 5b45ac3e8e653b93a0a8b1c36832e58deaa3e4c0 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:17:13 +0000 Subject: [PATCH 047/325] Save progress: 240.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ questionnaire.sh | 1 + 3 files changed, 5 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 97de382889..f5e31925e1 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -36,3 +36,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 1c646f6e9e..33254fdd70 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -135,3 +135,5 @@ echo Hello $NAME echo hello name hello $NAME ./questionnaire.sh +echo QUESTION2 +echo $QUESTION2 diff --git a/questionnaire.sh b/questionnaire.sh index 98d1a53c47..f272e2b36d 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -2,5 +2,6 @@ QUESTION1="What's your name?" QUESTION2="Where are you from?" echo $QUESTION1 +echo $QUESTION2 read NAME echo Hello $NAME. \ No newline at end of file From 8110dd5779df0ffc30cf057ee1be46bee5bfa52a Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:33:25 -0600 Subject: [PATCH 048/325] 250.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index f1d0db35da..205a23e0d9 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/240.test.js"], + "spec": ["./test/250.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 2b4071c2cc..65b7a267ca 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -6,4 +6,6 @@ QUESTION2="Where are you from?" echo $QUESTION1 read NAME +echo $QUESTION2 + echo Hello $NAME. From c6c25b34be40fa30ae725d4a27faf61819f123fc Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:38:08 +0000 Subject: [PATCH 049/325] Save progress: 250.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ questionnaire.sh | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index f5e31925e1..ef880a7767 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -38,3 +38,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 33254fdd70..7da89f61e5 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -137,3 +137,6 @@ hello $NAME ./questionnaire.sh echo QUESTION2 echo $QUESTION2 +read +read +git commit -m"12" diff --git a/questionnaire.sh b/questionnaire.sh index f272e2b36d..4f156a7d99 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -2,6 +2,8 @@ QUESTION1="What's your name?" QUESTION2="Where are you from?" echo $QUESTION1 -echo $QUESTION2 read NAME +echo $QUESTION2 +read LOCATION + echo Hello $NAME. \ No newline at end of file From eeba882438c7229f7f6f690b84bd7178ef9d116a Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:34:27 -0600 Subject: [PATCH 050/325] 260.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 205a23e0d9..01f5eea0e6 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/250.test.js"], + "spec": ["./test/260.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 65b7a267ca..7a84ce1426 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -7,5 +7,6 @@ echo $QUESTION1 read NAME echo $QUESTION2 +read LOCATION echo Hello $NAME. From e7bb33db073604fe86178ef79886b3d271a60baf Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:39:29 +0000 Subject: [PATCH 051/325] Save progress: 260.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + questionnaire.sh | 3 +-- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index ef880a7767..a3fb3c067f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -41,3 +41,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 7da89f61e5..ca035d15c4 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -140,3 +140,4 @@ echo $QUESTION2 read read git commit -m"12" +echo hello $NAME $LOCATION diff --git a/questionnaire.sh b/questionnaire.sh index 4f156a7d99..02ffb4a954 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -5,5 +5,4 @@ echo $QUESTION1 read NAME echo $QUESTION2 read LOCATION - -echo Hello $NAME. \ No newline at end of file +echo Hello $NAME from $LOCATION. From 2ab38db4ac8bd6e7bf57660fe3fbbe0b91900a8f Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:34:40 -0600 Subject: [PATCH 052/325] 270.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 01f5eea0e6..885ed9eefc 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/260.test.js"], + "spec": ["./test/270.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 7a84ce1426..3ded91e778 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -9,4 +9,4 @@ read NAME echo $QUESTION2 read LOCATION -echo Hello $NAME. +echo Hello $NAME from $LOCATION. From 7768c0a6e2762f970700e26e5ade00fae607d5d0 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:40:11 +0000 Subject: [PATCH 053/325] Save progress: 270.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index a3fb3c067f..e00aeff02b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -42,3 +42,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index ca035d15c4..e2f1b0c4af 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -141,3 +141,4 @@ read read git commit -m"12" echo hello $NAME $LOCATION +./questionnaire.sh From e6a5c74870bc78b03e3e5501d11171cca1563d55 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:34:59 -0600 Subject: [PATCH 054/325] 280.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 885ed9eefc..1b0b289d5b 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/270.test.js"], + "spec": ["./test/280.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From e79e51eb75f6b9adbe50956dd7d13096a3b48a0d Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:50:58 +0000 Subject: [PATCH 055/325] Save progress: 280.1 --- questionnaire.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/questionnaire.sh b/questionnaire.sh index 02ffb4a954..1059b312a7 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -6,3 +6,4 @@ read NAME echo $QUESTION2 read LOCATION echo Hello $NAME from $LOCATION. +echo ~~ Questionnaire ~~ From 8aa208f34cf9ac8a697c090c4ca1ec1b6db1aab7 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:35:25 -0600 Subject: [PATCH 056/325] 290.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1b0b289d5b..85367df0d6 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/280.test.js"], + "spec": ["./test/290.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 3ded91e778..ce838b9961 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1,5 +1,7 @@ #!/bin/bash +echo ~~ Questionnaire ~~ + QUESTION1="What's your name?" QUESTION2="Where are you from?" From d93d521755b66f0dd03668546c68f46063cda9c5 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:51:29 +0000 Subject: [PATCH 057/325] Save progress: 290.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index e00aeff02b..43711f074f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -43,3 +43,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index e2f1b0c4af..106a8a1e3c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -142,3 +142,4 @@ read git commit -m"12" echo hello $NAME $LOCATION ./questionnaire.sh +./questionnaire.sh From 8e451545a96b0f87f5abc58f89d69e97676715cb Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:36:16 -0600 Subject: [PATCH 058/325] 300.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 85367df0d6..d3075ec691 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/290.test.js"], + "spec": ["./test/300.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 8a59ad795128b31fe4b9014387e997eeaf6f2993 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:53:16 +0000 Subject: [PATCH 059/325] Save progress: 300.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 43711f074f..db4641ce9e 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -44,3 +44,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 106a8a1e3c..4d3a35af34 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -143,3 +143,5 @@ git commit -m"12" echo hello $NAME $LOCATION ./questionnaire.sh ./questionnaire.sh +--help +echo --help From 20cc38c25bdac2de3ad79a8148b13b4803a759c6 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:37:00 -0600 Subject: [PATCH 060/325] 310.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index d3075ec691..8ea6d4f164 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/300.test.js"], + "spec": ["./test/310.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 622d63bbdc9bd8b8cb0cf651cd9e8d88b5554f70 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 16:55:25 +0000 Subject: [PATCH 061/325] Save progress: 310.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index db4641ce9e..9ce676d634 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -46,3 +46,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 4d3a35af34..054999fa79 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -145,3 +145,5 @@ echo hello $NAME $LOCATION ./questionnaire.sh --help echo --help +echo man +man echo From c6b5f86616df98a7bea2b11d91a1323e1b2e400c Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:37:26 -0600 Subject: [PATCH 062/325] 320.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 8ea6d4f164..5be43da2d3 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/310.test.js"], + "spec": ["./test/320.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From f62b44a3e39cd67305020b60a263177c22e963ef Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:34:17 +0000 Subject: [PATCH 063/325] Save progress: 320.1 --- .freeCodeCamp/test/.cwd | 3 ++ .freeCodeCamp/test/.next_command | 69 ++++++++++++++++++++++++++++++++ questionnaire.sh | 6 ++- 3 files changed, 77 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 9ce676d634..caaa7c6e8b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -47,3 +47,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 054999fa79..6b61b6a9b4 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -147,3 +147,72 @@ echo hello $NAME $LOCATION echo --help echo man man echo +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +echo -e \n~~ Questionnaire ~~\n diff --git a/questionnaire.sh b/questionnaire.sh index 1059b312a7..630cdc9dbc 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,9 +1,13 @@ #!/bin/bash + +echo -e \n~~ Questionnaire ~~\n QUESTION1="What's your name?" QUESTION2="Where are you from?" + echo $QUESTION1 read NAME + echo $QUESTION2 read LOCATION + echo Hello $NAME from $LOCATION. -echo ~~ Questionnaire ~~ From 1416555d119c80046754cc0b1f2d7585ac28358c Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 13:45:03 -0600 Subject: [PATCH 064/325] 323.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 5be43da2d3..8714600b2c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/320.test.js"], + "spec": ["./test/323.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index ce838b9961..539d1d1f65 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1,6 +1,6 @@ #!/bin/bash -echo ~~ Questionnaire ~~ +echo -e \n~~ Questionnaire ~~\n QUESTION1="What's your name?" QUESTION2="Where are you from?" From eec0ce3fba0367e9dc5e3352d839ef15ca4c7577 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:34:55 +0000 Subject: [PATCH 065/325] Save progress: 323.1 --- .freeCodeCamp/test/.cwd | 4 ++++ .freeCodeCamp/test/.next_command | 4 ++++ questionnaire.sh | 1 + 3 files changed, 9 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index caaa7c6e8b..be576c173d 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -50,3 +50,7 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 6b61b6a9b4..f2ac790e4d 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -216,3 +216,7 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} echo -e \n~~ Questionnaire ~~\n +__vsc_prompt_cmd_original +__vsc_prompt_cmd_original +__vsc_prompt_cmd_original +./questionnaire.sh diff --git a/questionnaire.sh b/questionnaire.sh index 630cdc9dbc..539d1d1f65 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,6 +1,7 @@ #!/bin/bash echo -e \n~~ Questionnaire ~~\n + QUESTION1="What's your name?" QUESTION2="Where are you from?" From 2372890867ac3a78734a075ad38af74aa432e060 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 13:45:37 -0600 Subject: [PATCH 066/325] 326.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 8714600b2c..da033dca41 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/323.test.js"], + "spec": ["./test/326.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 5919b65403a3d2725f65f3efbf2df92dede169a4 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:37:51 +0000 Subject: [PATCH 067/325] Save progress: 326.1 --- questionnaire.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/questionnaire.sh b/questionnaire.sh index 539d1d1f65..d029c552bb 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,7 +1,6 @@ #!/bin/bash -echo -e \n~~ Questionnaire ~~\n - +echo -e "\n~~ Questionnaire ~~\n" QUESTION1="What's your name?" QUESTION2="Where are you from?" From 949ad7b8a1cfab3b46681db919e85713ae4c71e2 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:37:45 -0600 Subject: [PATCH 068/325] 330.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index da033dca41..66ef490820 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/326.test.js"], + "spec": ["./test/330.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 539d1d1f65..6dbf9845df 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -1,6 +1,6 @@ #!/bin/bash -echo -e \n~~ Questionnaire ~~\n +echo -e "\n~~ Questionnaire ~~\n" QUESTION1="What's your name?" QUESTION2="Where are you from?" From 902bfd7fcb2e107333276e62265ce55c54a42480 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:38:14 +0000 Subject: [PATCH 069/325] Save progress: 330.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index be576c173d..6163be7514 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -54,3 +54,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index f2ac790e4d..cc4380bc1a 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -220,3 +220,4 @@ __vsc_prompt_cmd_original __vsc_prompt_cmd_original __vsc_prompt_cmd_original ./questionnaire.sh +./questionnaire.sh From f876e1dd6e5a2ac4b492d9d2041c9e531258f70a Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:38:44 -0600 Subject: [PATCH 070/325] 340.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 66ef490820..b82575ec2c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/330.test.js"], + "spec": ["./test/340.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From b4b55f7cdae15cb1af60a645bb5018806a7344ea Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:38:45 +0000 Subject: [PATCH 071/325] Save progress: 340.1 --- questionnaire.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/questionnaire.sh b/questionnaire.sh index d029c552bb..151a8f27a9 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -3,6 +3,7 @@ echo -e "\n~~ Questionnaire ~~\n" QUESTION1="What's your name?" QUESTION2="Where are you from?" +QUESTION3="What's your favorite coding website?" echo $QUESTION1 read NAME From 49eda0195f4a2d2fb4c9db18de355a2aa4febd4b Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 13:48:51 -0600 Subject: [PATCH 072/325] 345.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index b82575ec2c..f284211e7a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/340.test.js"], + "spec": ["./test/345.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 6dbf9845df..9d4990efe7 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -4,6 +4,7 @@ echo -e "\n~~ Questionnaire ~~\n" QUESTION1="What's your name?" QUESTION2="Where are you from?" +QUESTION3="What's your favorite coding website?" echo $QUESTION1 read NAME From 99f7f33b11442e186977c9f0349939c8e14d46f5 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:39:23 +0000 Subject: [PATCH 073/325] Save progress: 345.1 --- questionnaire.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/questionnaire.sh b/questionnaire.sh index 151a8f27a9..5da572a063 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -11,4 +11,7 @@ read NAME echo $QUESTION2 read LOCATION +echo $QUESTION3 + + echo Hello $NAME from $LOCATION. From 547a0eebcaad1f86990395b3a4bdf2b13d17c219 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:39:03 -0600 Subject: [PATCH 074/325] 350.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index f284211e7a..d2515b36f0 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/345.test.js"], + "spec": ["./test/350.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 9d4990efe7..81211b909e 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -12,4 +12,6 @@ read NAME echo $QUESTION2 read LOCATION +echo $QUESTION3 + echo Hello $NAME from $LOCATION. From ba410bb2258648ca317c8f8011a3ddb034ce86ed Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:39:54 +0000 Subject: [PATCH 075/325] Save progress: 350.1 --- questionnaire.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/questionnaire.sh b/questionnaire.sh index 5da572a063..c34d3ffd7e 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -12,6 +12,6 @@ echo $QUESTION2 read LOCATION echo $QUESTION3 - +read WEBSITE echo Hello $NAME from $LOCATION. From 1543777e3d93a6d52de995ea8a1f38a63596b31e Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:39:31 -0600 Subject: [PATCH 076/325] 360.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index d2515b36f0..c845ae2144 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/350.test.js"], + "spec": ["./test/360.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index 81211b909e..fe072ae137 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -13,5 +13,6 @@ echo $QUESTION2 read LOCATION echo $QUESTION3 +read WEBSITE echo Hello $NAME from $LOCATION. From 2a11efce7645faff25166c292d23f046f0540860 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:40:35 +0000 Subject: [PATCH 077/325] Save progress: 360.1 --- questionnaire.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/questionnaire.sh b/questionnaire.sh index c34d3ffd7e..d092d4cf60 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -14,4 +14,4 @@ read LOCATION echo $QUESTION3 read WEBSITE -echo Hello $NAME from $LOCATION. +echo Hello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE! \ No newline at end of file From d7917d3363e79405aaa565b0f77c964d5a41b9d0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 13:50:11 -0600 Subject: [PATCH 078/325] 363.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index c845ae2144..dc81c80e5d 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/360.test.js"], + "spec": ["./test/363.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index fe072ae137..da8fdea286 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -15,4 +15,4 @@ read LOCATION echo $QUESTION3 read WEBSITE -echo Hello $NAME from $LOCATION. +echo Hello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE! From f0b015c9a3b21dcb623ad4a4f953702230cd02cb Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:41:03 +0000 Subject: [PATCH 079/325] Save progress: 363.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 6163be7514..41e733b250 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -55,3 +55,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index cc4380bc1a..0f24603c5e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -221,3 +221,4 @@ __vsc_prompt_cmd_original __vsc_prompt_cmd_original ./questionnaire.sh ./questionnaire.sh +./questionnaire.sh From b8326828c262f558bfa817999748636c2de7809f Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 13:51:15 -0600 Subject: [PATCH 080/325] 366.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index dc81c80e5d..34f02b4b46 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/363.test.js"], + "spec": ["./test/366.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From a0e53c573b5c64ebac47d6505bb1b4213a29b629 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:43:07 +0000 Subject: [PATCH 081/325] Save progress: 366.1 --- questionnaire.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/questionnaire.sh b/questionnaire.sh index d092d4cf60..d4303c47de 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -14,4 +14,4 @@ read LOCATION echo $QUESTION3 read WEBSITE -echo Hello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE! \ No newline at end of file +echo -e "\nHello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE!" \ No newline at end of file From 3959ce49507d9432d80cebba17b00733f5d28b5f Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:39:44 -0600 Subject: [PATCH 082/325] 370.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/questionnaire.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 34f02b4b46..eb1d44a5ec 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/366.test.js"], + "spec": ["./test/370.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/questionnaire.sh b/.freeCodeCamp/reset_files/questionnaire.sh index da8fdea286..f815b8ce05 100755 --- a/.freeCodeCamp/reset_files/questionnaire.sh +++ b/.freeCodeCamp/reset_files/questionnaire.sh @@ -15,4 +15,4 @@ read LOCATION echo $QUESTION3 read WEBSITE -echo Hello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE! +echo -e "\nHello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE!" From 54c9e0d91c8674d94690eb491eb570dff7a4ecf4 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:43:33 +0000 Subject: [PATCH 083/325] Save progress: 370.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 41e733b250..4d1b6cc882 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -56,3 +56,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 0f24603c5e..932227c0b2 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -222,3 +222,4 @@ __vsc_prompt_cmd_original ./questionnaire.sh ./questionnaire.sh ./questionnaire.sh +./questionnaire.sh From feafdce56bc12105f118edf35cb6aa695f3b1bb3 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:40:23 -0600 Subject: [PATCH 084/325] 380.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index eb1d44a5ec..bd0cb192f3 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/370.test.js"], + "spec": ["./test/380.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From d6baa0ac90ad1161e70a9f103d6ba8582ced8377 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 16 Jul 2025 17:44:16 +0000 Subject: [PATCH 085/325] Save progress: 380.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 4d1b6cc882..0991747eaf 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -57,3 +57,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 932227c0b2..7adf0ae93e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -223,3 +223,4 @@ __vsc_prompt_cmd_original ./questionnaire.sh ./questionnaire.sh ./questionnaire.sh +touch countdown.sh From 187910288b1777adcfb1c8e36b8e033cbbcddcbf Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:40:59 -0600 Subject: [PATCH 086/325] 390.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset.sh | 3 ++- .freeCodeCamp/reset_files/countdown.sh | 0 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100755 .freeCodeCamp/reset_files/countdown.sh diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index bd0cb192f3..e7cd66cfa9 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/380.test.js"], + "spec": ["./test/390.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset.sh b/.freeCodeCamp/reset.sh index 626774efde..fe10c89e69 100755 --- a/.freeCodeCamp/reset.sh +++ b/.freeCodeCamp/reset.sh @@ -1 +1,2 @@ -cp ./.freeCodeCamp/reset_files/questionnaire.sh . \ No newline at end of file +cp ./.freeCodeCamp/reset_files/questionnaire.sh . +cp ./.freeCodeCamp/reset_files/countdown.sh . \ No newline at end of file diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh new file mode 100755 index 0000000000..e69de29bb2 From f4d978000cf0f33cb045a53fe5b2fe0175d3586a Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:33:23 +0000 Subject: [PATCH 087/325] Save progress: 390.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 35 ++++++++++++++++++++++++++++++++ questionnaire.sh | 3 ++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 0991747eaf..777f8d37e2 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -58,3 +58,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 7adf0ae93e..0aab4050ed 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -224,3 +224,38 @@ __vsc_prompt_cmd_original ./questionnaire.sh ./questionnaire.sh touch countdown.sh +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +chmod +x questionnaire.sh diff --git a/questionnaire.sh b/questionnaire.sh index d4303c47de..f815b8ce05 100755 --- a/questionnaire.sh +++ b/questionnaire.sh @@ -1,6 +1,7 @@ #!/bin/bash echo -e "\n~~ Questionnaire ~~\n" + QUESTION1="What's your name?" QUESTION2="Where are you from?" QUESTION3="What's your favorite coding website?" @@ -14,4 +15,4 @@ read LOCATION echo $QUESTION3 read WEBSITE -echo -e "\nHello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE!" \ No newline at end of file +echo -e "\nHello $NAME from $LOCATION. I learned that your favorite coding website is $WEBSITE!" From 184eadf6e3ce41ec00ee5e6e1744595216a4be53 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:41:36 -0600 Subject: [PATCH 088/325] 400.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e7cd66cfa9..8b190100bd 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/390.test.js"], + "spec": ["./test/400.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 75c30f85010c0011f64930adcd711149dbfbed71 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:42:17 -0600 Subject: [PATCH 089/325] 410.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 8b190100bd..962a6f236c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/400.test.js"], + "spec": ["./test/410.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index e69de29bb2..a9bf588e2f 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -0,0 +1 @@ +#!/bin/bash From 5a3f915a11645d4a00db750ec85aaff25bef0e18 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:43:11 -0600 Subject: [PATCH 090/325] 420.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 962a6f236c..0137fc847e 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/410.test.js"], + "spec": ["./test/420.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index a9bf588e2f..1d1a71bed1 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -1 +1,3 @@ #!/bin/bash + +# Program that counts down to zero from a given argument From 93a4c03dacc04c0d99b7c756c7ae1f20f1353600 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:22:04 -0600 Subject: [PATCH 091/325] 425.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 0137fc847e..8e92e96daa 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/420.test.js"], + "spec": ["./test/425.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index 1d1a71bed1..8fb97946ca 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -1,3 +1,5 @@ #!/bin/bash # Program that counts down to zero from a given argument + +echo $* From 5d07b16748eb60344c468da6bfab6c4447cd64d2 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:36:08 +0000 Subject: [PATCH 092/325] Save progress: 425.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 777f8d37e2..35b4fc0312 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -60,3 +60,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 0aab4050ed..d7c0497be1 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -259,3 +259,4 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} chmod +x questionnaire.sh +./countdown.sh From 7a45bac8d1ab2b91e8408be20606c8c4104b975e Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:24:02 -0600 Subject: [PATCH 093/325] 430.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 8e92e96daa..df000d81ed 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/425.test.js"], + "spec": ["./test/430.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 1d169a54e1e043d58bf86fc6fcdb892b5b3e7e39 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:36:45 +0000 Subject: [PATCH 094/325] Save progress: 430.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 35b4fc0312..5b8642eb9e 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -61,3 +61,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index d7c0497be1..f9a76e96c5 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -260,3 +260,4 @@ trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} chmod +x questionnaire.sh ./countdown.sh +./countdown.sh arg1 arg2 arg3 From 4943da47cc6d321faa220b4cf667ffb248d083e8 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:24:55 -0600 Subject: [PATCH 095/325] 440.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index df000d81ed..1797e4b8ae 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/430.test.js"], + "spec": ["./test/440.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 9d8c40161ccac4a0ae44538fb9fa4e60578a7d49 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:37:22 +0000 Subject: [PATCH 096/325] Save progress: 440.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 5b8642eb9e..42be0331a3 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -62,3 +62,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index f9a76e96c5..961b454992 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -261,3 +261,4 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} chmod +x questionnaire.sh ./countdown.sh ./countdown.sh arg1 arg2 arg3 +echo $1 From 0258ef606243d55593afa5e5dc0a31b5656dcd1c Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:25:12 -0600 Subject: [PATCH 097/325] 450.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1797e4b8ae..649f51c3b4 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/440.test.js"], + "spec": ["./test/450.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index 8fb97946ca..d8d6ed26e5 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -2,4 +2,4 @@ # Program that counts down to zero from a given argument -echo $* +echo $1 From f5278a3dd7dc6c68d835793214dc227f67bb4b48 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:37:32 +0000 Subject: [PATCH 098/325] Save progress: 450.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 42be0331a3..7bf67d324f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -63,3 +63,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 961b454992..400d08a2f9 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -262,3 +262,4 @@ chmod +x questionnaire.sh ./countdown.sh ./countdown.sh arg1 arg2 arg3 echo $1 +./countdown.sh arg1 arg2 arg3 From 55cf59a45c6582cdf5c3acbe44a2a4f477913fe9 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:26:20 -0600 Subject: [PATCH 099/325] 460.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 649f51c3b4..130bf3eaac 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/450.test.js"], + "spec": ["./test/460.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 6efadeb39c8e5c063ed2e9ad56cc504bcbd9b219 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:38:05 +0000 Subject: [PATCH 100/325] Save progress: 460.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 7bf67d324f..a378c5024b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -64,3 +64,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 400d08a2f9..9465042e6b 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -263,3 +263,5 @@ chmod +x questionnaire.sh ./countdown.sh arg1 arg2 arg3 echo $1 ./countdown.sh arg1 arg2 arg3 +--help +help From c7a5c8dba5401fa0a4fb2bdae4ed03867a089aa9 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:27:34 -0600 Subject: [PATCH 101/325] 470.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 130bf3eaac..2871974e76 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/460.test.js"], + "spec": ["./test/470.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 5702675efc56cabc93da9f187b2ba80847211b21 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:39:45 +0000 Subject: [PATCH 102/325] Save progress: 470.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index a378c5024b..a4f521277d 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -66,3 +66,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 9465042e6b..74d54b93b1 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -265,3 +265,4 @@ echo $1 ./countdown.sh arg1 arg2 arg3 --help help +man if From fa1a00fc9890977fd2ff4ed06874ad012a54f1d1 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:28:39 -0600 Subject: [PATCH 103/325] 480.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 2871974e76..d50a88a94c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/470.test.js"], + "spec": ["./test/480.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From b0c6f288a93c33c5c9a025c8af9fd2dcd7defb07 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:40:11 +0000 Subject: [PATCH 104/325] Save progress: 480.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index a4f521277d..fcd42db420 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -67,3 +67,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 74d54b93b1..665efe212f 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -266,3 +266,4 @@ echo $1 --help help man if +help if From e1e4754fea8acb49987ec6401745c1468dd3e481 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:29:52 -0600 Subject: [PATCH 105/325] 490.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index d50a88a94c..e634f22f9e 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/480.test.js"], + "spec": ["./test/490.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From f4453e85cf1a6e42fad31ed5b1de6b21b3f3bf31 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:30:27 -0600 Subject: [PATCH 106/325] 500.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e634f22f9e..39a162ffc7 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/490.test.js"], + "spec": ["./test/500.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index d8d6ed26e5..af0798c537 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -2,4 +2,7 @@ # Program that counts down to zero from a given argument -echo $1 +if [[ $1 == arg1 ]] +then + echo true +fi From 94ab6e750bb630d836fcdec9a88b55e07398368b Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 17 Jul 2025 16:42:31 +0000 Subject: [PATCH 107/325] Save progress: 500.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index fcd42db420..8ecf7ab30e 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -68,3 +68,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 665efe212f..8c448d49e7 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -267,3 +267,4 @@ echo $1 help man if help if +./countdown.sh arg1 From 70c72c1b334100b69b8f6cdad1bac7ca2e82dc8a Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:22:27 -0600 Subject: [PATCH 108/325] 505.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 39a162ffc7..9dab45c9f6 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/500.test.js"], + "spec": ["./test/505.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 670e719f786899ba802843e14568c6b4ac3f1fb6 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 13:40:02 +0000 Subject: [PATCH 109/325] Save progress: 505.1 --- .freeCodeCamp/test/.cwd | 3 ++ .freeCodeCamp/test/.next_command | 69 ++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 8ecf7ab30e..fec53b4fe5 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -69,3 +69,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 8c448d49e7..18fa172e3a 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -268,3 +268,72 @@ help man if help if ./countdown.sh arg1 +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +./countdown.sh arg2 From d0e166a8d5d7a5212fba3d5fcdf20fefc975bff5 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:30:53 -0600 Subject: [PATCH 110/325] 510.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 9dab45c9f6..1da484195d 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/505.test.js"], + "spec": ["./test/510.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From b8b26d6973d25e8989dcf6b40355590da3b627b6 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:31:19 -0600 Subject: [PATCH 111/325] 520.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1da484195d..e207e41fed 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/510.test.js"], + "spec": ["./test/520.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index af0798c537..b42cd7d529 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -5,4 +5,6 @@ if [[ $1 == arg1 ]] then echo true +else + echo false fi From bbf7cb872ec04c9cb1816a012219782b88d1bfe5 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 13:40:58 +0000 Subject: [PATCH 112/325] Save progress: 520.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index fec53b4fe5..b4c09e5e66 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -72,3 +72,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 18fa172e3a..db915c9d1f 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -337,3 +337,4 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh arg2 +./countdown.sh arg2 From a513157dd645c73151cdbd04d946ccccca47a48c Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:32:39 -0600 Subject: [PATCH 113/325] 530.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e207e41fed..c517852b34 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/520.test.js"], + "spec": ["./test/530.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 55897cd5d79cf4a7eef7a134036fe2dee8876fbd Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:32:57 -0600 Subject: [PATCH 114/325] 540.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index c517852b34..344c7ffe0a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/530.test.js"], + "spec": ["./test/540.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index b42cd7d529..9657ce4f93 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -2,7 +2,7 @@ # Program that counts down to zero from a given argument -if [[ $1 == arg1 ]] +if [[ $1 -lt 5 ]] then echo true else From 523cfeb71fcdc3ff4eeee94a4e13f43ea3c16fc2 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 13:47:25 +0000 Subject: [PATCH 115/325] Save progress: 540.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index b4c09e5e66..398a128ea6 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -73,3 +73,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index db915c9d1f..9fd693f0d0 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -338,3 +338,4 @@ trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh arg2 ./countdown.sh arg2 +./countdown.sh 4 From a7fa486ea4bf79677c3a13c6723f4384b9251165 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:23:58 -0600 Subject: [PATCH 116/325] 542.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 344c7ffe0a..f7b9d9d535 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/540.test.js"], + "spec": ["./test/542.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From c5f6c7dd3ce0d6d2c875fd28bb2674cf447ebde1 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 13:47:52 +0000 Subject: [PATCH 117/325] Save progress: 542.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 398a128ea6..a0b7ecb72a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -74,3 +74,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 9fd693f0d0..22ba98d8ec 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -339,3 +339,4 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh arg2 ./countdown.sh arg2 ./countdown.sh 4 +./countdown.sh 5 From 8653949b4bf1122d8338f933cd8499dc596d53cd Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:25:00 -0600 Subject: [PATCH 118/325] 544.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index f7b9d9d535..99c00835a9 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/542.test.js"], + "spec": ["./test/544.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From d67030a90ab8e2a7bcae04e1779edbfa42382a13 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 13:48:58 +0000 Subject: [PATCH 119/325] Save progress: 544.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index a0b7ecb72a..cc915fb90a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -75,3 +75,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 22ba98d8ec..edc981c727 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -340,3 +340,4 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh arg2 ./countdown.sh 4 ./countdown.sh 5 +help From 4345e75a685f859ce7b996e3b5981a98f94ae1d3 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:29:45 -0600 Subject: [PATCH 120/325] 546.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 99c00835a9..fc13153f7c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/544.test.js"], + "spec": ["./test/546.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 21ee4680734368a12e61bc76510d54b514891115 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 13:50:28 +0000 Subject: [PATCH 121/325] Save progress: 546.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index cc915fb90a..a0a5f0ec31 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -76,3 +76,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index edc981c727..acc1efd5c4 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -341,3 +341,5 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh 4 ./countdown.sh 5 help +help if +help [[ if]] From 4f8d8495a0113f96667ef609f9fcba4fbd1c0999 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:30:34 -0600 Subject: [PATCH 122/325] 548.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index fc13153f7c..679feed2d2 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/546.test.js"], + "spec": ["./test/548.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From f674883341e21d8261d0b1e0594bf0b6e2e79fa0 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 13:56:42 +0000 Subject: [PATCH 123/325] Save progress: 548.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index a0a5f0ec31..1d6cbdbc9f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -78,3 +78,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index acc1efd5c4..c8b6008f10 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -343,3 +343,5 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} help help if help [[ if]] +help ! +help test From 39e8c8b77fa9a095362c3f7d394b1cf1271c3c69 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:33:14 -0600 Subject: [PATCH 124/325] 550.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 679feed2d2..f3cd4da5f9 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/548.test.js"], + "spec": ["./test/550.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 53bf0993ae3987786d1856dc7ca8a8da725f6f6c Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:35:26 -0600 Subject: [PATCH 125/325] 552.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index f3cd4da5f9..42ae8da807 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/550.test.js"], + "spec": ["./test/552.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index 9657ce4f93..00557070e2 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -2,7 +2,7 @@ # Program that counts down to zero from a given argument -if [[ $1 -lt 5 ]] +if [[ $1 -le 5 ]] then echo true else From 48af327cb42c2dcd5be4dbdd53ce87b1e95db5d4 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 14:22:14 +0000 Subject: [PATCH 126/325] Save progress: 552.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 1d6cbdbc9f..dd8713fa59 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -80,3 +80,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index c8b6008f10..cc8dd67845 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -345,3 +345,4 @@ help if help [[ if]] help ! help test +./countdown.sh 5 From 80247c114bd69bdb4aa9354dc6802950c458b4c6 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:36:48 -0600 Subject: [PATCH 127/325] 554.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 42ae8da807..60df440707 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/552.test.js"], + "spec": ["./test/554.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 17cacd8eeeb912121d9899d1d73f0830cd4dcb2e Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 14:23:35 +0000 Subject: [PATCH 128/325] Save progress: 554.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index dd8713fa59..2cc9363439 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -81,3 +81,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index cc8dd67845..a9c104799d 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -346,3 +346,6 @@ help [[ if]] help ! help test ./countdown.sh 5 +__vsc_prompt_cmd_original +__vsc_prompt_cmd_original +[[ 4 -le 5 ]] From 8c333a4ff27d2e07f471cdeeee3f3f7920870a39 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:42:42 -0600 Subject: [PATCH 129/325] 556.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 60df440707..45e1aed714 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/554.test.js"], + "spec": ["./test/556.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 8b34b233e28aca67e8e25cccded6013c34f4939e Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 14:27:04 +0000 Subject: [PATCH 130/325] Save progress: 556.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 2cc9363439..45af66d265 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -84,3 +84,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index a9c104799d..d20b6465d6 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -349,3 +349,4 @@ help test __vsc_prompt_cmd_original __vsc_prompt_cmd_original [[ 4 -le 5 ]] +echo $? From f3c1bbd7aeb82e04350d80d8cc28f813bd445d2a Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:45:00 -0600 Subject: [PATCH 131/325] 558.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 45e1aed714..142ccebcfa 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/556.test.js"], + "spec": ["./test/558.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From a1566a812a2b0740ceaf63fe37da4e0791723400 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 14:29:00 +0000 Subject: [PATCH 132/325] Save progress: 558.1 --- .freeCodeCamp/test/.cwd | 4 ++++ .freeCodeCamp/test/.next_command | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 45af66d265..2b11449b28 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -85,3 +85,7 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index d20b6465d6..eeaccd1968 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -350,3 +350,7 @@ __vsc_prompt_cmd_original __vsc_prompt_cmd_original [[ 4 -le 5 ]] echo $? +help -ge +help [-ge] +__vsc_prompt_cmd_original +[[ 4 -ge 5 ]] From fdfc45056b4453a8041383d615be2a1eaa8c190a Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:33:33 -0600 Subject: [PATCH 133/325] 560.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 142ccebcfa..f505110b1c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/558.test.js"], + "spec": ["./test/560.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 6caed1c83f43012f85495d99eb20e8ca4c4995d0 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 18:10:24 +0000 Subject: [PATCH 134/325] Save progress: 560.1 --- .freeCodeCamp/test/.cwd | 5 +++++ .freeCodeCamp/test/.next_command | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 2b11449b28..ffe007f729 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -89,3 +89,8 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index eeaccd1968..91467a16d9 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -354,3 +354,41 @@ help -ge help [-ge] __vsc_prompt_cmd_original [[ 4 -ge 5 ]] +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +echo +echo $? +[[ 4 -ge 5 ]] +echo $? From 2383254757ad3659e4d7de74d376fc0836df9299 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:53:23 -0600 Subject: [PATCH 135/325] 562.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index f505110b1c..767a81f8d5 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/560.test.js"], + "spec": ["./test/562.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 3d50bdb8772e26abb19b129b44fdbfcd7877677c Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 18:11:11 +0000 Subject: [PATCH 136/325] Save progress: 562.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index ffe007f729..b27c0be35c 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -94,3 +94,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 91467a16d9..f2b772b33e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -392,3 +392,4 @@ echo echo $? [[ 4 -ge 5 ]] echo $? +[[ 4 -ge 5 ]] From 404fac455584548fb660e7dd580b35a0a56fb4a7 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:54:46 -0600 Subject: [PATCH 137/325] 564.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 767a81f8d5..2cd811216e 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/562.test.js"], + "spec": ["./test/564.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 68d7258ec0cc38f2c9771de51e38458d609e5066 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 18:13:31 +0000 Subject: [PATCH 138/325] Save progress: 564.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index b27c0be35c..0a68690d53 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -95,3 +95,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index f2b772b33e..32ecf8d5ce 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -393,3 +393,6 @@ echo $? [[ 4 -ge 5 ]] echo $? [[ 4 -ge 5 ]] +echo $? +[[ 10 -ne 5 ]] +[[ 10 -ne 5 ]] From d9b0286072069398d04c23c5368d0b8fb439dc11 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:56:19 -0600 Subject: [PATCH 139/325] 566.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 2cd811216e..901ef1d384 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/564.test.js"], + "spec": ["./test/566.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From c281ca59550fb1f05f9c8374f074f76554f90c2c Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 18:28:52 +0000 Subject: [PATCH 140/325] Save progress: 566.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 0a68690d53..e87a6d0ff6 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -98,3 +98,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 32ecf8d5ce..9b527aec24 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -396,3 +396,5 @@ echo $? echo $? [[ 10 -ne 5 ]] [[ 10 -ne 5 ]] +bad_command +bad_command From 585ff9f9cc76e54baaf1ec9d6d5430e16022f9e0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:56:57 -0600 Subject: [PATCH 141/325] 568.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 901ef1d384..55f6abb237 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/566.test.js"], + "spec": ["./test/568.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 7a33f1cf483cac6b66bae4c7fdcc8a82da3f580a Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 18:29:45 +0000 Subject: [PATCH 142/325] Save progress: 568.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index e87a6d0ff6..27778c6b38 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -100,3 +100,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 9b527aec24..5140e1cfa9 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -398,3 +398,6 @@ echo $? [[ 10 -ne 5 ]] bad_command bad_command +ls --color=auto +bad_command +ls --color=auto From 343bbdc5ddd3f8e8e25b34036241243e2ba521d9 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:35:58 -0600 Subject: [PATCH 143/325] 570.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 55f6abb237..51adb069f1 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/568.test.js"], + "spec": ["./test/570.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 229c6e06e24c3860487a4380e94303f571abd9e7 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 18:30:47 +0000 Subject: [PATCH 144/325] Save progress: 570.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 27778c6b38..a7fc2b0ad6 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -103,3 +103,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 5140e1cfa9..d8c2069648 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -401,3 +401,5 @@ bad_command ls --color=auto bad_command ls --color=auto +ls --color=auto -y echo $? +ls --color=auto -y From 101a5572ea111ccca93a5fe19d253a56549f7488 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 23:00:03 -0600 Subject: [PATCH 145/325] 572.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 51adb069f1..37b4de2bfb 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/570.test.js"], + "spec": ["./test/572.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 0991b2cbe82b4dfc9d9065b7bce4bd34afd3322b Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 18:31:20 +0000 Subject: [PATCH 146/325] Save progress: 572.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index a7fc2b0ad6..2f7601a228 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -105,3 +105,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index d8c2069648..c63bd156a5 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -403,3 +403,4 @@ bad_command ls --color=auto ls --color=auto -y echo $? ls --color=auto -y +help test From 6123b46d291df3a15cd2c3439269ca91d82bfbd0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 23:03:47 -0600 Subject: [PATCH 147/325] 574.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 37b4de2bfb..b3ea354118 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/572.test.js"], + "spec": ["./test/574.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From d038673e937357f2c075e63625e003f108ca187d Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 20 Jul 2025 18:39:14 +0000 Subject: [PATCH 148/325] Save progress: 574.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 2f7601a228..bff900ca12 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -106,3 +106,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index c63bd156a5..2c251e6228 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -404,3 +404,5 @@ ls --color=auto ls --color=auto -y echo $? ls --color=auto -y help test +__vsc_prompt_cmd_original +[[ -a countdown.sh ]] From e421684820147f27a2a051b3fb2d6ad962ed9fb4 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 13:56:01 -0600 Subject: [PATCH 149/325] 575.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index b3ea354118..100b0fb001 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/574.test.js"], + "spec": ["./test/575.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 91d3395400a218d77ef7c29612cf76f59718762d Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 3 Aug 2025 15:13:24 +0000 Subject: [PATCH 150/325] Save progress: 575.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 35 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index bff900ca12..8479debb6c 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -108,3 +108,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 2c251e6228..94fd2117b4 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -406,3 +406,38 @@ ls --color=auto -y help test __vsc_prompt_cmd_original [[ -a countdown.sh ]] +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +[[ -a bad_file.txt ]] From 43a926c7a533235bc31a01f479edb4ff82984dd0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 23:04:45 -0600 Subject: [PATCH 151/325] 576.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 100b0fb001..13c8414e51 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/575.test.js"], + "spec": ["./test/576.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From eaca6b0294afb703137efc0efbdeea4d48e884f8 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 02:59:31 +0000 Subject: [PATCH 152/325] Save progress: 576.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 36 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 8479debb6c..8d59251a93 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -110,3 +110,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 94fd2117b4..2f551932d8 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -441,3 +441,39 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} [[ -a bad_file.txt ]] +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +help test +[[ -x countdown.sh ]] From 7521a3af759600b249fc184502fd0b50472c2e51 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 23:19:31 -0600 Subject: [PATCH 153/325] 582.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 13c8414e51..7e2f563760 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/576.test.js"], + "spec": ["./test/582.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 5525f7f4b89c40813a7f2b9d4064d08dc3f64f9a Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:02:04 +0000 Subject: [PATCH 154/325] Save progress: 582.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 35 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 8d59251a93..fe2e34f0fc 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -113,3 +113,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 2f551932d8..0dc0686f1f 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -477,3 +477,38 @@ trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} help test [[ -x countdown.sh ]] +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +help [[ From ab168d08b76bb92a6d44318835b3211d6a7bec62 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 23:24:34 -0600 Subject: [PATCH 155/325] 584.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 7e2f563760..124d09216e 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/582.test.js"], + "spec": ["./test/584.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From de9bfcf4d6ebaafba0ebec1cbe79a4e48e6d4e18 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:05:01 +0000 Subject: [PATCH 156/325] Save progress: 584.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index fe2e34f0fc..defbe6cd5a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -115,3 +115,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 0dc0686f1f..02d8490e6d 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -512,3 +512,5 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} help [[ +__vsc_prompt_cmd_original +[[ -x countdown.sh && 5 -le 4 ]] From ae83c78e980fbf101712b611ceee183e27e9c975 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 23:25:20 -0600 Subject: [PATCH 157/325] 586.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 124d09216e..36022bac33 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/584.test.js"], + "spec": ["./test/586.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From f2e43999e128b36fc172b9d7cf11e49b0a0cce75 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:06:14 +0000 Subject: [PATCH 158/325] Save progress: 586.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index defbe6cd5a..daf4ccfaec 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -117,3 +117,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 02d8490e6d..24090474fe 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -514,3 +514,4 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} help [[ __vsc_prompt_cmd_original [[ -x countdown.sh && 5 -le 4 ]] +[[ -x countdown.sh || 5 -le 4 ]] From a6af924c9d729c435bb8ebe59a18ecb9b0498d2d Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 23:27:18 -0600 Subject: [PATCH 159/325] 588.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 36022bac33..164414e951 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/586.test.js"], + "spec": ["./test/588.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From bfa1aa5cc06409ae5fa31991a51dfd02e2ec8eb1 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:45:25 +0000 Subject: [PATCH 160/325] Save progress: 588.1 --- .freeCodeCamp/test/.cwd | 2 + .freeCodeCamp/test/.next_command | 68 ++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index daf4ccfaec..03ed2ba81a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -118,3 +118,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 24090474fe..bfcf57b819 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -515,3 +515,71 @@ help [[ __vsc_prompt_cmd_original [[ -x countdown.sh && 5 -le 4 ]] [[ -x countdown.sh || 5 -le 4 ]] +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} From 6e8ab7a7053b2feaac90d033c4c31a2ce77eeef9 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:36:59 -0600 Subject: [PATCH 161/325] 590.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 164414e951..1525eced8a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/588.test.js"], + "spec": ["./test/590.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index 00557070e2..405b5eeadc 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -2,7 +2,7 @@ # Program that counts down to zero from a given argument -if [[ $1 -le 5 ]] +if [[ $1 -gt 0 ]] then echo true else From 166a28abe2594996bc9d3675567c990d1ae48797 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:37:13 -0600 Subject: [PATCH 162/325] 600.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1525eced8a..bec9bffcd5 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/590.test.js"], + "spec": ["./test/600.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index 405b5eeadc..c67da5e517 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -6,5 +6,5 @@ if [[ $1 -gt 0 ]] then echo true else - echo false + echo Include a positive integer as the first argument. fi From 2b20886448f6b4775a2ce8f0ff010230807a1cdf Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:48:17 +0000 Subject: [PATCH 163/325] Save progress: 600.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 03ed2ba81a..123a142531 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -120,3 +120,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index bfcf57b819..742e663533 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -583,3 +583,5 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" [[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} +./countdown.sh +./countdown.sh 1 From dae6b9c908bdc06071f02824b7de472d85aa96ea Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:37:30 -0600 Subject: [PATCH 164/325] 610.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index bec9bffcd5..cadd2eb4b8 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/600.test.js"], + "spec": ["./test/610.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 15a481efc0340d409569bc9756e3b5344dfe841a Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:48:37 +0000 Subject: [PATCH 165/325] Save progress: 610.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 123a142531..41c4e1133d 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -122,3 +122,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 742e663533..8800283a35 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -585,3 +585,4 @@ trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh ./countdown.sh 1 +./countdown.sh 0 From dd7941bc1bcca036fe2e6d7aa3db8ee503723c4c Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:33:47 -0600 Subject: [PATCH 166/325] 615.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index cadd2eb4b8..3f1d0e5e4f 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/610.test.js"], + "spec": ["./test/615.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 22ccd83d26f391ec7abb506d145f002507b94d95 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:48:54 +0000 Subject: [PATCH 167/325] Save progress: 615.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 41c4e1133d..821885c246 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -123,3 +123,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 8800283a35..acb6ffef06 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -586,3 +586,4 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh ./countdown.sh 1 ./countdown.sh 0 +help From 676a040ce4e6430bbb6286c161233f034bafa337 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:38:08 -0600 Subject: [PATCH 168/325] 620.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 3f1d0e5e4f..bf55fd9cfc 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/615.test.js"], + "spec": ["./test/620.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 98d162de6ab701311657961890c724ac4f38b16f Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:55:21 +0000 Subject: [PATCH 169/325] Save progress: 620.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 821885c246..8e87b04b19 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -124,3 +124,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index acb6ffef06..8f87976bb6 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -587,3 +587,4 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh 1 ./countdown.sh 0 help +help if From ecc7124d794d147284138a62ceb30c79b1347c14 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:38:47 -0600 Subject: [PATCH 170/325] 630.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index bf55fd9cfc..772d46d235 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/620.test.js"], + "spec": ["./test/630.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index c67da5e517..24b2e2f34a 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -4,7 +4,10 @@ if [[ $1 -gt 0 ]] then - echo true + for (( i = $1; i > 0; i-- )) + do + echo $i + done else echo Include a positive integer as the first argument. fi From 60aa06bfcadb4fe02f506374689259dc241e62f8 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:56:53 +0000 Subject: [PATCH 171/325] Save progress: 630.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 8e87b04b19..f8048a9c7b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -125,3 +125,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 8f87976bb6..4244d09d0e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -588,3 +588,5 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh 0 help help if +./ countdown.sh 10 +./countdown.sh 10 From 80e8bb6474ffecadaeef95153f158f797f33c963 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:40:33 -0600 Subject: [PATCH 172/325] 640.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 772d46d235..fa7bd66f4c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/630.test.js"], + "spec": ["./test/640.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 83da6262cd84390730abc88b7d73622a69b60e03 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:57:10 +0000 Subject: [PATCH 173/325] Save progress: 640.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index f8048a9c7b..e6ef62b8d8 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -127,3 +127,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 4244d09d0e..c71e94a2b6 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -590,3 +590,4 @@ help help if ./ countdown.sh 10 ./countdown.sh 10 +help From 23a564081fdce684976aa0d45c01c44c61616dc3 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:40:45 -0600 Subject: [PATCH 174/325] 650.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index fa7bd66f4c..e1dcf6a798 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/640.test.js"], + "spec": ["./test/650.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 44aed8f7fc1b6d7c5a47af0eea00ad561cdb4efd Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:57:53 +0000 Subject: [PATCH 175/325] Save progress: 650.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index e6ef62b8d8..257e651c95 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -128,3 +128,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index c71e94a2b6..6896387d87 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -591,3 +591,4 @@ help if ./ countdown.sh 10 ./countdown.sh 10 help +ls --color=auto / From f941f84d04d266f226d6dcb79c567a457da94ea0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:41:03 -0600 Subject: [PATCH 176/325] 660.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e1dcf6a798..5e7db055c5 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/650.test.js"], + "spec": ["./test/660.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 79d86c52935dcf2c713f05a8577b4be679c8b2e9 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 03:58:17 +0000 Subject: [PATCH 177/325] Save progress: 660.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 257e651c95..72668a264b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -129,3 +129,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 6896387d87..f4a56d4ac2 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -592,3 +592,4 @@ help if ./countdown.sh 10 help ls --color=auto / +ls --color=auto /bin From bc75915fb6b783fbaed05e63260cc72370ca47ee Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:41:21 -0600 Subject: [PATCH 178/325] 670.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 5e7db055c5..2a0c5fa1ce 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/660.test.js"], + "spec": ["./test/670.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From cc29b3348fd24aa280bc56ca32487b6680f46809 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 04:40:06 +0000 Subject: [PATCH 179/325] Save progress: 670.1 --- .freeCodeCamp/test/.cwd | 4 ++ .freeCodeCamp/test/.next_command | 70 ++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 72668a264b..1c969b5831 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -130,3 +130,7 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index f4a56d4ac2..3b29577b2f 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -593,3 +593,73 @@ help if help ls --color=auto / ls --color=auto /bin +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +man +man sleep From 70e2707b8f8aaba556d212a83ba848945ab99b0f Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 14:11:36 -0600 Subject: [PATCH 180/325] 675.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 2a0c5fa1ce..ed04aac1ce 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/670.test.js"], + "spec": ["./test/675.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 6aed9f9f0939a2081dfe7d7eb93c0d14348e5c11 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 04:40:46 +0000 Subject: [PATCH 181/325] Save progress: 675.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 1c969b5831..68c4507798 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -134,3 +134,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 3b29577b2f..87bf9a528c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -663,3 +663,5 @@ trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} man man sleep +man sleep +sleep 3 From ebcabec4562bc62ed7ea6e6e6ff919ba4d108a76 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:41:48 -0600 Subject: [PATCH 182/325] 680.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index ed04aac1ce..a6ee0a016d 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/675.test.js"], + "spec": ["./test/680.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 2379c51e3597703d44e3a0839df6f2d4e4514fdd Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:42:25 -0600 Subject: [PATCH 183/325] 690.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index a6ee0a016d..1c36a6d1a4 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/680.test.js"], + "spec": ["./test/690.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index 24b2e2f34a..d128a04294 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -7,6 +7,7 @@ then for (( i = $1; i > 0; i-- )) do echo $i + sleep 1 done else echo Include a positive integer as the first argument. From 4484abd68b565e62c3cce6ebee68e0476cf8f82a Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 04:42:01 +0000 Subject: [PATCH 184/325] Save progress: 690.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 68c4507798..f4e372cf04 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -136,3 +136,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 87bf9a528c..143bcffbf9 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -665,3 +665,5 @@ man man sleep man sleep sleep 3 +./countdown.sh 2 +./countdown.sh 3 From e3916ad93d38a9e2b74341e512d4811a138a5808 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 14:12:57 -0600 Subject: [PATCH 185/325] 692.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1c36a6d1a4..ad244b1633 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/690.test.js"], + "spec": ["./test/692.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From fbc86afddf6a6d57f0556c53a2a02b7a94c1a5d0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 14:14:40 -0600 Subject: [PATCH 186/325] 694.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index ad244b1633..2a3340f17f 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/692.test.js"], + "spec": ["./test/694.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index d128a04294..c8342ac23d 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -4,7 +4,7 @@ if [[ $1 -gt 0 ]] then - for (( i = $1; i > 0; i-- )) + for (( i = $1; i >= 0; i-- )) do echo $i sleep 1 From 85b337d7d094a54ad799aada280ea7c17f199a69 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 04:42:43 +0000 Subject: [PATCH 187/325] Save progress: 694.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index f4e372cf04..bbd2797282 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -138,3 +138,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 143bcffbf9..28516b2cd1 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -667,3 +667,5 @@ man sleep sleep 3 ./countdown.sh 2 ./countdown.sh 3 +./countdown.sh3 +./countdown.sh 3 From a904cbde8241a08be3f99398ad71ac3f2b783ea8 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 14:15:39 -0600 Subject: [PATCH 188/325] 696.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 2a3340f17f..e27a7ac67f 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/694.test.js"], + "spec": ["./test/696.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 6a3b95225d1d0d6944cef460b56488d56b4bec86 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 14:16:21 -0600 Subject: [PATCH 189/325] 698.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e27a7ac67f..4b4c321362 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/696.test.js"], + "spec": ["./test/698.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index c8342ac23d..f288ca6dfb 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -2,6 +2,8 @@ # Program that counts down to zero from a given argument +echo -e "\n~~ Countdown Timer ~~\n" + if [[ $1 -gt 0 ]] then for (( i = $1; i >= 0; i-- )) From 33e16e4215d4d554498a672d3ed58585309d6b8c Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 4 Aug 2025 04:45:05 +0000 Subject: [PATCH 190/325] Save progress: 698.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index bbd2797282..79fcb569b7 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -140,3 +140,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 28516b2cd1..02a40a9034 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -669,3 +669,4 @@ sleep 3 ./countdown.sh 3 ./countdown.sh3 ./countdown.sh 3 +./countdown.sh 1 From 46947e1a2d176990bbce3b7d592f1f1b30b1baa9 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:43:08 -0600 Subject: [PATCH 191/325] 700.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 4b4c321362..96dee9b263 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/698.test.js"], + "spec": ["./test/700.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 6500b7247bca64bc028cf1b15b825682290f2bdb Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 16:06:16 +0000 Subject: [PATCH 192/325] Add Unit Conversion Utility project --- .freeCodeCamp/test.sh | 19 +++++++++ .freeCodeCamp/test/.cwd | 2 + .freeCodeCamp/test/.next_command | 68 ++++++++++++++++++++++++++++++++ countdown.sh | 16 ++++++++ 4 files changed, 105 insertions(+) create mode 100755 .freeCodeCamp/test.sh create mode 100755 countdown.sh diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh new file mode 100755 index 0000000000..52bd95d910 --- /dev/null +++ b/.freeCodeCamp/test.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +echo -e "\n~~ Questionnaire ~~\n" +QUESTION1="What's your name?" +QUESTION2="Where are you from?" +QUESTION3="What's your favorite coding website?" + +echo $QUESTION1 +read NAME + +echo $QUESTION2 +read LOCATION + +echo $QUESTION3 +read WEBSITE + +echo Hello $NAME from $LOCATION. + +echo $WEBSITE \ No newline at end of file diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 79fcb569b7..452f87253a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -141,3 +141,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 02a40a9034..8d323c0890 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -670,3 +670,71 @@ sleep 3 ./countdown.sh3 ./countdown.sh 3 ./countdown.sh 1 +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} diff --git a/countdown.sh b/countdown.sh new file mode 100755 index 0000000000..d452018760 --- /dev/null +++ b/countdown.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Program that counts down to zero from a given argument + +echo -e "\n~~ Countdown Timer ~~\n" + +if [[ $1 -gt 0 ]] +then + cd "C:/Users/evan/OneDrive/Documents/GitHub/Core_Java_Volume-ONE-13e" +git add . +git commit -m "Add Unit Conversion Utility project" +git push origin main + +else + echo Include a positive integer as the first argument. +fi From 9c6c3025d196085140f57217961abca42a186a2e Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 16:06:25 +0000 Subject: [PATCH 193/325] Save progress: 700.1 --- countdown.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/countdown.sh b/countdown.sh index d452018760..0d2f8a40af 100755 --- a/countdown.sh +++ b/countdown.sh @@ -6,11 +6,13 @@ echo -e "\n~~ Countdown Timer ~~\n" if [[ $1 -gt 0 ]] then - cd "C:/Users/evan/OneDrive/Documents/GitHub/Core_Java_Volume-ONE-13e" -git add . -git commit -m "Add Unit Conversion Utility project" -git push origin main - + : ' +for (( i = $1; i >= 0; i-- )) +do + echo $i + sleep 1 +done +' else echo Include a positive integer as the first argument. fi From 0b32c3474778336e7ec74453a7e40da5c69f9e10 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:43:21 -0600 Subject: [PATCH 194/325] 710.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 96dee9b263..31a3a89680 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/700.test.js"], + "spec": ["./test/710.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index f288ca6dfb..53353369cb 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -6,11 +6,13 @@ echo -e "\n~~ Countdown Timer ~~\n" if [[ $1 -gt 0 ]] then + : ' for (( i = $1; i >= 0; i-- )) do echo $i sleep 1 done + ' else echo Include a positive integer as the first argument. fi From 595526c06e17245096049e2e522844c8bc5f29dd Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 16:06:46 +0000 Subject: [PATCH 195/325] Save progress: 710.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 452f87253a..4deb05e751 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -143,3 +143,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 8d323c0890..4ca05edab5 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -738,3 +738,4 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" [[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} +help while From c848cb32e68d0d9377a5d2921855244a0aacee03 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:44:10 -0600 Subject: [PATCH 196/325] 730.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 31a3a89680..be70c6861d 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/710.test.js"], + "spec": ["./test/730.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 41fbc061bc10ce97a16e739f7971a7c4ff052c69 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 16:15:05 +0000 Subject: [PATCH 197/325] Save progress: 730.1 --- .freeCodeCamp/test.sh | 30 ++++++++++++++++-------------- countdown.sh | 1 + 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 52bd95d910..414743c6c0 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -1,19 +1,21 @@ #!/bin/bash -echo -e "\n~~ Questionnaire ~~\n" -QUESTION1="What's your name?" -QUESTION2="Where are you from?" -QUESTION3="What's your favorite coding website?" +# Program that counts down to zero from a given argument -echo $QUESTION1 -read NAME +echo -e "\n~~ Countdown Timer ~~\n" -echo $QUESTION2 -read LOCATION +if [[ $1 -gt 0 ]] +then + : ' +for (( i = $1; i >= 0; i-- )) +do + echo $i + sleep 1 +done +' +I=$1 +else + echo Include a positive integer as the first argument. +fi -echo $QUESTION3 -read WEBSITE - -echo Hello $NAME from $LOCATION. - -echo $WEBSITE \ No newline at end of file +echo $I \ No newline at end of file diff --git a/countdown.sh b/countdown.sh index 0d2f8a40af..f87a16c290 100755 --- a/countdown.sh +++ b/countdown.sh @@ -13,6 +13,7 @@ do sleep 1 done ' +I=$1 else echo Include a positive integer as the first argument. fi From 6bbf10d25d6c00bda313487d7e9969e466951a01 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:44:27 -0600 Subject: [PATCH 198/325] 740.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index be70c6861d..6c9fd1faab 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/730.test.js"], + "spec": ["./test/740.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index 53353369cb..b42315b0ba 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -13,6 +13,8 @@ then sleep 1 done ' + + I=$1 else echo Include a positive integer as the first argument. fi From 1b0927dc76314c3dfda5e0a647180c962adb8406 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:05:49 +0000 Subject: [PATCH 199/325] Save progress: 740.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 34 ++++++++++++++++++++++++++++++++ countdown.sh | 22 +++++++++++++-------- 3 files changed, 49 insertions(+), 8 deletions(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 4deb05e751..5d7c99ab40 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -144,3 +144,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 4ca05edab5..0fececcce8 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -739,3 +739,37 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} help while +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} diff --git a/countdown.sh b/countdown.sh index f87a16c290..187c3c33bb 100755 --- a/countdown.sh +++ b/countdown.sh @@ -6,14 +6,20 @@ echo -e "\n~~ Countdown Timer ~~\n" if [[ $1 -gt 0 ]] then - : ' -for (( i = $1; i >= 0; i-- )) -do - echo $i - sleep 1 -done -' -I=$1 + : ' + for (( i = $1; i >= 0; i-- )) + do + echo $i + sleep 1 + done + ' + + I=$1 + + while [[ $I -ge 0 ]] + do + echo $I + done else echo Include a positive integer as the first argument. fi From 3c75f7edca04d92f254aed41cfecb0cee6c00cbb Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:46:06 -0600 Subject: [PATCH 200/325] 750.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 6c9fd1faab..cb39a80593 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/740.test.js"], + "spec": ["./test/750.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index b42315b0ba..b6fa64002a 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -15,6 +15,11 @@ then ' I=$1 + + while [[ $I -ge 0 ]] + do + echo $I + done else echo Include a positive integer as the first argument. fi From b765e9a87f0217e82736e6f1aa0df48dbe5bb2e5 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:06:26 +0000 Subject: [PATCH 201/325] Save progress: 750.1 --- countdown.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/countdown.sh b/countdown.sh index 187c3c33bb..f23e5d3daf 100755 --- a/countdown.sh +++ b/countdown.sh @@ -19,7 +19,9 @@ then while [[ $I -ge 0 ]] do echo $I + (( I-- )) done + else echo Include a positive integer as the first argument. fi From c0014410c1ffe4791bc83372512e79d03780afd8 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:46:37 -0600 Subject: [PATCH 202/325] 760.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index cb39a80593..c01ebdd54f 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/750.test.js"], + "spec": ["./test/760.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index b6fa64002a..ea742f38d1 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -19,6 +19,7 @@ then while [[ $I -ge 0 ]] do echo $I + (( I-- )) done else echo Include a positive integer as the first argument. From 8d608ed9dd5278c296d404bf1ab702120b5e51c0 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:08:39 +0000 Subject: [PATCH 203/325] Save progress: 760.1 --- countdown.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/countdown.sh b/countdown.sh index f23e5d3daf..b63f2f17c8 100755 --- a/countdown.sh +++ b/countdown.sh @@ -20,6 +20,7 @@ then do echo $I (( I-- )) + sleep 1 done else From 83ec5a4e379b6e4a88a8dcb2785b51fc1eaed797 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:46:54 -0600 Subject: [PATCH 204/325] 770.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/countdown.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index c01ebdd54f..473993079c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/760.test.js"], + "spec": ["./test/770.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/countdown.sh b/.freeCodeCamp/reset_files/countdown.sh index ea742f38d1..fbf1d52337 100755 --- a/.freeCodeCamp/reset_files/countdown.sh +++ b/.freeCodeCamp/reset_files/countdown.sh @@ -20,6 +20,7 @@ then do echo $I (( I-- )) + sleep 1 done else echo Include a positive integer as the first argument. From 86c127888cbe482e5f46db4a613ac4f1b52fc466 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:09:05 +0000 Subject: [PATCH 205/325] Save progress: 770.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 5d7c99ab40..2a4e60744f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -145,3 +145,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 0fececcce8..75480f7dd5 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -773,3 +773,4 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" [[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} +./countdown.sh 5 From c42fcfc69a434137e615da383699428673b281fd Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:48:11 -0600 Subject: [PATCH 206/325] 780.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 473993079c..327022f6c4 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/770.test.js"], + "spec": ["./test/780.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 521df199b3f9de8677404529fb11b793499c5eba Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:09:37 +0000 Subject: [PATCH 207/325] Save progress: 780.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 2a4e60744f..1d5ca9817c 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -146,3 +146,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 75480f7dd5..e1f137025b 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -774,3 +774,4 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh 5 +touch bingo.sh From 74d889656b2fc957df8b665d998fdfd996361fb3 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:48:40 -0600 Subject: [PATCH 208/325] 790.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset.sh | 3 ++- .freeCodeCamp/reset_files/bingo.sh | 0 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100755 .freeCodeCamp/reset_files/bingo.sh diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 327022f6c4..605bcfcd80 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/780.test.js"], + "spec": ["./test/790.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset.sh b/.freeCodeCamp/reset.sh index fe10c89e69..2236a0049c 100755 --- a/.freeCodeCamp/reset.sh +++ b/.freeCodeCamp/reset.sh @@ -1,2 +1,3 @@ cp ./.freeCodeCamp/reset_files/questionnaire.sh . -cp ./.freeCodeCamp/reset_files/countdown.sh . \ No newline at end of file +cp ./.freeCodeCamp/reset_files/countdown.sh . +cp ./.freeCodeCamp/reset_files/bingo.sh . diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh new file mode 100755 index 0000000000..e69de29bb2 From 2c22006b0a807d061e8d5f6dee844d6e711605a9 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:14:11 +0000 Subject: [PATCH 209/325] Save progress: 790.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 1d5ca9817c..c0e7ae87e2 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -147,3 +147,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index e1f137025b..018ecce67c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -775,3 +775,4 @@ trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh 5 touch bingo.sh +chmod +x bingo.sh From 96076f993287d1dd9959cf063e989c4bea4ea836 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:49:19 -0600 Subject: [PATCH 210/325] 800.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 605bcfcd80..e507ac9817 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/790.test.js"], + "spec": ["./test/800.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 1120518557abcddabbd96d58302ab48d30dc45c0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:50:03 -0600 Subject: [PATCH 211/325] 810.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e507ac9817..7ef117be59 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/800.test.js"], + "spec": ["./test/810.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index e69de29bb2..a9bf588e2f 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -0,0 +1 @@ +#!/bin/bash From b951afb097eb9ac73654903bff5855e90378bf28 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Wed, 10 Mar 2021 14:22:48 -0600 Subject: [PATCH 212/325] 815.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 7ef117be59..1d6bbcd7e3 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/810.test.js"], + "spec": ["./test/815.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index a9bf588e2f..1959e83a91 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -1 +1,3 @@ #!/bin/bash + +# Bingo Number Generator From 3cec929854358aedcbd0e4f88925605c6463dde3 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:22:20 -0500 Subject: [PATCH 213/325] 817.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1d6bbcd7e3..318efea7cd 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/815.test.js"], + "spec": ["./test/817.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index 1959e83a91..878354a083 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -1,3 +1,5 @@ #!/bin/bash # Bingo Number Generator + +echo -e "\n~~ Bingo Number Generator ~~\n" From aeb89b77617f0b57537f4fa65025d3eea56271ca Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:18:10 +0000 Subject: [PATCH 214/325] Save progress: 817.1 --- .freeCodeCamp/test.sh | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 414743c6c0..fe98f8bf86 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -1,21 +1,8 @@ #!/bin/bash -# Program that counts down to zero from a given argument +echo -e "\n~~ Bingo Number Generator ~~\n" -echo -e "\n~~ Countdown Timer ~~\n" +#Bingo Number Generator -if [[ $1 -gt 0 ]] -then - : ' -for (( i = $1; i >= 0; i-- )) -do - echo $i - sleep 1 -done -' -I=$1 -else - echo Include a positive integer as the first argument. -fi - -echo $I \ No newline at end of file +NUMBER=5 +echo $NUMBER \ No newline at end of file From d5da5703330a31b2d32b29095addaae57048e876 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:23:12 -0500 Subject: [PATCH 215/325] 818.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 318efea7cd..882d503620 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/817.test.js"], + "spec": ["./test/818.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index 878354a083..e88b5a4390 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -3,3 +3,5 @@ # Bingo Number Generator echo -e "\n~~ Bingo Number Generator ~~\n" + +NUMBER=5 From 18a3b89bc454939e8c306fa6635ea0953f3bb845 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:24:42 -0500 Subject: [PATCH 216/325] 819.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 882d503620..3bc7692c62 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/818.test.js"], + "spec": ["./test/819.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index e88b5a4390..f4877768b4 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -5,3 +5,4 @@ echo -e "\n~~ Bingo Number Generator ~~\n" NUMBER=5 +echo $NUMBER From 92dae973b1ce173a1699e2dd0654140a89f7caa2 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:24:11 +0000 Subject: [PATCH 217/325] Save progress: 819.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index c0e7ae87e2..6643f04ce0 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -148,3 +148,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 018ecce67c..42e45e8cc8 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -776,3 +776,5 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./countdown.sh 5 touch bingo.sh chmod +x bingo.sh +./ bingo.sh +./bingo.sh From e8c2acf7da7446a2687a7a61277fb51c21f55881 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:50:43 -0600 Subject: [PATCH 218/325] 820.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 3bc7692c62..bb5fa71f80 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/819.test.js"], + "spec": ["./test/820.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From d25eb1ed3e2eb9f416a788b787481ae708263152 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 5 Aug 2025 18:24:58 +0000 Subject: [PATCH 219/325] Save progress: 820.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 6643f04ce0..6fe5d22c17 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -150,3 +150,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 42e45e8cc8..8fb156d625 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -778,3 +778,5 @@ touch bingo.sh chmod +x bingo.sh ./ bingo.sh ./bingo.sh +clear +printenv From 6ebde1a9c9379171c30df79759d8ca11252c18ab Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:42:11 -0500 Subject: [PATCH 220/325] 822.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index bb5fa71f80..037f140fc4 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/820.test.js"], + "spec": ["./test/822.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 5e638163f11dda9a4e5bce82b15fe727db7a00ca Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:54:34 +0000 Subject: [PATCH 221/325] Save progress: 822.1 --- .freeCodeCamp/test/.cwd | 5 +++ .freeCodeCamp/test/.next_command | 71 ++++++++++++++++++++++++++++++++ countdown.sh | 7 ++-- 3 files changed, 79 insertions(+), 4 deletions(-) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 6fe5d22c17..4d2027d82b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -152,3 +152,8 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 8fb156d625..969bdd346c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -780,3 +780,74 @@ chmod +x bingo.sh ./bingo.sh clear printenv +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +LANG +echo LANG +echo $LANG diff --git a/countdown.sh b/countdown.sh index b63f2f17c8..fbf1d52337 100755 --- a/countdown.sh +++ b/countdown.sh @@ -18,11 +18,10 @@ then while [[ $I -ge 0 ]] do - echo $I - (( I-- )) - sleep 1 + echo $I + (( I-- )) + sleep 1 done - else echo Include a positive integer as the first argument. fi From cda686446437ee0f33103157e4e0ec8e5818f47b Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:43:25 -0500 Subject: [PATCH 222/325] 824.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 037f140fc4..d4ad550968 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/822.test.js"], + "spec": ["./test/824.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 5b3d98ed7f8d12e688732d38b682764e82ffeee2 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:55:03 +0000 Subject: [PATCH 223/325] Save progress: 824.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 4d2027d82b..f927f5a158 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -157,3 +157,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 969bdd346c..7be28ec2e7 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -851,3 +851,4 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} LANG echo LANG echo $LANG +declare -p From c863536e98132def320cebfc0ea26388ecbd5f96 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:44:25 -0500 Subject: [PATCH 224/325] 826.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index d4ad550968..96c0add372 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/824.test.js"], + "spec": ["./test/826.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 22a5d0ceb876b0a90b7f9890e54e08a77177ed0b Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:55:39 +0000 Subject: [PATCH 225/325] Save progress: 826.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index f927f5a158..84647834f0 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -158,3 +158,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 7be28ec2e7..01cc48220a 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -852,3 +852,4 @@ LANG echo LANG echo $LANG declare -p +echo $RANDOM From 96d308a910fe6b6a32fa1b1e6c96d504c7acd323 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:45:26 -0500 Subject: [PATCH 226/325] 828.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 96c0add372..63e22b1b0b 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/826.test.js"], + "spec": ["./test/828.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 43f9301d938ae2f18b5420930fe9c87ee8233e06 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:51:24 -0600 Subject: [PATCH 227/325] 830.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 63e22b1b0b..40d21a0a3d 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/828.test.js"], + "spec": ["./test/830.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index f4877768b4..f13ea86d88 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -4,5 +4,5 @@ echo -e "\n~~ Bingo Number Generator ~~\n" -NUMBER=5 +NUMBER=$RANDOM echo $NUMBER From 8ac6c1b404965784e89d183a36ef366903f79eb6 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:56:50 +0000 Subject: [PATCH 228/325] Save progress: 830.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 84647834f0..5f2c13ab55 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -159,3 +159,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 01cc48220a..034d126246 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -853,3 +853,5 @@ echo LANG echo $LANG declare -p echo $RANDOM +./bingo.sh +./bingo.sh From f2c45d212a1c1db7619bafb837ea34831207a5ba Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:59:58 -0500 Subject: [PATCH 229/325] 835.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 40d21a0a3d..228e0207cd 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/830.test.js"], + "spec": ["./test/835.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 5b68b3a9d4b6e85a56613855d799df382b4e3d53 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:57:26 +0000 Subject: [PATCH 230/325] Save progress: 835.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 5f2c13ab55..6ea885464a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -161,3 +161,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 034d126246..a500c0085e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -855,3 +855,4 @@ declare -p echo $RANDOM ./bingo.sh ./bingo.sh +./bingo.sh From 5ccd8bfc9df35b0f7b78d974808a3d3e87f3b91f Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:51:56 -0600 Subject: [PATCH 231/325] 840.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 228e0207cd..1501e594bf 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/835.test.js"], + "spec": ["./test/840.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index f13ea86d88..f77ec1c4ef 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -4,5 +4,5 @@ echo -e "\n~~ Bingo Number Generator ~~\n" -NUMBER=$RANDOM +NUMBER=$RANDOM%75 echo $NUMBER From 90035a589eb6b78683fc2f809a610af8c810e38f Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:57:33 +0000 Subject: [PATCH 232/325] Save progress: 840.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 6ea885464a..66a38984d3 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -162,3 +162,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index a500c0085e..0abaddb107 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -856,3 +856,4 @@ echo $RANDOM ./bingo.sh ./bingo.sh ./bingo.sh +./bingo.sh From 627187eb0e7e0842e53b0def7bb21d0997b31a5e Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 11:32:59 -0600 Subject: [PATCH 233/325] 881.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1501e594bf..1d4fa58f2a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/840.test.js"], + "spec": ["./test/881.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 8a08ea79fb3d0cd84585c04967135dc9564c105e Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:58:14 +0000 Subject: [PATCH 234/325] Save progress: 881.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 66a38984d3..a3439f7db8 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -163,3 +163,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 0abaddb107..7ed7bf694b 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -857,3 +857,4 @@ echo $RANDOM ./bingo.sh ./bingo.sh ./bingo.sh +I=0 From 26861a065dc3b78db2999de791318ab86e5453a0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 11:33:52 -0600 Subject: [PATCH 235/325] 884.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1d4fa58f2a..c51a870acf 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/881.test.js"], + "spec": ["./test/884.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 841dd75f3efb585d96d5cd05021a957c4dc297b3 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:58:38 +0000 Subject: [PATCH 236/325] Save progress: 884.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index a3439f7db8..7db74aa0a3 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -164,3 +164,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 7ed7bf694b..c4b6f807b2 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -858,3 +858,5 @@ echo $RANDOM ./bingo.sh ./bingo.sh I=0 +echo $i +echo $I From 4a47d8d5662c20ea4da24d5c3868f6409a50bf2e Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 11:45:48 -0600 Subject: [PATCH 237/325] 887.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index c51a870acf..7e75d1b0d6 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/884.test.js"], + "spec": ["./test/887.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 1e283920b930c41d5d35f75a84cf870c3b82e81e Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:59:16 +0000 Subject: [PATCH 238/325] Save progress: 887.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 7db74aa0a3..60b9b848da 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -166,3 +166,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index c4b6f807b2..e129e7921c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -860,3 +860,5 @@ echo $RANDOM I=0 echo $i echo $I +__vsc_prompt_cmd_original +(( I++ )) From e425459e539e3a9ec519eedc20411c06c96bc931 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 11:46:55 -0600 Subject: [PATCH 239/325] 890.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 7e75d1b0d6..91d3c1e6e2 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/887.test.js"], + "spec": ["./test/890.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 14650c7e1bfda45209b01187e75d359e755c9efa Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 03:59:33 +0000 Subject: [PATCH 240/325] Save progress: 890.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 60b9b848da..2af40dc555 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -168,3 +168,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index e129e7921c..2768c6e654 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -862,3 +862,5 @@ echo $i echo $I __vsc_prompt_cmd_original (( I++ )) +echo I +echo $I From a0235593868e21e781720029576138373a1fe19b Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:31:39 -0500 Subject: [PATCH 241/325] 891.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 91d3c1e6e2..059de77137 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/890.test.js"], + "spec": ["./test/891.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 3ae29fd1dae26288c708df639c62ffa3c4f85e17 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:02:15 +0000 Subject: [PATCH 242/325] Save progress: 891.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 2af40dc555..4681c31d2f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -170,3 +170,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 2768c6e654..3b20dbbf83 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -864,3 +864,4 @@ __vsc_prompt_cmd_original (( I++ )) echo I echo $I +help let From 238a587bb31f6209b12f7ec492c740f59ef30994 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 12:05:05 -0600 Subject: [PATCH 243/325] 893.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 059de77137..6389958e8b 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/891.test.js"], + "spec": ["./test/893.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From b68c9946b6e4bd49501788c044575f06ba521a05 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:05:10 +0000 Subject: [PATCH 244/325] Save progress: 893.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 4681c31d2f..97f9936df0 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -171,3 +171,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 3b20dbbf83..629c4bb73b 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -865,3 +865,4 @@ __vsc_prompt_cmd_original echo I echo $I help let +(( I += 10)) From 5334ca21cbd00405bface69ccf45bd32e307ed1d Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 12:08:20 -0600 Subject: [PATCH 245/325] 896.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 6389958e8b..034e3e7522 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/893.test.js"], + "spec": ["./test/896.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From dfb245c6575e2c8ab06e3904c6d418f7bceb7021 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:05:21 +0000 Subject: [PATCH 246/325] Save progress: 896.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 97f9936df0..45b2fe99c9 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -172,3 +172,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 629c4bb73b..dcfa9dcca4 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -866,3 +866,4 @@ echo I echo $I help let (( I += 10)) +echo $I From 195bf43d0eda8c47caadf3ec63144fd1d89ec623 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:34:16 -0500 Subject: [PATCH 247/325] 897.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 034e3e7522..178a82046b 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/896.test.js"], + "spec": ["./test/897.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 2d6fa4393a11814bdd5c3c0f87e801ffb766449c Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:06:01 +0000 Subject: [PATCH 248/325] Save progress: 897.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 45b2fe99c9..1bd9dd395a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -173,3 +173,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index dcfa9dcca4..f595c63b08 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -867,3 +867,4 @@ echo $I help let (( I += 10)) echo $I +$(( I + 4 )) From 370591a329826b58916da12d1dec462fee62c23b Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 12:15:07 -0600 Subject: [PATCH 249/325] 899.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 178a82046b..4f084658a4 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/897.test.js"], + "spec": ["./test/899.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 58777d247b394b47869a9380223d320c0026fd15 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:06:35 +0000 Subject: [PATCH 250/325] Save progress: 899.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 1bd9dd395a..4a54e8b573 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -174,3 +174,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index f595c63b08..61f0f62c41 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -868,3 +868,4 @@ help let (( I += 10)) echo $I $(( I + 4 )) +echo $(( I+4 )) From 6cb1de545f2e384396092a0862fbb0dced29b450 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 12:15:46 -0600 Subject: [PATCH 251/325] 902.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 4f084658a4..42b547849b 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/899.test.js"], + "spec": ["./test/902.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 4c89c2a02cdbda277e573d8bfebecd39ac0325a9 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:06:51 +0000 Subject: [PATCH 252/325] Save progress: 902.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 4a54e8b573..d3fe420410 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -175,3 +175,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 61f0f62c41..7f7db36658 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -869,3 +869,4 @@ help let echo $I $(( I + 4 )) echo $(( I+4 )) +echo $I From 6beca58d2bf7b544135e638d17d1499d292152f7 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 12:19:52 -0600 Subject: [PATCH 253/325] 905.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 42b547849b..500aaee548 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/902.test.js"], + "spec": ["./test/905.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 5f1ddbcacf3b72d7a969c909dc91c4555c3ed05e Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:10:21 +0000 Subject: [PATCH 254/325] Save progress: 905.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index d3fe420410..fe809c9099 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -176,3 +176,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 7f7db36658..12d866a315 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -870,3 +870,6 @@ echo $I $(( I + 4 )) echo $(( I+4 )) echo $I +I=3 $(( I - 6)) +I=$(( I - 6)) +J=$(( I - 6)) From 94eb1be58507a919ef2daf8843546459f0086d8e Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 12:20:24 -0600 Subject: [PATCH 255/325] 908.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 500aaee548..faf209f139 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/905.test.js"], + "spec": ["./test/908.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 624668df9074b6117cfd5bcc2f9988a103234483 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:11:04 +0000 Subject: [PATCH 256/325] Save progress: 908.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index fe809c9099..9bbb5a00bf 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -179,3 +179,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 12d866a315..244b3af0d2 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -873,3 +873,6 @@ echo $I I=3 $(( I - 6)) I=$(( I - 6)) J=$(( I - 6)) +echo $3 +echo J +echo $J From ba2c9838915e6505533071c34d02438d014d918e Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 12:22:35 -0600 Subject: [PATCH 257/325] 911.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index faf209f139..ea4a354acd 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/908.test.js"], + "spec": ["./test/911.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 5cafff2a16ef358fa9dd3483ed1ca291c1a996c2 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:13:13 +0000 Subject: [PATCH 258/325] Save progress: 911.1 --- .freeCodeCamp/test/.cwd | 4 ++++ .freeCodeCamp/test/.next_command | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 9bbb5a00bf..95fefbb646 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -182,3 +182,7 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 244b3af0d2..b34e513085 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -876,3 +876,7 @@ J=$(( I - 6)) echo $3 echo J echo $J +echo $J bingo.sh countdown.sh questionnaire.sh 5 + 25 +echo 3 bingo.sh countdown.sh questionnaire.sh 5 + 25 +echo $(( 3 bingo.sh countdown.sh questionnaire.sh 5 + 25)) +echo $((J bingo.sh countdown.sh questionnaire.sh 5 + 25)) From 5cf0272acdba9ae11ae6a75ac43bdd88332d49be Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 12:24:38 -0600 Subject: [PATCH 259/325] 912.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index ea4a354acd..dd5feebe8c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/911.test.js"], + "spec": ["./test/912.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From bd126f8da4f3f600b231d57f9f74a6177ff91bfe Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:14:23 +0000 Subject: [PATCH 260/325] Save progress: 912.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 95fefbb646..8ae5d63469 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -186,3 +186,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index b34e513085..5cc635b977 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -880,3 +880,6 @@ echo $J bingo.sh countdown.sh questionnaire.sh 5 + 25 echo 3 bingo.sh countdown.sh questionnaire.sh 5 + 25 echo $(( 3 bingo.sh countdown.sh questionnaire.sh 5 + 25)) echo $((J bingo.sh countdown.sh questionnaire.sh 5 + 25)) +echo $((3 bingo.sh countdown.sh questionnaire.sh 5 + 25)) +echo $3 +echo $J From 036f20f4590e7e2de8adb276722c01d8423cf07e Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:36:01 -0500 Subject: [PATCH 261/325] 913.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index dd5feebe8c..3526f1ea7a 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/912.test.js"], + "spec": ["./test/913.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 0d241e562430d87d2d9b94ea45175fb8955495ac Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:20:34 +0000 Subject: [PATCH 262/325] Save progress: 913.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 8ae5d63469..4c909330b5 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -189,3 +189,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 5cc635b977..da7992c71e 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -883,3 +883,4 @@ echo $((J bingo.sh countdown.sh questionnaire.sh 5 + 25)) echo $((3 bingo.sh countdown.sh questionnaire.sh 5 + 25)) echo $3 echo $J +declare -p From 121b8a7cfce2d4f8785de498e784f82b766f2d44 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 13:03:34 -0600 Subject: [PATCH 263/325] 914.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 3526f1ea7a..4d8babda97 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/913.test.js"], + "spec": ["./test/914.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 3c398301685ffe7d2e0ec739abf87f1f37881cb1 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:26:47 +0000 Subject: [PATCH 264/325] Save progress: 914.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 4c909330b5..f58ef46ac9 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -190,3 +190,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index da7992c71e..250596ba4d 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -884,3 +884,5 @@ echo $((3 bingo.sh countdown.sh questionnaire.sh 5 + 25)) echo $3 echo $J declare -p +declare -p 3 +declare -p J From a0770b4ee5a3316e4b44385fe081354216a4fb70 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 13:08:43 -0600 Subject: [PATCH 265/325] 916.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 4d8babda97..0409809ffd 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/914.test.js"], + "spec": ["./test/916.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 81161718a878c97cfc8698cbdbe46381a68d6eea Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:29:31 +0000 Subject: [PATCH 266/325] Save progress: 916.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index f58ef46ac9..96a9311280 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -192,3 +192,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 250596ba4d..384304ac4c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -886,3 +886,4 @@ echo $J declare -p declare -p 3 declare -p J +declare -p RANDOM From 15cdb0641e0a6e24e3717ad906745ff1ecfbe494 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:37:32 -0500 Subject: [PATCH 267/325] 918.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 0409809ffd..9dff8780b2 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/916.test.js"], + "spec": ["./test/918.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From cec3bb96edeadce8c573ed896207e49edb38ab7a Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:35:07 +0000 Subject: [PATCH 268/325] Save progress: 918.1 --- .freeCodeCamp/test/.cwd | 6 ++++++ .freeCodeCamp/test/.next_command | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 96a9311280..96228a006b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -193,3 +193,9 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 384304ac4c..451922224c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -887,3 +887,9 @@ declare -p declare -p 3 declare -p J declare -p RANDOM +echo RANDOM % 75 +__vsc_prompt_cmd_original +__vsc_prompt_cmd_original +__vsc_prompt_cmd_original +__vsc_prompt_cmd_original +echo $(( RANDOM % 75 )) From a9da5afb42e13ae72b091caf1dbffe81179be5fe Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 13:10:18 -0600 Subject: [PATCH 269/325] 920.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 9dff8780b2..05358a0ba2 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/918.test.js"], + "spec": ["./test/920.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From f86577f9de3188fb65e901dd879f091c79c24002 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:36:23 +0000 Subject: [PATCH 270/325] Save progress: 920.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 96228a006b..abd5fbc78f 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -199,3 +199,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 451922224c..00f53dc32b 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -893,3 +893,5 @@ __vsc_prompt_cmd_original __vsc_prompt_cmd_original __vsc_prompt_cmd_original echo $(( RANDOM % 75 )) +__vsc_prompt_cmd_original +echo $(( RANDOM % 75 + 1 )) From 9c5326ff4aa3d11d415b7bca34b50a296e0f62fe Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 13:13:17 -0600 Subject: [PATCH 271/325] 928.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 05358a0ba2..47ee05fb5c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/920.test.js"], + "spec": ["./test/928.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 85b0b97d2d66367d00d4ada7bfdb0463fb8b918f Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:03:59 -0600 Subject: [PATCH 272/325] 930.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 47ee05fb5c..f01650ec40 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/928.test.js"], + "spec": ["./test/930.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index f77ec1c4ef..7789524b12 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -4,5 +4,5 @@ echo -e "\n~~ Bingo Number Generator ~~\n" -NUMBER=$RANDOM%75 +NUMBER=$(( RANDOM % 75 + 1 )) echo $NUMBER From 66e7de1f130bb35f9887818120e692c2e2dd1b49 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 7 Aug 2025 04:37:40 +0000 Subject: [PATCH 273/325] Save progress: 930.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index abd5fbc78f..90f830a829 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -201,3 +201,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 00f53dc32b..03a31cedba 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -895,3 +895,5 @@ __vsc_prompt_cmd_original echo $(( RANDOM % 75 )) __vsc_prompt_cmd_original echo $(( RANDOM % 75 + 1 )) +./bingo.sh +./bingo.sh From fea583278dc00a5f24f9290f9bc834044852c5a7 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:04:22 -0600 Subject: [PATCH 274/325] 940.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index f01650ec40..cc0739c059 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/930.test.js"], + "spec": ["./test/940.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 2eac365f22f9f9a9f7dcdacb87c73ba966146aa3 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 09:05:55 +0000 Subject: [PATCH 275/325] Save progress: 940.1 --- .freeCodeCamp/test.sh | 9 +++++--- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 35 ++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index fe98f8bf86..7511aeb820 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -1,8 +1,11 @@ #!/bin/bash +# Bingo Number Generator + echo -e "\n~~ Bingo Number Generator ~~\n" -#Bingo Number Generator +NUMBER=$(( RANDOM % 75 + 1 )) +echo $NUMBER +TEXT="The next number is, " -NUMBER=5 -echo $NUMBER \ No newline at end of file +echo $TEXT \ No newline at end of file diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 90f830a829..d2e61a030e 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -203,3 +203,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 03a31cedba..208c238a2d 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -897,3 +897,38 @@ __vsc_prompt_cmd_original echo $(( RANDOM % 75 + 1 )) ./bingo.sh ./bingo.sh +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +./bingo.sh From 45d06efdbbb638b7f31dab3933cbddf75848d369 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 23 Mar 2021 08:38:24 -0500 Subject: [PATCH 276/325] 945.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index cc0739c059..c3fc8b96b5 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/940.test.js"], + "spec": ["./test/945.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index 7789524b12..fb769a9a95 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -5,4 +5,6 @@ echo -e "\n~~ Bingo Number Generator ~~\n" NUMBER=$(( RANDOM % 75 + 1 )) +TEXT="The next number is, " + echo $NUMBER From 5a2393dc283b61f7adac7be27635a2b2e7f82ed8 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 09:06:35 +0000 Subject: [PATCH 277/325] Save progress: 945.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index d2e61a030e..d84626596b 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -205,3 +205,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 208c238a2d..fab482abf8 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -932,3 +932,4 @@ __vsc_dbg_trap="$(__vsc_get_trap DEBUG)" trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./bingo.sh +help let From e7bca1cde07a8d6da47d3a3fee220406e06d584f Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:04:52 -0600 Subject: [PATCH 278/325] 950.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index c3fc8b96b5..77cb4d7120 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/945.test.js"], + "spec": ["./test/950.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 2715a73a5a0477dc0e618139d01310bcbc3730f3 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 09:13:14 +0000 Subject: [PATCH 279/325] Save progress: 950.1 --- .freeCodeCamp/test.sh | 11 +++++++---- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 7511aeb820..32167718d2 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -4,8 +4,11 @@ echo -e "\n~~ Bingo Number Generator ~~\n" -NUMBER=$(( RANDOM % 75 + 1 )) -echo $NUMBER -TEXT="The next number is, " +NUMBER=$(( RANDOM % 15 + 1 )) -echo $TEXT \ No newline at end of file +TEXT="The next number is, " + +if (( NUMBER <= 15 )) +then +echo $TEXT B:$NUMBER +fi \ No newline at end of file diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index d84626596b..870885295c 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -206,3 +206,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index fab482abf8..2294614dc3 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -933,3 +933,4 @@ trap '__vsc_preexec_all "$_"' DEBUG __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./bingo.sh help let +./ bingo.sh From c861768f495ac1fe7693c9c9c5fbf1b673e583eb Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:05:06 -0600 Subject: [PATCH 280/325] 960.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 77cb4d7120..6c29369d9f 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/950.test.js"], + "spec": ["./test/960.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index fb769a9a95..6273344467 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -7,4 +7,7 @@ echo -e "\n~~ Bingo Number Generator ~~\n" NUMBER=$(( RANDOM % 75 + 1 )) TEXT="The next number is, " -echo $NUMBER +if (( NUMBER <= 15 )) +then + echo $TEXT B:$NUMBER +fi From 01772987d6310a25b32708259d353933a094a429 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 09:28:04 +0000 Subject: [PATCH 281/325] Save progress: 960.1 --- .freeCodeCamp/test.sh | 6 +++++- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 32167718d2..991324f9f3 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -4,11 +4,15 @@ echo -e "\n~~ Bingo Number Generator ~~\n" -NUMBER=$(( RANDOM % 15 + 1 )) +NUMBER=$(( RANDOM % 15+16 )) TEXT="The next number is, " if (( NUMBER <= 15 )) then echo $TEXT B:$NUMBER + +elif [[ $NUMBER -le 30 ]] +then + echo $TEXT I:$NUMBER fi \ No newline at end of file diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 870885295c..e509095584 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -207,3 +207,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 2294614dc3..75115e2378 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -934,3 +934,5 @@ __vsc_original_prompt_command=${PROMPT_COMMAND:-} ./bingo.sh help let ./ bingo.sh +help text +help test From 62061643f120d0d27c0d940bc3f9547ee6c39a6f Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:05:40 -0600 Subject: [PATCH 282/325] 970.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 6c29369d9f..36e6345bf2 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/960.test.js"], + "spec": ["./test/970.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index 6273344467..81fc6ce30b 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -10,4 +10,7 @@ TEXT="The next number is, " if (( NUMBER <= 15 )) then echo $TEXT B:$NUMBER +elif [[ $NUMBER -le 30 ]] +then + echo $TEXT I:$NUMBER fi From ea2f504c37df1e2f7ab60fd5a645f375f72c9fc7 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 09:52:00 +0000 Subject: [PATCH 283/325] Save progress: 970.1 --- .freeCodeCamp/test.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 991324f9f3..86522848ce 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -4,7 +4,7 @@ echo -e "\n~~ Bingo Number Generator ~~\n" -NUMBER=$(( RANDOM % 15+16 )) +NUMBER=$(( RANDOM % 15+31 )) TEXT="The next number is, " @@ -15,4 +15,8 @@ echo $TEXT B:$NUMBER elif [[ $NUMBER -le 30 ]] then echo $TEXT I:$NUMBER + + elif (( $NUMBER < 46 )) + then + echo $TEXT N:$NUMBER fi \ No newline at end of file From ab2f1b841643b9ed6a7436065d3bc53da6fda450 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:06:14 -0600 Subject: [PATCH 284/325] 980.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 36e6345bf2..787610d743 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/970.test.js"], + "spec": ["./test/980.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index 81fc6ce30b..b4fa30d7d6 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -13,4 +13,7 @@ then elif [[ $NUMBER -le 30 ]] then echo $TEXT I:$NUMBER +elif (( NUMBER < 46 )) +then + echo $TEXT N:$NUMBER fi From 15a8bfc0155a2b6c14c24970da03ba63205d9fb9 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 09:55:20 +0000 Subject: [PATCH 285/325] Save progress: 980.1 --- .freeCodeCamp/test.sh | 7 ++++++- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 86522848ce..dc0f5e8370 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -4,7 +4,7 @@ echo -e "\n~~ Bingo Number Generator ~~\n" -NUMBER=$(( RANDOM % 15+31 )) +NUMBER=$(( RANDOM % 15+46 )) TEXT="The next number is, " @@ -19,4 +19,9 @@ then elif (( $NUMBER < 46 )) then echo $TEXT N:$NUMBER + + elif [[ $NUMBER -lt 61 ]] + then + echo $TEXT G:$NUMBER + fi \ No newline at end of file diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index e509095584..b1eb4c4a62 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -209,3 +209,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 75115e2378..4b2327e924 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -936,3 +936,5 @@ help let ./ bingo.sh help text help test +./ bingo,sh +./ bingo.sh From 2caf1ab62b859a35349a2062b7682de1bc4e43b6 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 18 Mar 2021 22:07:35 -0500 Subject: [PATCH 286/325] 990.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 787610d743..a02126a490 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/980.test.js"], + "spec": ["./test/990.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index b4fa30d7d6..a00e25845c 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -16,4 +16,7 @@ then elif (( NUMBER < 46 )) then echo $TEXT N:$NUMBER +elif [[ $NUMBER -lt 61 ]] +then + echo $TEXT G:$NUMBER fi From c2939b8a41884577ada44172ddf13fe67eb90389 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:12:33 +0000 Subject: [PATCH 287/325] Save progress: 990.1 --- .freeCodeCamp/test.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index dc0f5e8370..38838bdf68 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -4,7 +4,7 @@ echo -e "\n~~ Bingo Number Generator ~~\n" -NUMBER=$(( RANDOM % 15+46 )) +NUMBER=$(( RANDOM % 15+61 )) TEXT="The next number is, " @@ -24,4 +24,7 @@ then then echo $TEXT G:$NUMBER + else + echo $TEXT O:$NUMBER + fi \ No newline at end of file From 5f67ca60e3dee05d68b77e15f365e1b4227ac6d5 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:06:45 -0600 Subject: [PATCH 288/325] 1000.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/bingo.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index a02126a490..0421e20953 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/990.test.js"], + "spec": ["./test/1000.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/bingo.sh b/.freeCodeCamp/reset_files/bingo.sh index a00e25845c..b70885aca1 100755 --- a/.freeCodeCamp/reset_files/bingo.sh +++ b/.freeCodeCamp/reset_files/bingo.sh @@ -19,4 +19,6 @@ then elif [[ $NUMBER -lt 61 ]] then echo $TEXT G:$NUMBER +else + echo $TEXT O:$NUMBER fi From de1c555d72965cda0e58fc1335f825ccda39e69e Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:13:03 +0000 Subject: [PATCH 289/325] Save progress: 1000.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index b1eb4c4a62..64a6397f1d 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -211,3 +211,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 4b2327e924..21d1294238 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -938,3 +938,6 @@ help text help test ./ bingo,sh ./ bingo.sh +./ bingo.sh +./bingo.sh +./bingo.sh From c799ec1007a6d50d6334022c7a256907faf17eeb Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:07:19 -0600 Subject: [PATCH 290/325] 1010.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 0421e20953..39f72c76ef 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1000.test.js"], + "spec": ["./test/1010.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 29aadb963ff615b81356ee5e8c882b45e2af8444 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:13:28 +0000 Subject: [PATCH 291/325] Save progress: 1010.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 64a6397f1d..a1914bed7a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -214,3 +214,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 21d1294238..d3b965f867 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -941,3 +941,4 @@ help test ./ bingo.sh ./bingo.sh ./bingo.sh +touch fortune.sh From d195fc6d321b410e515eeea1beea486dd5b0fe07 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:07:53 -0600 Subject: [PATCH 292/325] 1020.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset.sh | 1 + .freeCodeCamp/reset_files/fortune.sh | 0 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100755 .freeCodeCamp/reset_files/fortune.sh diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 39f72c76ef..09d3770972 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1010.test.js"], + "spec": ["./test/1020.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset.sh b/.freeCodeCamp/reset.sh index 2236a0049c..ea677b4406 100755 --- a/.freeCodeCamp/reset.sh +++ b/.freeCodeCamp/reset.sh @@ -1,3 +1,4 @@ cp ./.freeCodeCamp/reset_files/questionnaire.sh . cp ./.freeCodeCamp/reset_files/countdown.sh . cp ./.freeCodeCamp/reset_files/bingo.sh . +cp ./.freeCodeCamp/reset_files/fortune.sh . diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh new file mode 100755 index 0000000000..e69de29bb2 From 3db3366103708aa5a54fd683351da7378d8c7813 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:14:32 +0000 Subject: [PATCH 293/325] Save progress: 1020.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index a1914bed7a..06a1e42eae 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -215,3 +215,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index d3b965f867..7c45b683b0 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -942,3 +942,5 @@ help test ./bingo.sh ./bingo.sh touch fortune.sh +chomd +x fortune.sh +chmod +x fortune.sh From 391c50a75e1d0cf4a0254f6818a08e8bde142942 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:08:19 -0600 Subject: [PATCH 294/325] 1030.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 09d3770972..3dc5e34a0c 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1020.test.js"], + "spec": ["./test/1030.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 4db059309fe8b7f8252cc1a7cd6ab151cb61a37d Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:08:54 -0600 Subject: [PATCH 295/325] 1040.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 3dc5e34a0c..df56d63f3d 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1030.test.js"], + "spec": ["./test/1040.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index e69de29bb2..a9bf588e2f 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -0,0 +1 @@ +#!/bin/bash From ba5f14b6891ef2b3bbb8ee4bf75ac21a8a7a1012 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 4 Mar 2021 22:09:23 -0600 Subject: [PATCH 296/325] 1050.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index df56d63f3d..46b1e5ce19 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1040.test.js"], + "spec": ["./test/1050.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index a9bf588e2f..965e0d6e11 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -1 +1,3 @@ #!/bin/bash + +# Program to tell a persons fortune From eba9f29901621d0a16734afcd8d4ca92d2082751 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:38:22 +0000 Subject: [PATCH 297/325] Save progress: 1050.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 06a1e42eae..ac37bc8fec 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -217,3 +217,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 7c45b683b0..5d7be697a8 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -944,3 +944,4 @@ help test touch fortune.sh chomd +x fortune.sh chmod +x fortune.sh +./ fortune.sh From b9cd16ca4393be7274ddd5f249ef668065550ab5 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:28:41 -0600 Subject: [PATCH 298/325] 1060.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 46b1e5ce19..6e54b11e72 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1050.test.js"], + "spec": ["./test/1060.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index 965e0d6e11..b4a314fb71 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -1,3 +1,5 @@ #!/bin/bash # Program to tell a persons fortune + +echo -e "\n~~ Fortune Teller ~~\n" From 52028a5f8257acd88575035000cd20475612baee Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:54:28 +0000 Subject: [PATCH 299/325] Save progress: 1060.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index ac37bc8fec..f4e2e2cc52 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -218,3 +218,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 5d7be697a8..41e71ee51c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -945,3 +945,4 @@ touch fortune.sh chomd +x fortune.sh chmod +x fortune.sh ./ fortune.sh +./fortune.sh From 91f1b318aec5b3044037464699e8e693aea91f81 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:45:28 -0600 Subject: [PATCH 300/325] 1070.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 6e54b11e72..6b273e7eb0 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1060.test.js"], + "spec": ["./test/1070.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 20ad54b03c1885cae828dbc200f29df153e9915f Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:55:24 +0000 Subject: [PATCH 301/325] Save progress: 1070.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index f4e2e2cc52..f7a823e5af 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -219,3 +219,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 41e71ee51c..496b8c8471 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -946,3 +946,4 @@ chomd +x fortune.sh chmod +x fortune.sh ./ fortune.sh ./fortune.sh +ARR=("a" "b" "c") From a7c47311e4ed0948f22ad2955d1a88700c8dcbab Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:54:33 -0600 Subject: [PATCH 302/325] 1080.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 6b273e7eb0..7dbe68a641 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1070.test.js"], + "spec": ["./test/1080.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 87005af1a162958466c65c3b8f4b25d73fd86629 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:56:17 +0000 Subject: [PATCH 303/325] Save progress: 1080.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index f7a823e5af..6afe6d5698 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -220,3 +220,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 496b8c8471..8fa51e5fe7 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -947,3 +947,4 @@ chmod +x fortune.sh ./ fortune.sh ./fortune.sh ARR=("a" "b" "c") +echo ${ARR[1]} From 01cbcdaceac053cb08b95e035eb094712e9da0ed Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:54:56 -0600 Subject: [PATCH 304/325] 1090.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 7dbe68a641..6383ba0df8 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1080.test.js"], + "spec": ["./test/1090.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From 1678551f2b675b5066b557d21cdbc7bc7ec8b876 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:58:13 +0000 Subject: [PATCH 305/325] Save progress: 1090.1 --- .freeCodeCamp/test/.cwd | 3 +++ .freeCodeCamp/test/.next_command | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 6afe6d5698..cbf80cc4e6 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -221,3 +221,6 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 8fa51e5fe7..26ac96ee83 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -948,3 +948,6 @@ chmod +x fortune.sh ./fortune.sh ARR=("a" "b" "c") echo ${ARR[1]} +echo $* +echo $@ +echo ${ARR[@]} From 73bbc854bfaf9cb2dd5b34aea243b076ba5cc9cc Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:55:36 -0600 Subject: [PATCH 306/325] 1100.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 6383ba0df8..3d61d78ed3 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1090.test.js"], + "spec": ["./test/1100.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From bee54547ae8f8b5fe0ef661cbc8aa7473036dd7b Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 10:58:53 +0000 Subject: [PATCH 307/325] Save progress: 1100.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index cbf80cc4e6..6783941211 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -224,3 +224,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 26ac96ee83..4e6c5c33db 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -951,3 +951,4 @@ echo ${ARR[1]} echo $* echo $@ echo ${ARR[@]} +declare -p ARR From 0165c8cd0125ea2bd4c81092fd026a7e922d97cd Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:57:02 -0600 Subject: [PATCH 308/325] 1110.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 3d61d78ed3..53d625b944 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1100.test.js"], + "spec": ["./test/1110.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From b474c45931ccf85cd193cfc1c0c0af31cbc8f293 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 11:00:52 +0000 Subject: [PATCH 309/325] Save progress: 1110.1 --- .freeCodeCamp/test.sh | 31 ++++--------------------------- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 3 files changed, 6 insertions(+), 27 deletions(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 38838bdf68..294af4d611 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -1,30 +1,7 @@ #!/bin/bash -# Bingo Number Generator +#Program to tell a persons fortune -echo -e "\n~~ Bingo Number Generator ~~\n" - -NUMBER=$(( RANDOM % 15+61 )) - -TEXT="The next number is, " - -if (( NUMBER <= 15 )) -then -echo $TEXT B:$NUMBER - -elif [[ $NUMBER -le 30 ]] -then - echo $TEXT I:$NUMBER - - elif (( $NUMBER < 46 )) - then - echo $TEXT N:$NUMBER - - elif [[ $NUMBER -lt 61 ]] - then - echo $TEXT G:$NUMBER - - else - echo $TEXT O:$NUMBER - -fi \ No newline at end of file +echo -e "\n~~ Fortune Teller ~~\n" + RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") +declare -p RESPONSES \ No newline at end of file diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 6783941211..8097c974b0 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -225,3 +225,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 4e6c5c33db..abde89f054 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -952,3 +952,4 @@ echo $* echo $@ echo ${ARR[@]} declare -p ARR +RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") From 7db571fe095b23066b8a9743d80877a6bbabed32 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:57:26 -0600 Subject: [PATCH 310/325] 1120.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 53d625b944..e38a55a880 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1110.test.js"], + "spec": ["./test/1120.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index b4a314fb71..d48e4da1cb 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -3,3 +3,5 @@ # Program to tell a persons fortune echo -e "\n~~ Fortune Teller ~~\n" + +RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") From b99e4776a6a2f49ae292902a964d60f940993ff7 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:57:41 -0600 Subject: [PATCH 311/325] 1130.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index e38a55a880..b891c9acd2 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1120.test.js"], + "spec": ["./test/1130.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index d48e4da1cb..587ffcd0af 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -5,3 +5,5 @@ echo -e "\n~~ Fortune Teller ~~\n" RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") + +echo ${RESPONSES[5]} From 9a1edf9b8bda8a6682b1ce363abb6171c73410ce Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 11:02:26 +0000 Subject: [PATCH 312/325] Save progress: 1130.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 8097c974b0..2b4d1225ba 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -226,3 +226,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index abde89f054..cee92ce17c 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -953,3 +953,4 @@ echo $@ echo ${ARR[@]} declare -p ARR RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") +./fortune.sh From b372d594a2966da907db5e3e346441d9e6678fa6 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:58:27 -0600 Subject: [PATCH 313/325] 1140.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index b891c9acd2..43a2073da7 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1130.test.js"], + "spec": ["./test/1140.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From adef4faa7c51442a3ec56c2382702c0e22c71ce8 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 11:14:51 +0000 Subject: [PATCH 314/325] Save progress: 1140.1 --- .freeCodeCamp/test.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 294af4d611..f096d80579 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -4,4 +4,8 @@ echo -e "\n~~ Fortune Teller ~~\n" RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") -declare -p RESPONSES \ No newline at end of file + + echo ${RESPONSES[5]} + + N=$(( RANDOM % 6)) +echo $N \ No newline at end of file From 445eaa3ae1df80cf2b62a0621c8d98c4648dcfe0 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:58:45 -0600 Subject: [PATCH 315/325] 1150.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 43a2073da7..318ed70a45 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1140.test.js"], + "spec": ["./test/1150.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index 587ffcd0af..898d1ef671 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -5,5 +5,6 @@ echo -e "\n~~ Fortune Teller ~~\n" RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") +N=$(( RANDOM % 6 )) echo ${RESPONSES[5]} From b94333c8fc61e3a6fd733645e02a4627e8c4d609 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 11:32:18 +0000 Subject: [PATCH 316/325] Save progress: 1150.1 --- .freeCodeCamp/test.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index f096d80579..18ebab9a05 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -5,7 +5,6 @@ echo -e "\n~~ Fortune Teller ~~\n" RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") - echo ${RESPONSES[5]} + echo ${RESPONSES[$N]} - N=$(( RANDOM % 6)) -echo $N \ No newline at end of file + N=$(( RANDOM %1)) \ No newline at end of file From f76669fcd3a58b34ef4714706e40a7b1160e8b49 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:00:46 -0600 Subject: [PATCH 317/325] 1160.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 318ed70a45..612062e076 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1150.test.js"], + "spec": ["./test/1160.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index 898d1ef671..2ee962b28b 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -7,4 +7,4 @@ echo -e "\n~~ Fortune Teller ~~\n" RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") N=$(( RANDOM % 6 )) -echo ${RESPONSES[5]} +echo ${RESPONSES[$N]} From 31ef88e68e417652d5b8725007d4ea7deb976e7e Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 11:32:44 +0000 Subject: [PATCH 318/325] Save progress: 1160.1 --- .freeCodeCamp/test/.cwd | 2 ++ .freeCodeCamp/test/.next_command | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 2b4d1225ba..2fde21522a 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -227,3 +227,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index cee92ce17c..fc0fa4f152 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -954,3 +954,5 @@ echo ${ARR[@]} declare -p ARR RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") ./fortune.sh +help function +help From 0c9c02877ce8d695790d7e8441bd2832d5a7069e Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:01:40 -0600 Subject: [PATCH 319/325] 1170.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 612062e076..17a397a95f 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1160.test.js"], + "spec": ["./test/1170.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From eaf82811ebe74928d5b39fcc79e528fcf22294a0 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 11:33:39 +0000 Subject: [PATCH 320/325] Save progress: 1170.1 --- .freeCodeCamp/test/.cwd | 1 + .freeCodeCamp/test/.next_command | 1 + 2 files changed, 2 insertions(+) diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 2fde21522a..4cd543017c 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -229,3 +229,4 @@ /workspace/project /workspace/project /workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index fc0fa4f152..7a89b86748 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -956,3 +956,4 @@ RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again late ./fortune.sh help function help +help function From a146f8b3e011768fd01997b8ea199f664507d440 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:02:09 -0600 Subject: [PATCH 321/325] 1180.1 --- .freeCodeCamp/.mocharc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 17a397a95f..1308bfb3e6 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1170.test.js"], + "spec": ["./test/1180.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", From d229f4325a7604e65b1cc570183d06a1b5eacdae Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:02:34 -0600 Subject: [PATCH 322/325] 1190.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index 1308bfb3e6..cf90d7a165 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1180.test.js"], + "spec": ["./test/1190.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index 2ee962b28b..c7c8a2f474 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -7,4 +7,8 @@ echo -e "\n~~ Fortune Teller ~~\n" RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") N=$(( RANDOM % 6 )) +GET_FORTUNE() { + +} + echo ${RESPONSES[$N]} From b9836850be5c6642d046d40f39aa5e84b9cdf7ec Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 9 Aug 2025 11:57:01 +0000 Subject: [PATCH 323/325] Save progress: 1190.1 --- .freeCodeCamp/test.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.freeCodeCamp/test.sh b/.freeCodeCamp/test.sh index 18ebab9a05..a3ad08ebf4 100755 --- a/.freeCodeCamp/test.sh +++ b/.freeCodeCamp/test.sh @@ -1,10 +1,16 @@ #!/bin/bash -#Program to tell a persons fortune +# Program to tell a person's fortune echo -e "\n~~ Fortune Teller ~~\n" - RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") - echo ${RESPONSES[$N]} +GET_FORTUNE() { + echo Ask a yes or no question: +} - N=$(( RANDOM %1)) \ No newline at end of file +N=$(( RANDOM % 6 )) +RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") + +echo ${RESPONSES[$N]} + +GET_FORTUNE \ No newline at end of file From 3ab34161333b13db1f770eb2c0af6debaa8ebb91 Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:03:03 -0600 Subject: [PATCH 324/325] 1200.1 --- .freeCodeCamp/.mocharc.json | 2 +- .freeCodeCamp/reset_files/fortune.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.freeCodeCamp/.mocharc.json b/.freeCodeCamp/.mocharc.json index cf90d7a165..5764765bb0 100755 --- a/.freeCodeCamp/.mocharc.json +++ b/.freeCodeCamp/.mocharc.json @@ -1,5 +1,5 @@ { - "spec": ["./test/1190.test.js"], + "spec": ["./test/1200.test.js"], "reporter": "mocha-tap-reporter", "fail-zero": false, "timeout": "5000", diff --git a/.freeCodeCamp/reset_files/fortune.sh b/.freeCodeCamp/reset_files/fortune.sh index c7c8a2f474..7f6bfb1067 100755 --- a/.freeCodeCamp/reset_files/fortune.sh +++ b/.freeCodeCamp/reset_files/fortune.sh @@ -8,7 +8,7 @@ RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again late N=$(( RANDOM % 6 )) GET_FORTUNE() { - + echo Ask a yes or no question: } echo ${RESPONSES[$N]} From e1ec3b0483ce6c6e1d4b95d6b84e9bae69d2e9ed Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 11 Aug 2025 07:44:02 +0000 Subject: [PATCH 325/325] 70 done --- .freeCodeCamp/test/.cwd | 2 + .freeCodeCamp/test/.next_command | 68 ++++++++++++++++++++++++++++++++ bingo.sh | 24 +++++++++++ fortune.sh | 14 +++++++ 4 files changed, 108 insertions(+) create mode 100755 bingo.sh create mode 100755 fortune.sh diff --git a/.freeCodeCamp/test/.cwd b/.freeCodeCamp/test/.cwd index 4cd543017c..0ec00c8e12 100755 --- a/.freeCodeCamp/test/.cwd +++ b/.freeCodeCamp/test/.cwd @@ -230,3 +230,5 @@ /workspace/project /workspace/project /workspace/project +/workspace/project +/workspace/project diff --git a/.freeCodeCamp/test/.next_command b/.freeCodeCamp/test/.next_command index 7a89b86748..983f44c2c3 100755 --- a/.freeCodeCamp/test/.next_command +++ b/.freeCodeCamp/test/.next_command @@ -957,3 +957,71 @@ RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again late help function help help function +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} +builtin unset VSCODE_INJECTION +[ -z "$VSCODE_SHELL_INTEGRATION" ] +[ -n "${VSCODE_ENV_REPLACE:-}" ] +[ -n "${VSCODE_ENV_PREPEND:-}" ] +[ -n "${VSCODE_ENV_APPEND:-}" ] +__vsc_regex_environment="^CYGWIN*|MINGW*|MSYS*" +[[ "$(uname -s)" =~ $__vsc_regex_environment ]] +__vsc_is_windows=0 +__vsc_regex_histcontrol=".*(erasedups|ignoreboth|ignoredups).*" +[[ "$HISTCONTROL" =~ $__vsc_regex_histcontrol ]] +__vsc_history_verify=1 +builtin unset __vsc_regex_environment +builtin unset __vsc_regex_histcontrol +__vsc_initialized=0 +__vsc_original_PS1="$PS1" +__vsc_original_PS2="$PS2" +__vsc_custom_PS1="" +__vsc_custom_PS2="" +__vsc_in_command_execution="1" +__vsc_current_command="" +__vsc_nonce="$VSCODE_NONCE" +unset VSCODE_NONCE +__vsc_stable="$VSCODE_STABLE" +unset VSCODE_STABLE +[ "$__vsc_stable" = "0" ] +[ -n "$STARSHIP_SESSION_KEY" ] +[ -n "$POSH_SESSION_ID" ] +builtin printf '\e]633;P;HasRichCommandDetection=True\a' +[[ -n "${bash_preexec_imported:-}" ]] +__vsc_dbg_trap="$(__vsc_get_trap DEBUG)" +[[ -z "$__vsc_dbg_trap" ]] +[[ "$__vsc_dbg_trap" != '__vsc_preexec "$_"' && "$__vsc_dbg_trap" != '__vsc_preexec_all "$_"' ]] +trap '__vsc_preexec_all "$_"' DEBUG +__vsc_original_prompt_command=${PROMPT_COMMAND:-} diff --git a/bingo.sh b/bingo.sh new file mode 100755 index 0000000000..b70885aca1 --- /dev/null +++ b/bingo.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Bingo Number Generator + +echo -e "\n~~ Bingo Number Generator ~~\n" + +NUMBER=$(( RANDOM % 75 + 1 )) +TEXT="The next number is, " + +if (( NUMBER <= 15 )) +then + echo $TEXT B:$NUMBER +elif [[ $NUMBER -le 30 ]] +then + echo $TEXT I:$NUMBER +elif (( NUMBER < 46 )) +then + echo $TEXT N:$NUMBER +elif [[ $NUMBER -lt 61 ]] +then + echo $TEXT G:$NUMBER +else + echo $TEXT O:$NUMBER +fi diff --git a/fortune.sh b/fortune.sh new file mode 100755 index 0000000000..7f6bfb1067 --- /dev/null +++ b/fortune.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Program to tell a persons fortune + +echo -e "\n~~ Fortune Teller ~~\n" + +RESPONSES=("Yes" "No" "Maybe" "Outlook good" "Don't count on it" "Ask again later") +N=$(( RANDOM % 6 )) + +GET_FORTUNE() { + echo Ask a yes or no question: +} + +echo ${RESPONSES[$N]}