Skip to content

Commit c17b51d

Browse files
committed
fix: check bash to be installed
closes #35
1 parent c77653e commit c17b51d

File tree

5 files changed

+75
-76
lines changed

5 files changed

+75
-76
lines changed

lib/getWorkspacesYarn.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
const glob = require("bash-glob");
21
const getManifest = require("./getManifest");
2+
const glob = require("./glob");
33
const { checker } = require("./blork");
44

55
/**
@@ -23,7 +23,7 @@ function getWorkspacesYarn(cwd) {
2323
}
2424

2525
// Turn workspaces into list of package.json files.
26-
const workspaces = glob.sync(
26+
const workspaces = glob(
2727
packages.map((p) => p.replace(/\/?$/, "/package.json")),
2828
{
2929
cwd: cwd,

lib/glob.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const bashGlob = require("bash-glob");
2+
const bashPath = require("bash-path");
3+
4+
module.exports = (...args) => {
5+
if (!bashPath) {
6+
throw new TypeError("`bash` must be installed"); // TODO move this check to bash-glob
7+
}
8+
9+
return bashGlob.sync(...args);
10+
};

package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@
6161
"semver": "^7.3.2",
6262
"signale": "^1.4.0",
6363
"stream-buffers": "^3.0.2",
64-
"tempy": "^0.7.0"
64+
"tempy": "^0.7.1"
6565
},
6666
"devDependencies": {
6767
"@commitlint/config-conventional": "^11.0.0",
6868
"commitlint": "^11.0.0",
6969
"coveralls": "^3.1.0",
70-
"eslint": "^7.9.0",
71-
"eslint-config-prettier": "^6.11.0",
70+
"eslint": "^7.10.0",
71+
"eslint-config-prettier": "^6.12.0",
7272
"eslint-plugin-prettier": "^3.1.4",
7373
"file-url": "^3.0.0",
7474
"husky": "^4.3.0",

test/lib/getWorkspacesYarn.test.js

+11
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,15 @@ describe("getWorkspacesYarn()", () => {
3636
`${resolved}/packages/d/package.json`,
3737
]);
3838
});
39+
test("Checks `bash` to be installed", () => {
40+
jest.isolateModules(() => {
41+
jest.resetModules();
42+
jest.mock("bash-path", () => undefined);
43+
44+
const resolved = resolve(`${__dirname}/../fixtures/yarnWorkspaces`);
45+
const getWorkspaces = require("../../lib/getWorkspacesYarn");
46+
47+
expect(() => getWorkspaces(resolved)).toThrowError("`bash` must be installed");
48+
});
49+
});
3950
});

yarn.lock

+49-71
Original file line numberDiff line numberDiff line change
@@ -883,14 +883,6 @@
883883
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
884884
integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
885885

886-
"@types/glob@^7.1.1":
887-
version "7.1.3"
888-
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
889-
integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
890-
dependencies:
891-
"@types/minimatch" "*"
892-
"@types/node" "*"
893-
894886
"@types/graceful-fs@^4.1.2":
895887
version "4.1.3"
896888
resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f"
@@ -917,11 +909,6 @@
917909
dependencies:
918910
"@types/istanbul-lib-report" "*"
919911

920-
"@types/minimatch@*":
921-
version "3.0.3"
922-
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
923-
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
924-
925912
"@types/minimist@^1.2.0":
926913
version "1.2.0"
927914
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6"
@@ -2183,18 +2170,18 @@ define-property@^2.0.2:
21832170
is-descriptor "^1.0.2"
21842171
isobject "^3.0.1"
21852172

2186-
del@^5.1.0:
2187-
version "5.1.0"
2188-
resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7"
2189-
integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==
2173+
del@^6.0.0:
2174+
version "6.0.0"
2175+
resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952"
2176+
integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==
21902177
dependencies:
2191-
globby "^10.0.1"
2192-
graceful-fs "^4.2.2"
2178+
globby "^11.0.1"
2179+
graceful-fs "^4.2.4"
21932180
is-glob "^4.0.1"
21942181
is-path-cwd "^2.2.0"
2195-
is-path-inside "^3.0.1"
2196-
p-map "^3.0.0"
2197-
rimraf "^3.0.0"
2182+
is-path-inside "^3.0.2"
2183+
p-map "^4.0.0"
2184+
rimraf "^3.0.2"
21982185
slash "^3.0.0"
21992186

22002187
delayed-stream@~1.0.0:
@@ -2460,10 +2447,10 @@ escodegen@^1.14.1:
24602447
optionalDependencies:
24612448
source-map "~0.6.1"
24622449

2463-
eslint-config-prettier@^6.11.0:
2464-
version "6.11.0"
2465-
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1"
2466-
integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==
2450+
eslint-config-prettier@^6.12.0:
2451+
version "6.12.0"
2452+
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.12.0.tgz#9eb2bccff727db1c52104f0b49e87ea46605a0d2"
2453+
integrity sha512-9jWPlFlgNwRUYVoujvWTQ1aMO8o6648r+K7qU7K5Jmkbyqav1fuEZC0COYpGBxyiAJb65Ra9hrmFx19xRGwXWw==
24672454
dependencies:
24682455
get-stdin "^6.0.0"
24692456

@@ -2474,12 +2461,12 @@ eslint-plugin-prettier@^3.1.4:
24742461
dependencies:
24752462
prettier-linter-helpers "^1.0.0"
24762463

2477-
eslint-scope@^5.1.0:
2478-
version "5.1.0"
2479-
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5"
2480-
integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==
2464+
eslint-scope@^5.1.1:
2465+
version "5.1.1"
2466+
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
2467+
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
24812468
dependencies:
2482-
esrecurse "^4.1.0"
2469+
esrecurse "^4.3.0"
24832470
estraverse "^4.1.1"
24842471

24852472
eslint-utils@^2.1.0:
@@ -2494,10 +2481,10 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
24942481
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
24952482
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
24962483

2497-
eslint@^7.9.0:
2498-
version "7.9.0"
2499-
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.9.0.tgz#522aeccc5c3a19017cf0cb46ebfd660a79acf337"
2500-
integrity sha512-V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA==
2484+
eslint@^7.10.0:
2485+
version "7.10.0"
2486+
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.10.0.tgz#494edb3e4750fb791133ca379e786a8f648c72b9"
2487+
integrity sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA==
25012488
dependencies:
25022489
"@babel/code-frame" "^7.0.0"
25032490
"@eslint/eslintrc" "^0.1.3"
@@ -2507,7 +2494,7 @@ eslint@^7.9.0:
25072494
debug "^4.0.1"
25082495
doctrine "^3.0.0"
25092496
enquirer "^2.3.5"
2510-
eslint-scope "^5.1.0"
2497+
eslint-scope "^5.1.1"
25112498
eslint-utils "^2.1.0"
25122499
eslint-visitor-keys "^1.3.0"
25132500
espree "^7.3.0"
@@ -2558,14 +2545,14 @@ esquery@^1.2.0:
25582545
dependencies:
25592546
estraverse "^5.1.0"
25602547

2561-
esrecurse@^4.1.0:
2562-
version "4.2.1"
2563-
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
2564-
integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
2548+
esrecurse@^4.3.0:
2549+
version "4.3.0"
2550+
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
2551+
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
25652552
dependencies:
2566-
estraverse "^4.1.0"
2553+
estraverse "^5.2.0"
25672554

2568-
estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
2555+
estraverse@^4.1.1, estraverse@^4.2.0:
25692556
version "4.3.0"
25702557
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
25712558
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
@@ -2575,6 +2562,11 @@ estraverse@^5.1.0:
25752562
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
25762563
integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
25772564

2565+
estraverse@^5.2.0:
2566+
version "5.2.0"
2567+
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
2568+
integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
2569+
25782570
esutils@^2.0.2:
25792571
version "2.0.3"
25802572
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -2710,7 +2702,7 @@ fast-diff@^1.1.2:
27102702
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
27112703
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
27122704

2713-
fast-glob@^3.0.3, fast-glob@^3.1.1:
2705+
fast-glob@^3.1.1:
27142706
version "3.2.4"
27152707
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3"
27162708
integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==
@@ -3119,21 +3111,7 @@ globals@^12.1.0:
31193111
dependencies:
31203112
type-fest "^0.8.1"
31213113

3122-
globby@^10.0.1:
3123-
version "10.0.2"
3124-
resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543"
3125-
integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==
3126-
dependencies:
3127-
"@types/glob" "^7.1.1"
3128-
array-union "^2.1.0"
3129-
dir-glob "^3.0.1"
3130-
fast-glob "^3.0.3"
3131-
glob "^7.1.3"
3132-
ignore "^5.1.1"
3133-
merge2 "^1.2.3"
3134-
slash "^3.0.0"
3135-
3136-
globby@^11.0.0:
3114+
globby@^11.0.0, globby@^11.0.1:
31373115
version "11.0.1"
31383116
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
31393117
integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
@@ -3400,7 +3378,7 @@ ignore@^4.0.6:
34003378
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
34013379
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
34023380

3403-
ignore@^5.1.1, ignore@^5.1.4:
3381+
ignore@^5.1.4:
34043382
version "5.1.8"
34053383
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
34063384
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
@@ -3688,7 +3666,7 @@ is-path-inside@^1.0.0:
36883666
dependencies:
36893667
path-is-inside "^1.0.1"
36903668

3691-
is-path-inside@^3.0.1:
3669+
is-path-inside@^3.0.2:
36923670
version "3.0.2"
36933671
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
36943672
integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
@@ -4897,7 +4875,7 @@ merge-stream@^2.0.0:
48974875
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
48984876
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
48994877

4900-
merge2@^1.2.3, merge2@^1.3.0:
4878+
merge2@^1.3.0:
49014879
version "1.4.1"
49024880
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
49034881
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
@@ -5673,10 +5651,10 @@ p-map@^2.0.0:
56735651
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
56745652
integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
56755653

5676-
p-map@^3.0.0:
5677-
version "3.0.0"
5678-
resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d"
5679-
integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==
5654+
p-map@^4.0.0:
5655+
version "4.0.0"
5656+
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
5657+
integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
56805658
dependencies:
56815659
aggregate-error "^3.0.0"
56825660

@@ -6411,7 +6389,7 @@ rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1:
64116389
dependencies:
64126390
glob "^7.1.3"
64136391

6414-
rimraf@^3.0.0:
6392+
rimraf@^3.0.0, rimraf@^3.0.2:
64156393
version "3.0.2"
64166394
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
64176395
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -7107,12 +7085,12 @@ tempy@^0.5.0:
71077085
type-fest "^0.12.0"
71087086
unique-string "^2.0.0"
71097087

7110-
tempy@^0.7.0:
7111-
version "0.7.0"
7112-
resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.7.0.tgz#8249c76a38bd104733a5491410aa84b508e8b503"
7113-
integrity sha512-YcFJbGum4B10jqKroKsci0kE5eEzRCMCTCa0ATtRC6zApBboaOnug1igqAbRC9SCvyqTRI9Xt8NYVggQr4k9hw==
7088+
tempy@^0.7.1:
7089+
version "0.7.1"
7090+
resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.7.1.tgz#5a654e6dbd1747cdd561efb112350b55cd9c1d46"
7091+
integrity sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==
71147092
dependencies:
7115-
del "^5.1.0"
7093+
del "^6.0.0"
71167094
is-stream "^2.0.0"
71177095
temp-dir "^2.0.0"
71187096
type-fest "^0.16.0"

0 commit comments

Comments
 (0)