diff --git a/ci/build/build-packages.sh b/ci/build/build-packages.sh index b83ed286f90d57ce83d1bf03d5eaa9d5ea916c7e..8dc33703af5e709eecefe278b40cd1fe19f988cc 100755 --- a/ci/build/build-packages.sh +++ b/ci/build/build-packages.sh @@ -46,7 +46,7 @@ release_gcp() { # Generates deb and rpm packages. release_nfpm() { local nfpm_config - nfpm_config="$(envsubst <./ci/build/nfpm.yaml)" + nfpm_config="$(envsubst < ./ci/build/nfpm.yaml)" # The underscores are convention for .deb. nfpm pkg -f <(echo "$nfpm_config") --target "release-packages/code-server_${VERSION}_$ARCH.deb" diff --git a/ci/build/build-release.sh b/ci/build/build-release.sh index 9e04a47244aa8f2be69cc2eef3748f8eb4c7de50..3c13085007d5ac243cd6ce404321ce68c5c04354 100755 --- a/ci/build/build-release.sh +++ b/ci/build/build-release.sh @@ -43,7 +43,7 @@ bundle_code_server() { # Adds the commit to package.json jq --slurp '.[0] * .[1]' package.json <( - cat <"$RELEASE_PATH/package.json" + ) > "$RELEASE_PATH/package.json" rsync yarn.lock "$RELEASE_PATH" rsync ci/build/npm-postinstall.sh "$RELEASE_PATH/postinstall.sh" @@ -83,18 +83,18 @@ bundle_vscode() { # Adds the commit and date to product.json jq --slurp '.[0] * .[1]' "$VSCODE_SRC_PATH/product.json" <( - cat <"$VSCODE_OUT_PATH/product.json" + ) > "$VSCODE_OUT_PATH/product.json" # We remove the scripts field so that later on we can run # yarn to fetch node_modules if necessary without build scripts running. # We cannot use --no-scripts because we still want dependent package scripts to run. - jq 'del(.scripts)' <"$VSCODE_SRC_PATH/package.json" >"$VSCODE_OUT_PATH/package.json" + jq 'del(.scripts)' < "$VSCODE_SRC_PATH/package.json" > "$VSCODE_OUT_PATH/package.json" pushd "$VSCODE_OUT_PATH" symlink_asar diff --git a/ci/build/build-standalone-release.sh b/ci/build/build-standalone-release.sh index 3afde2ead56c81075abad92ea629761d8c641ca5..c91debe1ee8aa9371e5a231a3210549e376110a4 100755 --- a/ci/build/build-standalone-release.sh +++ b/ci/build/build-standalone-release.sh @@ -16,7 +16,7 @@ main() { # we use the same version it's using so we instead run a script with yarn that # will print the path to node. local node_path - node_path="$(yarn -s node <<<'console.info(process.execPath)')" + node_path="$(yarn -s node <<< 'console.info(process.execPath)')" mkdir -p "$RELEASE_PATH/bin" rsync ./ci/build/code-server.sh "$RELEASE_PATH/bin/code-server" diff --git a/ci/build/npm-postinstall.sh b/ci/build/npm-postinstall.sh index 5e413d7a670a826b8816dca62eea6ea95328a99e..a1110ccd354b1fc537cce2787add7f1a14222bb6 100755 --- a/ci/build/npm-postinstall.sh +++ b/ci/build/npm-postinstall.sh @@ -4,16 +4,16 @@ set -eu # Copied from arch() in ci/lib.sh. detect_arch() { case "$(uname -m)" in - aarch64) - echo arm64 - ;; - x86_64 | amd64) - echo amd64 - ;; - *) - # This will cause the download to fail, but is intentional - uname -m - ;; + aarch64) + echo arm64 + ;; + x86_64 | amd64) + echo amd64 + ;; + *) + # This will cause the download to fail, but is intentional + uname -m + ;; esac } diff --git a/ci/build/release-github-draft.sh b/ci/build/release-github-draft.sh index 4cd65d59121a9f4039480c2125f1c15421141292..69073e4dc11f80090ade6beee0d59eca979e0f76 100755 --- a/ci/build/release-github-draft.sh +++ b/ci/build/release-github-draft.sh @@ -10,7 +10,7 @@ main() { gh release create "v$VERSION" \ --notes-file - \ --target "$(git rev-parse HEAD)" \ - --draft </dev/null; then + if ! command -v gh &> /dev/null; then echo "gh could not be found." echo "We use this with the release-github-draft.sh and release-github-assets.sh scripts." echo -e "See docs here: https://github.com/cli/cli#installation" @@ -28,7 +28,7 @@ main() { fi # Check that they have jq installed - if ! command -v jq &>/dev/null; then + if ! command -v jq &> /dev/null; then echo "jq could not be found." echo "We use this to parse the package.json and grab the current version of code-server." echo -e "See docs here: https://stedolan.github.io/jq/download/" @@ -36,7 +36,7 @@ main() { fi # Check that they have rg installed - if ! command -v rg &>/dev/null; then + if ! command -v rg &> /dev/null; then echo "rg could not be found." echo "We use this when updating files across the codebase." echo -e "See docs here: https://github.com/BurntSushi/ripgrep#installation" @@ -44,7 +44,7 @@ main() { fi # Check that they have node installed - if ! command -v node &>/dev/null; then + if ! command -v node &> /dev/null; then echo "node could not be found." echo "That's surprising..." echo "We use it in this script for getting the package.json version" @@ -53,7 +53,7 @@ main() { fi # Check that gh is authenticated - if ! gh auth status -h github.com &>/dev/null; then + if ! gh auth status -h github.com &> /dev/null; then echo "gh isn't authenticated to github.com." echo "This is needed for our scripts that use gh." echo -e "See docs regarding authentication: https://cli.github.com/manual/gh_auth_login" diff --git a/ci/dev/fmt.sh b/ci/dev/fmt.sh index 849440feee99bbdb5f07ed44dbafefe12889e1ed..3d389aa16edebefd8bb88d464abe0b4827c565d7 100755 --- a/ci/dev/fmt.sh +++ b/ci/dev/fmt.sh @@ -22,15 +22,15 @@ main() { git ls-files "${prettierExts[@]}" | grep -v "lib/vscode" | grep -v 'helm-chart' ) - doctoc --title '# FAQ' docs/FAQ.md >/dev/null - doctoc --title '# Setup Guide' docs/guide.md >/dev/null - doctoc --title '# Install' docs/install.md >/dev/null - doctoc --title '# npm Install Requirements' docs/npm.md >/dev/null - doctoc --title '# Contributing' docs/CONTRIBUTING.md >/dev/null - doctoc --title '# Maintaining' docs/MAINTAINING.md >/dev/null - doctoc --title '# Contributor Covenant Code of Conduct' docs/CODE_OF_CONDUCT.md >/dev/null - doctoc --title '# iPad' docs/ipad.md >/dev/null - doctoc --title '# Termux' docs/termux.md >/dev/null + doctoc --title '# FAQ' docs/FAQ.md > /dev/null + doctoc --title '# Setup Guide' docs/guide.md > /dev/null + doctoc --title '# Install' docs/install.md > /dev/null + doctoc --title '# npm Install Requirements' docs/npm.md > /dev/null + doctoc --title '# Contributing' docs/CONTRIBUTING.md > /dev/null + doctoc --title '# Maintaining' docs/MAINTAINING.md > /dev/null + doctoc --title '# Contributor Covenant Code of Conduct' docs/CODE_OF_CONDUCT.md > /dev/null + doctoc --title '# iPad' docs/ipad.md > /dev/null + doctoc --title '# Termux' docs/termux.md > /dev/null if [[ ${CI-} && $(git ls-files --other --modified --exclude-standard) ]]; then echo "Files need generation or are formatted incorrectly:" diff --git a/ci/dev/gen_icons.sh b/ci/dev/gen_icons.sh index 7617d5e6dc13d559e0ffb571236978503ed124b7..9d27486dcc578803bf716e76c4e90002f182042d 100755 --- a/ci/dev/gen_icons.sh +++ b/ci/dev/gen_icons.sh @@ -35,10 +35,10 @@ main() { # This escapes all newlines so that sed will accept them. favicon_dark_style="$(printf "%s\n" "$favicon_dark_style" | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/\\n/g')" sed "$( - cat -n <favicon-dark-support.svg + )" favicon.svg > favicon-dark-support.svg } main "$@" diff --git a/ci/dev/lint.sh b/ci/dev/lint.sh index 1a0c7d208921c533798515b1c4cce5c71202e7b4..9ba576e002c8e4854c8a58df2a51952250b932dd 100755 --- a/ci/dev/lint.sh +++ b/ci/dev/lint.sh @@ -8,7 +8,7 @@ main() { stylelint $(git ls-files "*.css" | grep -v "lib/vscode") tsc --noEmit --skipLibCheck shellcheck -e SC2046,SC2164,SC2154,SC1091,SC1090,SC2002 $(git ls-files "*.sh" | grep -v "lib/vscode") - if command -v helm && helm kubeval --help >/dev/null; then + if command -v helm && helm kubeval --help > /dev/null; then helm kubeval ci/helm-chart fi diff --git a/ci/dev/update-vscode.sh b/ci/dev/update-vscode.sh index 1b60d57c2df51ae31b2f87f4db0843a0dcc0b1f4..84c9e83c000be6b487e37cadd270f90ebc703c26 100755 --- a/ci/dev/update-vscode.sh +++ b/ci/dev/update-vscode.sh @@ -33,7 +33,7 @@ main() { # Check if the remote exists # if it doesn't, we add it - if ! git config remote.vscode.url >/dev/null; then + if ! git config remote.vscode.url > /dev/null; then echo "Could not find 'vscode' as a remote" echo "Adding with: git remote add vscode https://github.com/microsoft/vscode.git" git remote add vscode https://github.com/microsoft/vscode.git @@ -52,7 +52,7 @@ main() { fi # Check that they have jq installed - if ! command -v jq &>/dev/null; then + if ! command -v jq &> /dev/null; then echo "jq could not be found." echo "We use this when looking up the exact version to update to in the package.json in VS Code." echo -e "See docs here: https://stedolan.github.io/jq/download/" @@ -62,7 +62,7 @@ main() { # Note: `git subtree` returns 129 when installed, and prints help; # but when uninstalled, returns 1. set +e - git subtree &>/dev/null + git subtree &> /dev/null if [ $? -ne 129 ]; then echo "git-subtree could not be found." echo "We use this to fetch and update the lib/vscode subtree." @@ -83,7 +83,7 @@ main() { git fetch vscode # Check if GitHub CLI is installed - if ! command -v gh &>/dev/null; then + if ! command -v gh &> /dev/null; then echo "GitHub CLI could not be found." echo "If you install it before you run this script next time, we'll open a draft PR for you!" echo -e "See docs here: https://github.com/cli/cli#installation\n" diff --git a/ci/lib.sh b/ci/lib.sh index df97b0ba236a455fa109b262d1ab40db2d348dbc..39e1a3ec0efb71c166b7fbe7e790b30341e1b543 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -2,11 +2,11 @@ set -euo pipefail pushd() { - builtin pushd "$@" >/dev/null + builtin pushd "$@" > /dev/null } popd() { - builtin popd >/dev/null + builtin popd > /dev/null } pkg_json_version() { @@ -37,15 +37,15 @@ os() { arch() { cpu="$(uname -m)" case "$cpu" in - aarch64) - echo arm64 - ;; - x86_64 | amd64) - echo amd64 - ;; - *) - echo "$cpu" - ;; + aarch64) + echo arm64 + ;; + x86_64 | amd64) + echo amd64 + ;; + *) + echo "$cpu" + ;; esac } @@ -85,7 +85,7 @@ download_artifact() { local tmp_file tmp_file="$(mktemp)" - gh api "$(get_artifact_url "$artifact_name")" >"$tmp_file" + gh api "$(get_artifact_url "$artifact_name")" > "$tmp_file" unzip -q -o "$tmp_file" -d "$dst" rm "$tmp_file" } diff --git a/ci/release-image/entrypoint.sh b/ci/release-image/entrypoint.sh index 6eddae463bd74956ac20a4f25dba8da63e89682c..770232d7e30fd7ab39f75ab872ca327442002960 100755 --- a/ci/release-image/entrypoint.sh +++ b/ci/release-image/entrypoint.sh @@ -8,7 +8,7 @@ eval "$(fixuid -q)" if [ "${DOCKER_USER-}" ]; then USER="$DOCKER_USER" if [ "$DOCKER_USER" != "$(whoami)" ]; then - echo "$DOCKER_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd >/dev/null + echo "$DOCKER_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null # Unfortunately we cannot change $HOME as we cannot move any bind mounts # nor can we bind mount $HOME into a new home as that requires a privileged container. sudo usermod --login "$DOCKER_USER" coder diff --git a/ci/steps/brew-bump.sh b/ci/steps/brew-bump.sh index ec0704cda0aca287c6f001a79e60238840738e25..fd5d970015d3280f8ce82115811068842a0c40af 100755 --- a/ci/steps/brew-bump.sh +++ b/ci/steps/brew-bump.sh @@ -28,7 +28,7 @@ main() { echo "Pushing changes to cdrci/homebrew-core fork on GitHub" # Source: https://serverfault.com/a/912788 # shellcheck disable=SC2016,SC2028 - echo '#!/bin/sh\nexec echo "$HOMEBREW_GITHUB_API_TOKEN"' >"$HOME"/.git-askpass.sh + echo '#!/bin/sh\nexec echo "$HOMEBREW_GITHUB_API_TOKEN"' > "$HOME"/.git-askpass.sh # Ensure it's executable since we just created it chmod +x "$HOME/.git-askpass.sh" # GIT_ASKPASS lets us use the password when pushing without revealing it in the process list diff --git a/ci/steps/publish-npm.sh b/ci/steps/publish-npm.sh index 934a5decd643c80a9938a0d88a6cd1f6f313f641..7bd497d001cd85c457f11bf51cfa571a73dfee00 100755 --- a/ci/steps/publish-npm.sh +++ b/ci/steps/publish-npm.sh @@ -6,7 +6,7 @@ main() { source ./ci/lib.sh if [[ ${CI-} ]]; then - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >~/.npmrc + echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc fi download_artifact npm-package ./release-npm-package diff --git a/install.sh b/install.sh index c12f23de6efc17ee04cfd15f9b8050c7899c577a..63a7574ca163937e36b02308dfb266957d91a2a1 100755 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ usage() { " fi - cath </dev/null + command -v "$@" > /dev/null } sh_c() { @@ -571,7 +571,7 @@ prefix() { fifo="$(mktemp -d)/fifo" mkfifo "$fifo" sed -e "s#^#$PREFIX: #" "$fifo" & - "$@" >"$fifo" 2>&1 + "$@" > "$fifo" 2>&1 } main "$@" diff --git a/package.json b/package.json index 6baa5ce51746aeb498aead286d3253491f517c44..4f41f49a577e8f0971f7bfc7008c162be74c419f 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "leaked-handles": "^5.2.0", "parcel-bundler": "^1.12.5", "prettier": "^2.2.1", - "prettier-plugin-sh": "^0.6.0", + "prettier-plugin-sh": "^0.7.1", "shellcheck": "^1.0.0", "stylelint": "^13.0.0", "stylelint-config-recommended": "^5.0.0", diff --git a/yarn.lock b/yarn.lock index 9c4587a0e8d14239ac413b7f6cabdc6e15b6b8b4..5fb69ab27646663fd52972d75aa3b31c032a3aa4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1289,14 +1289,6 @@ "@typescript-eslint/typescript-estree" "4.28.0" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.27.0.tgz#b0b1de2b35aaf7f532e89c8e81d0fa298cae327d" - integrity sha512-DY73jK6SEH6UDdzc6maF19AHQJBFVRf6fgAXHPXCGEmpqD4vYgPEzqpFz1lf/daSbOcMpPPj9tyXXDPW2XReAw== - dependencies: - "@typescript-eslint/types" "4.27.0" - "@typescript-eslint/visitor-keys" "4.27.0" - "@typescript-eslint/scope-manager@4.28.0": version "4.28.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.0.tgz#6a3009d2ab64a30fc8a1e257a1a320067f36a0ce" @@ -1305,29 +1297,11 @@ "@typescript-eslint/types" "4.28.0" "@typescript-eslint/visitor-keys" "4.28.0" -"@typescript-eslint/types@4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.27.0.tgz#712b408519ed699baff69086bc59cd2fc13df8d8" - integrity sha512-I4ps3SCPFCKclRcvnsVA/7sWzh7naaM/b4pBO2hVxnM3wrU51Lveybdw5WoIktU/V4KfXrTt94V9b065b/0+wA== - "@typescript-eslint/types@4.28.0": version "4.28.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.0.tgz#a33504e1ce7ac51fc39035f5fe6f15079d4dafb0" integrity sha512-p16xMNKKoiJCVZY5PW/AfILw2xe1LfruTcfAKBj3a+wgNYP5I9ZEKNDOItoRt53p4EiPV6iRSICy8EPanG9ZVA== -"@typescript-eslint/typescript-estree@4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.27.0.tgz#189a7b9f1d0717d5cccdcc17247692dedf7a09da" - integrity sha512-KH03GUsUj41sRLLEy2JHstnezgpS5VNhrJouRdmh6yNdQ+yl8w5LrSwBkExM+jWwCJa7Ct2c8yl8NdtNRyQO6g== - dependencies: - "@typescript-eslint/types" "4.27.0" - "@typescript-eslint/visitor-keys" "4.27.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@4.28.0": version "4.28.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.0.tgz#e66d4e5aa2ede66fec8af434898fe61af10c71cf" @@ -1341,14 +1315,6 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.27.0.tgz#f56138b993ec822793e7ebcfac6ffdce0a60cb81" - integrity sha512-es0GRYNZp0ieckZ938cEANfEhsfHrzuLrePukLKtY3/KPXcq1Xd555Mno9/GOgXhKzn0QfkDLVgqWO3dGY80bg== - dependencies: - "@typescript-eslint/types" "4.27.0" - eslint-visitor-keys "^2.0.0" - "@typescript-eslint/visitor-keys@4.28.0": version "4.28.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.0.tgz#255c67c966ec294104169a6939d96f91c8a89434" @@ -6734,10 +6700,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier-plugin-sh@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/prettier-plugin-sh/-/prettier-plugin-sh-0.6.1.tgz#094d1d190f0d8a53bfd522a68f17a95ca741047d" - integrity sha512-Weelg53FBb1Z5Q1/GpQIb4s//BdhmPAABjJfe6VTQ3m8upQjM36sVVboNOUVvYn3K+LMwzW4vkxhqLQ+vvfBKQ== +prettier-plugin-sh@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/prettier-plugin-sh/-/prettier-plugin-sh-0.7.1.tgz#a2d38de10e55919ea945a6e72c4815b16d6614ad" + integrity sha512-2MWRdGOSz0yf/z2kTKF1AqxDuH9MZD8faoDAz5ySGphxssi9oyM3Ys+jp7AfqsCXvGUDbRA4EJOlKS0yZKAW6w== dependencies: mvdan-sh "^0.5.0"