Skip to content

feat: add prettier-plugin-sh #2891

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ci/build/build-packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,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"
Expand Down
10 changes: 5 additions & 5 deletions ci/build/build-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,15 @@ bundle_code_server() {

# Adds the commit to package.json
jq --slurp '.[0] * .[1]' package.json <(
cat << EOF
cat <<EOF
{
"commit": "$(git rev-parse HEAD)",
"scripts": {
"postinstall": "./postinstall.sh"
}
}
EOF
) > "$RELEASE_PATH/package.json"
) >"$RELEASE_PATH/package.json"
rsync yarn.lock "$RELEASE_PATH"
rsync ci/build/npm-postinstall.sh "$RELEASE_PATH/postinstall.sh"

Expand Down Expand Up @@ -89,18 +89,18 @@ bundle_vscode() {

# Adds the commit and date to product.json
jq --slurp '.[0] * .[1]' "$VSCODE_SRC_PATH/product.json" <(
cat << EOF
cat <<EOF
{
"commit": "$(git rev-parse HEAD)",
"date": $(jq -n 'now | todate')
}
EOF
) > "$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
Expand Down
2 changes: 1 addition & 1 deletion ci/build/build-standalone-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,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"
Expand Down
6 changes: 3 additions & 3 deletions ci/build/code-server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ _realpath() {
cd "$(dirname "$script")"

while [ -L "$(basename "$script")" ]; do
if [ -L "./node" ] && [ -L "./code-server" ] &&
[ -f "package.json" ] &&
cat package.json | grep -q '^ "name": "code-server",$'; then
if [ -L "./node" ] && [ -L "./code-server" ] \
&& [ -f "package.json" ] \
&& cat package.json | grep -q '^ "name": "code-server",$'; then
echo "***** Please use the script in bin/code-server instead!" >&2
echo "***** This script will soon be removed!" >&2
echo "***** See the release notes at https://github.com/cdr/code-server/releases/tag/v3.4.0" >&2
Expand Down
2 changes: 1 addition & 1 deletion ci/build/release-github-draft.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ main() {
hub release create \
--file - \
-t "$(git rev-parse HEAD)" \
--draft "v$VERSION" << EOF
--draft "v$VERSION" <<EOF
v$VERSION

VS Code v$(vscode_version)
Expand Down
17 changes: 8 additions & 9 deletions ci/dev/fmt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ set -euo pipefail
main() {
cd "$(dirname "$0")/../.."

shfmt -i 2 -w -sr $(git ls-files "*.sh" | grep -v "lib/vscode")

local prettierExts
prettierExts=(
"*.js"
Expand All @@ -18,18 +16,19 @@ main() {
"*.toml"
"*.yaml"
"*.yml"
"*.sh"
)
prettier --write --loglevel=warn $(
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 '# Contributor Covenant Code of Conduct' docs/CODE_OF_CONDUCT.md > /dev/null
doctoc --title '# iPad' docs/ipad.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 '# Contributor Covenant Code of Conduct' docs/CODE_OF_CONDUCT.md >/dev/null
doctoc --title '# iPad' docs/ipad.md >/dev/null

if [[ ${CI-} && $(git ls-files --other --modified --exclude-standard) ]]; then
echo "Files need generation or are formatted incorrectly:"
Expand Down
4 changes: 2 additions & 2 deletions ci/dev/gen_icons.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 << EOF
cat -n <<EOF
s%<rect id="favicon"%$favicon_dark_style<rect id="favicon"%
EOF
)" favicon.svg > favicon-dark-support.svg
)" favicon.svg >favicon-dark-support.svg
}

main "$@"
2 changes: 1 addition & 1 deletion ci/dev/lint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
6 changes: 3 additions & 3 deletions ci/dev/update-vscode.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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/"
Expand All @@ -71,7 +71,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"
Expand Down
1 change: 0 additions & 1 deletion ci/images/centos7/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ ENV PATH=/usr/local/go/bin:$GOPATH/bin:$PATH

# Install Go dependencies
ENV GO111MODULE=on
RUN go get mvdan.cc/sh/v3/cmd/shfmt
RUN go get github.com/goreleaser/nfpm/cmd/[email protected]

RUN curl -fsSL https://get.docker.com | sh
1 change: 0 additions & 1 deletion ci/images/debian10/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ ENV PATH=/usr/local/go/bin:$GOPATH/bin:$PATH

# Install Go dependencies
ENV GO111MODULE=on
RUN go get mvdan.cc/sh/v3/cmd/shfmt
RUN go get github.com/goreleaser/nfpm/cmd/[email protected]

RUN VERSION="$(curl -fsSL https://storage.googleapis.com/kubernetes-release/release/stable.txt)" && \
Expand Down
6 changes: 3 additions & 3 deletions ci/lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -75,7 +75,7 @@ download_artifact() {
local tmp_file
tmp_file="$(mktemp)"

curl -fsSL "$(get_artifact_url "$artifact_name")" > "$tmp_file"
curl -fsSL "$(get_artifact_url "$artifact_name")" >"$tmp_file"
unzip -q -o "$tmp_file" -d "$dst"
rm "$tmp_file"
}
Expand Down
2 changes: 1 addition & 1 deletion ci/release-image/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ set -eu
eval "$(fixuid -q)"

if [ "${DOCKER_USER-}" ] && [ "$DOCKER_USER" != "$USER" ]; 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
Expand Down
2 changes: 1 addition & 1 deletion ci/steps/build-docker-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ main() {
./ci/release-image/build.sh

mkdir -p release-images
docker save "codercom/code-server-$ARCH:$VERSION" > "release-images/code-server-$ARCH-$VERSION.tar"
docker save "codercom/code-server-$ARCH:$VERSION" >"release-images/code-server-$ARCH-$VERSION.tar"
}

main "$@"
2 changes: 1 addition & 1 deletion ci/steps/publish-npm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ There are several differences, however. You must:
- Use Node.js version 12.x (or greater)
- Have [yarn](https://classic.yarnpkg.com/en/) installed (which is used to install JS packages and run development scripts)
- Have [nfpm](https://github.com/goreleaser/nfpm) (which is used to build `.deb` and `.rpm` packages and [jq](https://stedolan.github.io/jq/) (used to build code-server releases) installed
- Have [shfmt](https://pkg.go.dev/mvdan.cc/sh/v3) installed to run `yarn fmt` (requires Go is installed on your system)

The [CI container](../ci/images/debian10/Dockerfile) is a useful reference for all
of the dependencies code-server uses.
Expand Down
12 changes: 6 additions & 6 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ usage() {
"
fi

cath << EOF
cath <<EOF
Installs code-server for Linux, macOS and FreeBSD.
It tries to use the system package manager if possible.
After successful installation it explains how to start using code-server.
Expand Down Expand Up @@ -81,7 +81,7 @@ echo_latest_version() {

echo_npm_postinstall() {
echoh
cath << EOF
cath <<EOF
The npm package has been installed successfully!
Please extend your path to use code-server:
PATH="$NPM_BIN_DIR:\$PATH"
Expand All @@ -92,7 +92,7 @@ EOF

echo_standalone_postinstall() {
echoh
cath << EOF
cath <<EOF
Standalone release has been installed into $STANDALONE_INSTALL_PREFIX/lib/code-server-$VERSION
Please extend your path to use code-server:
PATH="$STANDALONE_INSTALL_PREFIX/bin:\$PATH"
Expand All @@ -103,7 +103,7 @@ EOF

echo_systemd_postinstall() {
echoh
cath << EOF
cath <<EOF
To have systemd start code-server now and restart on boot:
sudo systemctl enable --now code-server@\$USER
Or, if you don't want/need a background service you can run:
Expand Down Expand Up @@ -509,7 +509,7 @@ arch() {
}

command_exists() {
command -v "$@" > /dev/null
command -v "$@" >/dev/null
}

sh_c() {
Expand Down Expand Up @@ -571,7 +571,7 @@ prefix() {
fifo="$(mktemp -d)/fifo"
mkfifo "$fifo"
sed -e "s#^#$PREFIX: #" "$fifo" &
"$@" > "$fifo" 2>&1
"$@" >"$fifo" 2>&1
}

main "$@"
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@
"istanbul-badges-readme": "^1.2.0",
"leaked-handles": "^5.2.0",
"parcel-bundler": "^1.12.4",
"prettier": "^2.0.5",
"prettier": "^2.2.1",
"prettier-plugin-sh": "^0.6.0",
"stylelint": "^13.0.0",
"stylelint-config-recommended": "^3.0.0",
"ts-node": "^9.0.0",
Expand Down
14 changes: 13 additions & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5202,6 +5202,11 @@ [email protected]:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==

mvdan-sh@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/mvdan-sh/-/mvdan-sh-0.5.0.tgz#fa76f611a103595ad0f04f5d18e582892c46e87c"
integrity sha512-UWbdl4LHd2fUnaEcOUFVWRdWGLkNoV12cKVIPiirYd8qM5VkCoCTXErlDubevrkEG7kGohvjRxAlTQmOqG80tw==

nan@^2.12.1:
version "2.14.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
Expand Down Expand Up @@ -6306,7 +6311,14 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"

prettier@^2.0.5:
prettier-plugin-sh@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/prettier-plugin-sh/-/prettier-plugin-sh-0.6.0.tgz#021c22597a5a866c346095cd7f6c662a49dea249"
integrity sha512-y+SSThg/8mrGGkcAolWpociiTZlH7nlIUtqZl1dueyhngof8rD48tUHVQqvIaCx21T/0+9TyzsTEsVviPjR5og==
dependencies:
mvdan-sh "^0.5.0"

prettier@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
Expand Down