diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa46dca0c..c723f0614 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@v4 - uses: denoland/setup-deno@v1 # using ourself to install deno could compromise the tests with: - deno-version: 1.39 + deno-version: 1.40 - run: deno cache **/*.test.ts - run: deno task test --coverage=cov_profile --no-check - run: deno coverage cov_profile --lcov --exclude=tests/ --output=cov_profile.lcov @@ -59,7 +59,7 @@ jobs: - uses: actions/checkout@v4 - uses: denoland/setup-deno@v1 # using ourself to install deno could compromise the tests with: - deno-version: 1.39 + deno-version: 1.40 - run: deno lint typecheck: @@ -68,5 +68,5 @@ jobs: - uses: actions/checkout@v4 - uses: denoland/setup-deno@v1 with: - deno-version: 1.39 + deno-version: 1.40 - run: deno task typecheck diff --git a/deno.jsonc b/deno.jsonc index e46f9a704..73d4bb017 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -5,12 +5,12 @@ }, "tasks": { // runs this source checkout, args will be passed - "run": "deno run --unstable -A ./entrypoint.ts", + "run": "deno run --unstable-fs --unstable-ffi -A ./entrypoint.ts", // you can specify paths to specific tests if you need // follows is the ideal permissions lines, unfortunately deno considers making symlinks to require full read/write permissions for fuck knows why reasons //"test": "deno test --allow-read=$PWD,$TMPDIR,$HOME,/ --allow-env --allow-write=$TMPDIR --allow-ffi --unstable", - "test": "deno test --allow-read --allow-env --allow-write --allow-ffi --unstable", + "test": "deno test --unstable-ffi --allow-ffi --allow-read --allow-env --allow-write", // ^^ ffi & unstable needed for execve.ts // installs to /usr/local/bin/pkgx @@ -18,10 +18,10 @@ //--------------------------------------- ci/cd/admin "coverage" : "scripts/run-coverage.sh", - "typecheck": "deno check --unstable ./entrypoint.ts", - "compile": "deno compile --lock=deno.lock --allow-read --allow-write --allow-net --allow-run --allow-env --allow-ffi --unstable --output $INIT_CWD/pkgx ./entrypoint.ts" + "typecheck": "deno check ./entrypoint.ts", + "compile": "deno compile --lock=deno.lock --allow-read --allow-write --allow-net --allow-run --allow-env --allow-ffi --unstable-ffi --unstable-fs --output $INIT_CWD/pkgx ./entrypoint.ts" }, - "pkgx": "deno~1.39", + "pkgx": "deno~1.40.2", "lint": { "exclude": ["src/**/*.test.ts"] }, diff --git a/deno.lock b/deno.lock index 7b359645f..9ce7d76ee 100644 --- a/deno.lock +++ b/deno.lock @@ -20,9 +20,34 @@ "https://deno.land/x/semver/mod.ts": "https://deno.land/x/semver@v1.4.1/mod.ts" }, "remote": { + "https://deno.land/std@0.196.0/_util/diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", "https://deno.land/std@0.196.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.196.0/assert/_constants.ts": "8a9da298c26750b28b326b297316cdde860bc237533b07e1337c021379e6b2a9", + "https://deno.land/std@0.196.0/assert/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", "https://deno.land/std@0.196.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", + "https://deno.land/std@0.196.0/assert/assert_almost_equals.ts": "e15ca1f34d0d5e0afae63b3f5d975cbd18335a132e42b0c747d282f62ad2cd6c", + "https://deno.land/std@0.196.0/assert/assert_array_includes.ts": "6856d7f2c3544bc6e62fb4646dfefa3d1df5ff14744d1bca19f0cbaf3b0d66c9", + "https://deno.land/std@0.196.0/assert/assert_equals.ts": "a0ee60574e437bcab2dcb79af9d48dc88845f8fd559468d9c21b15fd638ef943", + "https://deno.land/std@0.196.0/assert/assert_exists.ts": "407cb6b9fb23a835cd8d5ad804e2e2edbbbf3870e322d53f79e1c7a512e2efd7", + "https://deno.land/std@0.196.0/assert/assert_false.ts": "a9962749f4bf5844e3fa494257f1de73d69e4fe0e82c34d0099287552163a2dc", + "https://deno.land/std@0.196.0/assert/assert_instance_of.ts": "09fd297352a5b5bbb16da2b5e1a0d8c6c44da5447772648622dcc7df7af1ddb8", + "https://deno.land/std@0.196.0/assert/assert_is_error.ts": "b4eae4e5d182272efc172bf28e2e30b86bb1650cd88aea059e5d2586d4160fb9", + "https://deno.land/std@0.196.0/assert/assert_match.ts": "c4083f80600bc190309903c95e397a7c9257ff8b5ae5c7ef91e834704e672e9b", + "https://deno.land/std@0.196.0/assert/assert_not_equals.ts": "9f1acab95bd1f5fc9a1b17b8027d894509a745d91bac1718fdab51dc76831754", + "https://deno.land/std@0.196.0/assert/assert_not_instance_of.ts": "0c14d3dfd9ab7a5276ed8ed0b18c703d79a3d106102077ec437bfe7ed912bd22", + "https://deno.land/std@0.196.0/assert/assert_not_match.ts": "3796a5b0c57a1ce6c1c57883dd4286be13a26f715ea662318ab43a8491a13ab0", + "https://deno.land/std@0.196.0/assert/assert_not_strict_equals.ts": "ca6c6d645e95fbc873d25320efeb8c4c6089a9a5e09f92d7c1c4b6e935c2a6ad", + "https://deno.land/std@0.196.0/assert/assert_object_match.ts": "27439c4f41dce099317566144299468ca822f556f1cc697f4dc8ed61fe9fee4c", + "https://deno.land/std@0.196.0/assert/assert_rejects.ts": "45c59724de2701e3b1f67c391d6c71c392363635aad3f68a1b3408f9efca0057", + "https://deno.land/std@0.196.0/assert/assert_strict_equals.ts": "5cf29b38b3f8dece95287325723272aa04e04dbf158d886d662fa594fddc9ed3", + "https://deno.land/std@0.196.0/assert/assert_string_includes.ts": "b821d39ebf5cb0200a348863c86d8c4c4b398e02012ce74ad15666fc4b631b0c", + "https://deno.land/std@0.196.0/assert/assert_throws.ts": "63784e951475cb7bdfd59878cd25a0931e18f6dc32a6077c454b2cd94f4f4bcd", "https://deno.land/std@0.196.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", + "https://deno.land/std@0.196.0/assert/equal.ts": "9f1a46d5993966d2596c44e5858eec821859b45f783a5ee2f7a695dfc12d8ece", + "https://deno.land/std@0.196.0/assert/fail.ts": "c36353d7ae6e1f7933d45f8ea51e358c8c4b67d7e7502028598fe1fea062e278", + "https://deno.land/std@0.196.0/assert/mod.ts": "08d55a652c22c5da0215054b21085cec25a5da47ce4a6f9de7d9ad36df35bdee", + "https://deno.land/std@0.196.0/assert/unimplemented.ts": "d56fbeecb1f108331a380f72e3e010a1f161baa6956fd0f7cf3e095ae1a4c75a", + "https://deno.land/std@0.196.0/assert/unreachable.ts": "4600dc0baf7d9c15a7f7d234f00c23bca8f3eba8b140286aaca7aa998cf9a536", "https://deno.land/std@0.196.0/bytes/concat.ts": "d26d6f3d7922e6d663dacfcd357563b7bf4a380ce5b9c2bbe0c8586662f25ce2", "https://deno.land/std@0.196.0/bytes/copy.ts": "939d89e302a9761dcf1d9c937c7711174ed74c59eef40a1e4569a05c9de88219", "https://deno.land/std@0.196.0/crypto/_fnv/fnv32.ts": "e4649dfdefc5c987ed53c3c25db62db771a06d9d1b9c36d2b5cf0853b8e82153", @@ -39,11 +64,15 @@ "https://deno.land/std@0.196.0/encoding/base64.ts": "144ae6234c1fbe5b68666c711dc15b1e9ee2aef6d42b3b4345bf9a6c91d70d0d", "https://deno.land/std@0.196.0/encoding/base64url.ts": "2ed4ba122b20fedf226c5d337cf22ee2024fa73a8f85d915d442af7e9ce1fae1", "https://deno.land/std@0.196.0/encoding/hex.ts": "b4b1a7cb678745b0bf181ed8cf2498c7be00d121a7de244b752fbf9c7d9c48cd", + "https://deno.land/std@0.196.0/fmt/colors.ts": "a7eecffdf3d1d54db890723b303847b6e0a1ab4b528ba6958b8f2e754cf1b3bc", "https://deno.land/std@0.196.0/fs/_util.ts": "fbf57dcdc9f7bc8128d60301eece608246971a7836a3bb1e78da75314f08b978", "https://deno.land/std@0.196.0/fs/move.ts": "b4f8f46730b40c32ea3c0bc8eb0fd0e8139249a698883c7b3756424cf19785c9", "https://deno.land/std@0.196.0/io/buf_reader.ts": "2bccff0878537ef201c5051fc0db0ce8196388c5ea69d2be6be1900fe48c5f4b", "https://deno.land/std@0.196.0/io/buffer.ts": "4d6883daeb2e698579c4064170515683d69f40f3de019bfe46c5cf31e74ae793", "https://deno.land/std@0.196.0/io/read_lines.ts": "c526c12a20a9386dc910d500f9cdea43cba974e853397790bd146817a7eef8cc", + "https://deno.land/std@0.196.0/json/common.ts": "ecd5e87d45b5f0df33238ed8b1746e1444da7f5c86ae53d0f0b04280f41a25bb", + "https://deno.land/std@0.196.0/jsonc/mod.ts": "b88dce28eb3645667caa856538ae2fe87af51410822544a0b45a4177ef3bd7dd", + "https://deno.land/std@0.196.0/jsonc/parse.ts": "c1096e2b7ffb4996d7ed841dfdb29a4fccc78edcc55299beaa20d6fe5facf7b6", "https://deno.land/std@0.196.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", "https://deno.land/std@0.196.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", "https://deno.land/std@0.196.0/path/_util.ts": "d7abb1e0dea065f427b89156e28cdeb32b045870acdf865833ba808a73b576d0", @@ -53,7 +82,12 @@ "https://deno.land/std@0.196.0/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", "https://deno.land/std@0.196.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", "https://deno.land/std@0.196.0/path/win32.ts": "4fca292f8d116fd6d62f243b8a61bd3d6835a9f0ede762ba5c01afe7c3c0aa12", + "https://deno.land/std@0.196.0/streams/read_all.ts": "ee319772fb0fd28302f97343cc48dfcf948f154fd0d755d8efe65814b70533be", "https://deno.land/std@0.196.0/streams/write_all.ts": "aec90152978581ea62d56bb53a5cbf487e6a89c902f87c5969681ffbdf32b998", + "https://deno.land/std@0.196.0/testing/_test_suite.ts": "30f018feeb3835f12ab198d8a518f9089b1bcb2e8c838a8b615ab10d5005465c", + "https://deno.land/std@0.196.0/testing/asserts.ts": "b4e4b1359393aeff09e853e27901a982c685cb630df30426ed75496961931946", + "https://deno.land/std@0.196.0/testing/bdd.ts": "3f446df5ef8e856a869e8eec54c8482590415741ff0b6358a00c43486cc15769", + "https://deno.land/std@0.196.0/testing/mock.ts": "4c52b8312d159179fdd9d9a1b35e342ee4e1a1248f29e5c7f57fb4011c3f55ed", "https://deno.land/std@0.196.0/yaml/_error.ts": "b59e2c76ce5a47b1b9fa0ff9f96c1dd92ea1e1b17ce4347ece5944a95c3c1a84", "https://deno.land/std@0.196.0/yaml/_loader/loader.ts": "47b9592efcb390b58b1903cc471bfdf1fc71a0d2d2b31e37b5cae7d8804c7aed", "https://deno.land/std@0.196.0/yaml/_loader/loader_state.ts": "0841870b467169269d7c2dfa75cd288c319bc06f65edd9e42c29e5fced91c7a4", @@ -363,6 +397,7 @@ "https://deno.land/std@0.204.0/yaml/schema/json.ts": "5f41dd7c2f1ad545ef6238633ce9ee3d444dfc5a18101e1768bd5504bf90e5e5", "https://deno.land/std@0.204.0/yaml/schema/mod.ts": "4472e827bab5025e92bc2eb2eeefa70ecbefc64b2799b765c69af84822efef32", "https://deno.land/std@0.204.0/yaml/type.ts": "65553da3da3c029b6589c6e4903f0afbea6768be8fca61580711457151f2b30f", + "https://deno.land/std@0.213.0/fmt/colors.ts": "aeaee795471b56fc62a3cb2e174ed33e91551b535f44677f6320336aabb54fbb", "https://deno.land/x/cliffy@v1.0.0-rc.3/ansi/ansi.ts": "481e382126922ff686dd664f4bae6bc44df44bc5ed883c0f5f8a8b3776e5a983", "https://deno.land/x/cliffy@v1.0.0-rc.3/ansi/ansi_escapes.ts": "193b3c3a4e520274bd8322ca4cab1c3ce38070bed1898cb2ade12a585dddd7c9", "https://deno.land/x/cliffy@v1.0.0-rc.3/ansi/chain.ts": "eca61b1b64cad7b9799490c12c7aa5538d0f63ac65a73ddb6acac8b35f0a5323", @@ -452,6 +487,34 @@ "https://deno.land/x/libpkgx@v0.16.0/src/utils/misc.ts": "a4d7944da07066e5dd2ef289af436dc7f1032aed4272811e9b19ceeed60b8491", "https://deno.land/x/libpkgx@v0.16.0/src/utils/pkg.ts": "5ef9cc1955a5067489ac4d2af8615652505cb17a48745e811cb786ab89377547", "https://deno.land/x/libpkgx@v0.16.0/src/utils/semver.ts": "eec31f4345ea483eac7e0fbfdcc0061499077df03c4b6ec7666cd0d29c6cab98", + "https://deno.land/x/libpkgx@v0.17.0/mod.ts": "14a69905ffad8064444c02d146008efeb6a0ddf0fe543483839af18e01684f5a", + "https://deno.land/x/libpkgx@v0.17.0/src/deps.ts": "4315cdd8b0c9eef84e30f73080b8838fb5fcece1ef28f0cc3ae2b6d7ad21eb43", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useCache.ts": "9f3cc576fabae2caa6aedbf00ab12a59c732be1315471e5a475fef496c1e35ae", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useCellar.ts": "c1e264fcb732423734f8c113fc7cb80c97befe8f13ed9d24906328bc5526c72d", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useConfig.ts": "c29d8f9c6dc7b5289c485b3ff37a6e0f04d9a51031813e892015e69afc512a64", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useDownload.ts": "62b2043fcbc06a0925eb06fc5ed5f2f2ef3779e8ce10bc44b0163e9bd9b8cbc0", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useFetch.ts": "ecf29342210b8eceed216e3bb73fcc7ea5b3ea5059686cf344ed190ca42ff682", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useInventory.ts": "0f47a71f51f752e53e2e32786e68375a314f6fc6bb225cd626a412a83086ebbd", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useMoustaches.ts": "e9166ddace759315782be0f570a4cd63c78e3b85592d59b75ddd33a0e401aa6b", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useOffLicense.ts": "9a7a35bd83a8dbb5a25d532e2ab885b5fb77101cc38fad10c5f3ea6a49a24e02", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/usePantry.ts": "cdbc3bd1abf41eb2d7369fdc6adf1fe9baca0fc8f3df5aac23fa64730972d821", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useShellEnv.ts": "14d29f23b8e256590318cfd5fb840955038429c4cac8f71dfbf8deb46b7d88ec", + "https://deno.land/x/libpkgx@v0.17.0/src/hooks/useSync.ts": "c098321da6c59126a3b8150bcea5e6fc43348c00810ba6db88ce4f5de0fdb556", + "https://deno.land/x/libpkgx@v0.17.0/src/plumbing/hydrate.ts": "c75f151ed307532ce9c2bf62c61e6478bb1132f95a11b848e02ea2dec08c2ff3", + "https://deno.land/x/libpkgx@v0.17.0/src/plumbing/install.ts": "19244fb150e80a0bbbed90e4a3f47e2c5aa3e0919ff060cec1db0b789730b560", + "https://deno.land/x/libpkgx@v0.17.0/src/plumbing/link.ts": "acb98bf014414208f14c5f57fa36e2aa66ae9bee69d763120c3ddb656e244063", + "https://deno.land/x/libpkgx@v0.17.0/src/plumbing/resolve.ts": "9425e0d201ee440a8dc011940046f0bb6d94aa29cd738e1a8c39ca86e55aad41", + "https://deno.land/x/libpkgx@v0.17.0/src/plumbing/which.ts": "24778f645c9aaea67df51b671474fffe01c1d3b188552943e24d61d51fa6b80d", + "https://deno.land/x/libpkgx@v0.17.0/src/porcelain/install.ts": "6e41d94226b8eb33a9fbb591e5ddd95e2c5e0c2449cc617ac5f365746d1e4592", + "https://deno.land/x/libpkgx@v0.17.0/src/porcelain/run.ts": "20c60bebeca51daf12d9e5baefe8670844162308734f8a189a1f484c4155d671", + "https://deno.land/x/libpkgx@v0.17.0/src/types.ts": "dc1a4e6458d11454282f832909838c56f786a26eed54fb8ab5675d6691ebf534", + "https://deno.land/x/libpkgx@v0.17.0/src/utils/Path.ts": "72bbb8afa6a40e3cfbf01d4d9069e0818e7abaf0021703a20b0677f06c01e883", + "https://deno.land/x/libpkgx@v0.17.0/src/utils/error.ts": "b0d3130f5cdfc0cc8ea10f93fea0e7e97d4473ddc9bc527156b0fcf24c7b939c", + "https://deno.land/x/libpkgx@v0.17.0/src/utils/flock.deno.ts": "c57b32f656d06140e58886973beec20661f1d0809bf652376acc64969b85942a", + "https://deno.land/x/libpkgx@v0.17.0/src/utils/host.ts": "3b9e0d4cb05f9bde0ee8bcb0f8557b0a339f6ef56dfb1f08b2cfa63b44db91ee", + "https://deno.land/x/libpkgx@v0.17.0/src/utils/misc.ts": "a4d7944da07066e5dd2ef289af436dc7f1032aed4272811e9b19ceeed60b8491", + "https://deno.land/x/libpkgx@v0.17.0/src/utils/pkg.ts": "e737cc9a98cd6a2797668c6ef856128692290256a521cc3906bd538410925451", + "https://deno.land/x/libpkgx@v0.17.0/src/utils/semver.ts": "eec31f4345ea483eac7e0fbfdcc0061499077df03c4b6ec7666cd0d29c6cab98", "https://deno.land/x/outdent@v0.8.0/mod.ts": "72630e680dcc36d5ae556fbff6900b12706c81a6fd592345fc98bcc0878fb3ca", "https://deno.land/x/outdent@v0.8.0/src/index.ts": "6dc3df4108d5d6fedcdb974844d321037ca81eaaa16be6073235ff3268841a22", "https://deno.land/x/semver@v1.4.1/mod.ts": "0b79c87562eb8a1f008ab0d98f8bb60076dd65bc06f1f8fdfac2d2dab162c27b", diff --git a/entrypoint.ts b/entrypoint.ts index c9471fc49..b434849b5 100644 --- a/entrypoint.ts +++ b/entrypoint.ts @@ -7,7 +7,7 @@ import { render as perror } from "./src/err-handler.ts" import { setColorEnabled } from "deno/fmt/colors.ts" import clicolor from "./src/utils/clicolor.ts" -setColorEnabled(clicolor(Deno.stderr.rid)) +setColorEnabled(clicolor(Deno.stderr)) ///////////////////////////////////////////////////////// backwards compatability const argstr = Deno.args.join(' ') @@ -71,7 +71,7 @@ try { /////////////////////////////////////////////////////////////////////////// utils function logger_prefix() { - if (Deno.env.get("CI") || !Deno.isatty(Deno.stdin.rid)) { + if (Deno.env.get("CI") || !Deno.stdin.isTerminal()) { return 'pkgx' } } diff --git a/src/app.ts b/src/app.ts index 1a6d44dbd..20d1f323c 100644 --- a/src/app.ts +++ b/src/app.ts @@ -92,7 +92,7 @@ export default async function({ flags, ...opts }: Args, logger_prefix?: string) console.log(shellcode()) break case 'help': - setColorEnabled(clicolor(Deno.stdout.rid)) + setColorEnabled(clicolor(Deno.stdout)) console.log(help(flags.verbosity)) break case 'env': { @@ -122,7 +122,7 @@ async function ensure_pantry() { function make_logger(verbosity: number, logger_prefix?: string): IInstallLogger { const logger = new Logger(logger_prefix) - if (verbosity <= -2 || !Deno.isatty(Deno.stderr.rid)) { + if (verbosity <= -2 || !Deno.stderr.isTerminal()) { return { replace: () => {}, clear: () => {}, diff --git a/src/modes/integrate.ts b/src/modes/integrate.ts index 7cc6d2050..b09c10ca9 100644 --- a/src/modes/integrate.ts +++ b/src/modes/integrate.ts @@ -80,7 +80,7 @@ export default async function(op: 'install' | 'uninstall', { dryrun }: { dryrun: } break case 'install': - if (!_internals.isatty(Deno.stdout.rid)) { + if (!_internals.isatty(Deno.stdout)) { // we're being sourced, output the hook _internals.stdout(shellcode()) } else if (opd_at_least_once) { @@ -125,7 +125,7 @@ function shells(): [Path, string][] { export const _internals = { home: Path.home, host, - isatty: Deno.isatty, + isatty: (x: {isTerminal: () => boolean}) => x.isTerminal(), stdout: console.log, stderr: console.error } diff --git a/src/utils/clicolor.ts b/src/utils/clicolor.ts index 6d0213f89..5de986e0d 100644 --- a/src/utils/clicolor.ts +++ b/src/utils/clicolor.ts @@ -1,5 +1,5 @@ -export default function(dst = Deno.stdout.rid, env = Deno.env.toObject()) { +export default function(dst = Deno.stdout, env = Deno.env.toObject()) { // interprets https://no-color.org // see: https://deno.land/api@v1.37.1?s=Deno.noColor if (Deno.noColor) { @@ -8,9 +8,9 @@ export default function(dst = Deno.stdout.rid, env = Deno.env.toObject()) { //https://bixense.com/clicolors/ - //NOTE we (mostly) only output colors to stderr hence the isatty check for that + //NOTE we (mostly) only output colors to stderr hence the isTerminal() check for that //FIXME not true for --help tho - if (env.CLICOLOR !== '0' && Deno.isatty(dst)) { + if (env.CLICOLOR !== '0' && dst.isTerminal()) { return true } if ((env.CLICOLOR_FORCE ?? '0') != '0') { diff --git a/src/utils/exeve.test.ts b/src/utils/execve.test.ts similarity index 100% rename from src/utils/exeve.test.ts rename to src/utils/execve.test.ts