chore: improve shfmt linter (#5181)

This commit is contained in:
jdx authored and GitHub committed 2025-05-25 16:19:11 +00:00
1 parent 3e90171ce5
commit 324d812945
46 files changed
+386 -389

No files matched your search

+1 -1
View File
@@ -2,7 +2,7 @@
indent_style = space
indent_size = 4
[{*.sh,.mise/tasks/**/*,e2e/**/*}]
[{*.sh,.mise/tasks/**/*,e2e/**/*,*.pkl}]
indent_style = space
indent_size = 2
+1
View File
@@ -1,3 +1,4 @@
disable=SC1008
disable=SC2088
disable=SC2164
disable=SC2317
+1 -1
View File
@@ -129,7 +129,7 @@ min_version = '2024.11.1'
### `mise.toml` schema
- You can find the JSON schema for `mise.toml` [here](https://github.com/jdx/mise/blob/main/schema/mise.json) or at <https://mise.jdx.dev/schema/mise.json>.
- You can find the JSON schema for `mise.toml` in [schema/mise.json](https://github.com/jdx/mise/blob/main/schema/mise.json) or at <https://mise.jdx.dev/schema/mise.json>.
- Some editors can load it automatically to provide autocompletion and validation for when editing a `mise.toml` file ([VSCode](https://code.visualstudio.com/docs/languages/json#_json-schemas-and-settings), [IntelliJ](https://www.jetbrains.com/help/idea/json.html#ws_json_using_schemas), [neovim](https://github.com/b0o/SchemaStore.nvim), etc.). It is also available in the [JSON schema store](https://www.schemastore.org/json/).
- Note that for `included tasks` (see [task configuration](/tasks/task-configuration), there is another schema: <https://mise.jdx.dev/schema/mise-task.json>)
+1 -1
View File
@@ -31,7 +31,7 @@ mise use -g python
pip install --user pipx
```
Other installation instructions can be found [here](https://pipx.pypa.io/latest/installation/)
[Other installation instructions](https://pipx.pypa.io/latest/installation/)
## Usage
+1 -1
View File
@@ -101,7 +101,7 @@ We maintain [an index](https://github.com/mise-plugins/registry) of shorthands t
base.
This is regularly updated every time that mise has a release. This repository is stored directly
into
the codebase [here](https://github.com/jdx/mise/blob/main/registry.toml).
the codebase in [registry.toml](https://github.com/jdx/mise/blob/main/registry.toml).
## Does "node@20" mean the newest available version of node?
+1 -1
View File
@@ -88,7 +88,7 @@ Tera also supports powerful [expressions](https://keats.github.io/tera/docs/#exp
- in checking, e.g. <span v-pre>`{{ some_var in [1, 2, 3] }}`</span>
Tera also supports control structures such as <span v-pre>`if`</span> and
<span v-pre>`for`</span>. Read more [here](https://keats.github.io/tera/docs/#control-structures).
<span v-pre>`for`</span>. [Read more](https://keats.github.io/tera/docs/#control-structures).
### Tera Filters
+8 -8
View File
@@ -9,7 +9,7 @@ fail() {
}
# Safeguard against running the test directly, which would execute in the actual user home
[[ -n "${TEST_NAME:-}" ]] || fail "tests should be called using run_test"
[[ -n ${TEST_NAME:-} ]] || fail "tests should be called using run_test"
quiet_assert_succeed() {
local status=0
@@ -37,7 +37,7 @@ assert_succeed() {
assert_fail() {
local actual
actual="$(quiet_assert_fail "$1")"
if [[ -z "${2:-}" ]]; then
if [[ -z ${2:-} ]]; then
ok "[$1] expected failure"
elif [[ $actual == *"$2"* ]]; then
ok "[$1] output is equal to '$2'"
@@ -49,7 +49,7 @@ assert_fail() {
assert() {
local actual
actual="$(quiet_assert_succeed "$1")"
if [[ -z "${2:-}" ]]; then
if [[ -z ${2:-} ]]; then
ok "[$1]"
elif [[ $actual == "$2" ]]; then
ok "[$1] output is equal to '$2'"
@@ -89,7 +89,7 @@ assert_json_partial_array() {
actual_filtered="$(jq -S "$filter" <<<"$actual")"
expected_filtered="$(jq -S "$filter" <<<"$expected")"
if [[ "$actual_filtered" == "$expected_filtered" ]]; then
if [[ $actual_filtered == "$expected_filtered" ]]; then
ok "[$command] partial array match successful"
else
echo "Expected:"
@@ -113,7 +113,7 @@ assert_json_partial_object() {
actual_filtered="$(jq -S --arg fields "$fields" "$filter" <<<"$actual")"
expected_filtered="$(jq -S --arg fields "$fields" "$filter" <<<"$expected")"
if [[ "$actual_filtered" == "$expected_filtered" ]]; then
if [[ $actual_filtered == "$expected_filtered" ]]; then
ok "[$command] partial object match successful"
else
echo "Expected:"
@@ -168,7 +168,7 @@ assert_matches() {
assert_empty() {
local actual
actual="$(quiet_assert_succeed "$1")"
if [[ -z "$actual" ]]; then
if [[ -z $actual ]]; then
ok "[$1] output is empty"
else
fail "[$1] expected empty output but got '$actual'"
@@ -176,7 +176,7 @@ assert_empty() {
}
assert_directory_exists() {
if [[ -d "$1" ]]; then
if [[ -d $1 ]]; then
ok "[$1] directory exists"
else
fail "[$1] directory does not exist"
@@ -184,7 +184,7 @@ assert_directory_exists() {
}
assert_directory_not_exists() {
if [[ ! -d "$1" ]]; then
if [[ ! -d $1 ]]; then
ok "[$1] directory does not exist"
else
fail "[$1] directory exists"
+1 -1
View File
@@ -7,7 +7,7 @@ assert_contains "$MISE_DATA_DIR/shims/jc --version" "jc version: 1.25.3"
# only run on linux/amd64
if [ "$(uname -m)" = "x86_64" ] && [ "$(uname -s)" = "Linux" ]; then
mise use ubi:https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl.tar.xz[exe=ffmpeg]
mise use 'ubi:https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl.tar.xz[exe=ffmpeg]'
assert_contains "$MISE_DATA_DIR/shims/ffmpeg -version" "ffmpeg version"
fi
-1
View File
@@ -1,6 +1,5 @@
#!/usr/bin/env bash
ORIG_PATH="$PATH"
eval "$(mise activate bash)"
export PATH="/added:$PATH"
+1 -1
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
echo "settings.all_compile = false" >mise.toml
echo "settings.disable_backends = [\"rust\", \"java\"]" >>mise.toml
echo 'settings.disable_backends = ["rust", "java"]' >>mise.toml
assert_contains "mise settings" 'all_compile false ~/workdir/mise.toml
disable_backends ["rust", "java"] ~/workdir/mise.toml'
+1
View File
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
# shellcheck disable=SC2209
echo "tools.dummy = '1'" >mise.toml
echo "tools.dummy = '2'" >mise.test.toml
+1 -1
View File
@@ -8,4 +8,4 @@ mise i
assert_contains "mise x bun -- bun -v" "1.1.21"
require_cmd node
assert_contains "mise x bun -- bunx cowsay \"hello world\"" "hello world"
assert_contains 'mise x bun -- bunx cowsay "hello world"' "hello world"
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
if [[ "${MISE_DISABLE_TOOLS:-}" = *deno* ]]; then
if [[ ${MISE_DISABLE_TOOLS:-} == *deno* ]]; then
warn "Skipping deno tests"
exit 0
fi
+2 -2
View File
@@ -4,11 +4,11 @@ cat <<EOF >.sdkmanrc
java=17.0.2
EOF
mise i java
assert_contains "mise x java -- java -version 2>&1" "openjdk version \"17.0.2\""
assert_contains "mise x java -- java -version 2>&1" 'openjdk version "17.0.2"'
rm .sdkmanrc
cat <<EOF >.java-version
17.0.2
EOF
assert_contains "mise x java -- java -version 2>&1" "openjdk version \"17.0.2\""
assert_contains "mise x java -- java -version 2>&1" 'openjdk version "17.0.2"'
rm .java-version
+5 -4
View File
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
# shellcheck disable=SC2016
cat <<EOF >mise.toml
[env]
@@ -33,10 +34,10 @@ echo "{% raw %}{{ env.FOO }}{% endraw %}: {{ env.FOO }}"
echo "{% raw %}{{ env.BAR }}{% endraw %}: {{ env.BAR }}"
"""
EOF
assert "mise run --trace foo" "\$FOO: foo
\$BAR: bar
assert "mise run --trace foo" '$FOO: foo
$BAR: bar
{{ env.FOO }}: foo
{{ env.BAR }}: bar"
{{ env.BAR }}: bar'
cat <<EOF >mise.toml
[env]
@@ -48,7 +49,7 @@ env.BAZ = "{{ env.BAR }}"
run = "printf '\$BAZ: %s\n' \$BAZ"
EOF
assert "mise run --trace foo" "\$BAZ: foo"
assert "mise run --trace foo" '$BAZ: foo'
cat <<EOF >mise.toml
[env]
+32 -31
View File
@@ -1,55 +1,56 @@
#!/usr/bin/env bash
# shellcheck disable=SC2016
# Default devcontainer
assert_json_partial_object "mise generate devcontainer" "name,description,features,mounts,containerEnv,customizations" "
assert_json_partial_object "mise generate devcontainer" "name,description,features,mounts,containerEnv,customizations" '
{
\"name\": \"mise\",
\"image\": \"mcr.microsoft.com/devcontainers/base:ubuntu\",
\"features\": {
\"ghcr.io/devcontainers-extra/features/mise:1\": {}
"name": "mise",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers-extra/features/mise:1": {}
},
\"customizations\": {
\"vscode\": {
\"extensions\": [
\"hverlin.mise-vscode\"
"customizations": {
"vscode": {
"extensions": [
"hverlin.mise-vscode"
]
}
},
\"mounts\": [],
\"containerEnv\": {}
"mounts": [],
"containerEnv": {}
}
"
'
# With custom name and image
assert_json_partial_object "mise generate devcontainer --name test --image testimage:latest" "name,description" "
assert_json_partial_object "mise generate devcontainer --name test --image testimage:latest" "name,description" '
{
\"name\": \"test\",
\"image\": \"testimage:latest\"
"name": "test",
"image": "testimage:latest"
}
"
'
# With mount
assert_json_partial_object "mise generate devcontainer --mount-mise-data" "name,description,features,mounts,containerEnv,postCreateCommand" "
assert_json_partial_object "mise generate devcontainer --mount-mise-data" "name,description,features,mounts,containerEnv,postCreateCommand" '
{
\"name\": \"mise\",
\"image\": \"mcr.microsoft.com/devcontainers/base:ubuntu\",
\"features\": {
\"ghcr.io/devcontainers-extra/features/mise:1\": {}
"name": "mise",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers-extra/features/mise:1": {}
},
\"mounts\": [
"mounts": [
{
\"source\": \"mise-data-volume\",
\"target\": \"/mnt/mise-data\",
\"type\": \"volume\"
"source": "mise-data-volume",
"target": "/mnt/mise-data",
"type": "volume"
}
],
\"containerEnv\": {
\"MISE_DATA_DIR\": \"/mnt/mise-data\"
"containerEnv": {
"MISE_DATA_DIR": "/mnt/mise-data"
},
\"remoteEnv\": {
\"PATH\": \"\${containerEnv:PATH}:/mnt/mise-data/shims\"
"remoteEnv": {
"PATH": "${containerEnv:PATH}:/mnt/mise-data/shims"
},
\"postCreateCommand\": \"sudo chown -R vscode:vscode /mnt/mise-data\"
"postCreateCommand": "sudo chown -R vscode:vscode /mnt/mise-data"
}
"
'
+2 -2
View File
@@ -29,14 +29,14 @@ for index in "${!FILES[@]}"; do
TEST_NAME="${FILES[$index]}"
# split tests into tranches to reduce test time
if [[ -n "${TEST_TRANCHE_COUNT:-}" ]]; then
if [[ -n ${TEST_TRANCHE_COUNT:-} ]]; then
if [[ $((index % TEST_TRANCHE_COUNT)) -ne $TEST_TRANCHE ]]; then
continue
fi
fi
# Skip slow tests unless TEST_ALL == 1
if [[ ${TEST_ALL:-0} != 1 && $TEST_NAME = *_slow ]]; then
if [[ ${TEST_ALL:-0} != 1 && $TEST_NAME == *_slow ]]; then
# title="E2E test $TEST_NAME skipped" file="e2e/$TEST_NAME" warn "slow tests are disabled"
skipped_count=$((skipped_count + 1))
summary "$TEST_NAME" "-" ":zap:"
+1 -1
View File
@@ -102,7 +102,7 @@ run_test() {
echo "$TEST: $DURATION" >&2
if [[ "$status" == 0 ]]; then
if [[ $status == 0 ]]; then
remove_isolated_env
summary "$TEST" "$DURATION" ":white_check_mark:"
else
+2 -1
View File
@@ -1,4 +1,5 @@
#!/usr/bin/env zsh
# shellcheck disable=SC1071
set -euo pipefail
orig_path="$PATH"
@@ -18,7 +19,7 @@ assert_path() {
local actual="${PATH/%$orig_path/}"
actual="${actual//$HOME/\~}"
actual="${actual/%:/}"
if [[ "$actual" != "$expected" ]]; then
if [[ $actual != "$expected" ]]; then
echo "Invalid PATH: $actual"
echo "Expected PATH: $expected"
exit 1
+1
View File
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
export NVM_DIR="$PWD/.nvm"
mkdir -p "$NVM_DIR"
+22 -2
View File
@@ -1,12 +1,32 @@
amends "package://github.com/jdx/hk/releases/download/v1.0.0/hk@1.0.0#/Config.pkl"
import "package://github.com/jdx/hk/releases/download/v1.0.0/hk@1.0.0#/Builtins.pkl"
local bash_glob = List("*.sh", "xtasks/**", "scripts/**", "e2e/**")
local bash_exclude = List("*.ps1", "*.fish", "*.ts", "*.js", "*.json", "*.bat", "**/.*", "src/assets/bash_zsh_support/**")
local linters = new Mapping<String, Step> {
// uses builtin prettier linter config
["prettier"] = Builtins.prettier
["clippy"] = (Builtins.cargo_clippy) {
check = "cargo clippy --manifest-path {{workspace_indicator}} --all-features --allow-dirty --allow-staged"
fix = "cargo clippy --manifest-path {{workspace_indicator}} --all-features --fix --allow-dirty --allow-staged"
check = "cargo clippy --manifest-path {{workspace_indicator}} --all-features"
fix = "cargo clippy --manifest-path {{workspace_indicator}} --all-features --fix --allow-dirty --allow-staged"
}
["shellcheck"] = (Builtins.shellcheck) {
glob = bash_glob
exclude = bash_exclude
batch = true
check = "shellcheck -x {{ files }}"
}
["shfmt"] = (Builtins.shfmt) {
check_list_files = """
files=$(shfmt -l -s {{ files }})
if [ -n "$files" ]; then
echo "$files"
exit 1
fi
"""
fix = "shfmt -w -s {{ files }}"
glob = bash_glob
exclude = bash_exclude
}
// uses custom pkl linter config
+14 -18
View File
@@ -8,27 +8,27 @@ backend = "aqua:rhysd/actionlint"
"actionlint_1.7.7_linux_arm64.tar.gz" = "sha256:401942f9c24ed71e4fe71b76c7d638f66d8633575c4016efd2977ce7c28317d0"
[tools.bun]
version = "1.2.10"
version = "1.2.14"
backend = "core:bun"
[tools.bun.checksums]
"bun-darwin-aarch64.zip" = "sha256:07895ef0fb661249b86b0b723b65b1cc4790c7f3685b63cda90122b00299972c"
"bun-linux-x64-baseline.zip" = "sha256:4b62f599048ef320a761bacbeeb71f8784f5e373b976a9d53b3ee7811f19b004"
"bun-darwin-aarch64.zip" = "sha256:274c37bad6dd5041f74f65330b0c3980317b1142a1bdece7bebeb3aab44b88da"
"bun-linux-x64-baseline.zip" = "sha256:8590c16b934317401b69eae06109d36c399d64b041386b892f39bf75969abe12"
[tools.cargo-binstall]
version = "1.12.3"
version = "1.12.5"
backend = "aqua:cargo-bins/cargo-binstall"
[tools.cargo-binstall.checksums]
"cargo-binstall-aarch64-apple-darwin.zip" = "sha256:88467030db096ceddf97405750fe9e67cf25106da241db7a60900c58f192206f"
"cargo-binstall-x86_64-unknown-linux-musl.tgz" = "sha256:deeee17791719fc544dd1f542d4a482da70ea4ebfddf414d3ca27e5dc12242e3"
"cargo-binstall-aarch64-apple-darwin.zip" = "sha256:c59a3f059b9b8d7ffaf66c5791a7ae09b9b09f46e2bf68a069a70cfc451ae0ea"
"cargo-binstall-x86_64-unknown-linux-musl.tgz" = "sha256:c6378f62f878e566cbfedc8bb693b143297313b6e2768ac3811ed0a1a51da095"
[tools."cargo:cargo-edit"]
version = "0.13.2"
version = "0.13.4"
backend = "cargo:cargo-edit"
[tools."cargo:cargo-insta"]
version = "1.43.0"
version = "1.43.1"
backend = "cargo:cargo-insta"
[tools."cargo:git-cliff"]
@@ -52,11 +52,11 @@ cosign-darwin-arm64 = "sha256:780da3654d9601367b0d54686ac65cb9716578610cabe292d7
cosign-linux-amd64 = "sha256:1f6c194dd0891eb345b436bb71ff9f996768355f5e0ce02dde88567029ac2188"
[tools.hk]
version = "1.1.1"
version = "1.1.2"
backend = "aqua:jdx/hk"
[tools.hk.checksums]
"hk-aarch64-apple-darwin.tar.gz" = "sha256:0badd05c4b7b0cde50e3da4770f924fe1caa99ab30be7a6c1274b994ae0fcc72"
"hk-x86_64-unknown-linux-gnu.tar.gz" = "sha256:2f889c916a641efb7b5861503bbcaee11752d874e1e4de72bc4727bd571256d5"
[tools.jq]
version = "1.7.1"
@@ -69,7 +69,7 @@ jq-macos-arm64 = "sha256:0bbe619e663e0de2c550be2fe0d240d076799d6f8a652b70fa04aea
"jq-windows-amd64.exe" = "sha256:7451fbbf37feffb9bf262bd97c54f0da558c63f0748e64152dd87b0a07b6d6ab"
[tools."npm:markdownlint-cli"]
version = "0.44.0"
version = "0.45.0"
backend = "npm:markdownlint-cli"
[tools."npm:prettier"]
@@ -130,16 +130,12 @@ slsa-verifier-linux-x86_64 = "sha256:499befb675efcca9001afe6e5156891b91e71f9c07a
slsa-verifier-macos-aarch64 = "sha256:84d9122ce12e0c79080844285fd5c4976407ed3463e434a1b21b0979c46b1e55"
[tools.taplo]
version = "0.9.3"
version = "0.10.0"
backend = "aqua:tamasfe/taplo"
[tools.taplo.checksums]
taplo-full-linux-aarch64 = "sha256:9ffa2a799ff0ca601a0e7ff93dcae64a34c81c677916e6f0d3c81d62e0670d83"
taplo-full-linux-x86_64 = "sha256:e89d2303ea9a5ec07971feec807fa493dc9ab6624c19b313ff90fdede247ee08"
"taplo-full-linux-x86_64.gz" = "sha256:71d655dc3f69ce30454cfade92fdbe846c0ba4aa3afa68f3ff0d216966d0d3c2"
taplo-full-macos-aarch64 = "sha256:cf55aa3e4c9b631c1fbb3f8a4adac59ca2ecc7898d26e749cd9b62d5ed858fce"
"taplo-linux-x86_64.gz" = "sha256:889efcfa067b179fda488427d3b13ce2d679537da8b9ed8138ba415db7da2a5e"
"taplo.exe-full-windows-aarch64" = "sha256:13eaa7f30f321a02a43bcc476450b9a79307f12addc25df132613cbb76d03f86"
"taplo-darwin-aarch64.gz" = "sha256:713734314c3e71894b9e77513c5349835eefbd52908445a0d73b0c7dc469347d"
"taplo-linux-x86_64.gz" = "sha256:8fe196b894ccf9072f98d4e1013a180306e17d244830b03986ee5e8eabeb6156"
[tools.wait-for-gh-rate-limit]
version = "1.0.0"
+20 -20
View File
@@ -8,29 +8,29 @@ touch mise/lib/.disable-self-update
tar -xvJf "dist/mise-$MISE_VERSION-linux-x64.tar.xz"
fpm -s dir -t deb \
--name mise \
--license MIT \
--version "${MISE_VERSION#v*}" \
--architecture amd64 \
--description "The front-end to your dev env" \
--url "https://github.com/jdx/mise" \
--maintainer "Jeff Dickey @jdx" \
mise/bin/mise=/usr/bin/mise \
mise/lib/.disable-self-update=/usr/lib/mise/.disable-self-update \
mise/man/man1/mise.1=/usr/share/man/man1/mise.1
--name mise \
--license MIT \
--version "${MISE_VERSION#v*}" \
--architecture amd64 \
--description "The front-end to your dev env" \
--url "https://github.com/jdx/mise" \
--maintainer "Jeff Dickey @jdx" \
mise/bin/mise=/usr/bin/mise \
mise/lib/.disable-self-update=/usr/lib/mise/.disable-self-update \
mise/man/man1/mise.1=/usr/share/man/man1/mise.1
tar -xvJf "dist/mise-$MISE_VERSION-linux-arm64.tar.xz"
fpm -s dir -t deb \
--name mise \
--license MIT \
--version "${MISE_VERSION#v*}" \
--architecture arm64 \
--description "The front-end to your dev env" \
--url "https://github.com/jdx/mise" \
--maintainer "Jeff Dickey @jdx" \
mise/bin/mise=/usr/bin/mise \
mise/lib/.disable-self-update=/usr/lib/mise/.disable-self-update \
mise/man/man1/mise.1=/usr/share/man/man1/mise.1
--name mise \
--license MIT \
--version "${MISE_VERSION#v*}" \
--architecture arm64 \
--description "The front-end to your dev env" \
--url "https://github.com/jdx/mise" \
--maintainer "Jeff Dickey @jdx" \
mise/bin/mise=/usr/bin/mise \
mise/lib/.disable-self-update=/usr/lib/mise/.disable-self-update \
mise/man/man1/mise.1=/usr/share/man/man1/mise.1
mkdir -p dist/deb/pool/main
cp -v ./*.deb dist/deb/pool/main
+20 -20
View File
@@ -8,29 +8,29 @@ touch mise/lib/.disable-self-update
tar -xvJf "dist/mise-$MISE_VERSION-linux-x64.tar.xz"
fpm -s dir -t rpm \
--name mise \
--license MIT \
--version "${MISE_VERSION#v*}" \
--architecture x86_64 \
--description "The front-end to your dev env" \
--url "https://github.com/jdx/mise" \
--maintainer "Jeff Dickey @jdx" \
mise/bin/mise=/usr/bin/mise \
mise/lib/.disable-self-update=/usr/lib/mise/.disable-self-update \
mise/man/man1/mise.1=/usr/share/man/man1/mise.1
--name mise \
--license MIT \
--version "${MISE_VERSION#v*}" \
--architecture x86_64 \
--description "The front-end to your dev env" \
--url "https://github.com/jdx/mise" \
--maintainer "Jeff Dickey @jdx" \
mise/bin/mise=/usr/bin/mise \
mise/lib/.disable-self-update=/usr/lib/mise/.disable-self-update \
mise/man/man1/mise.1=/usr/share/man/man1/mise.1
tar -xvJf "dist/mise-$MISE_VERSION-linux-arm64.tar.xz"
fpm -s dir -t rpm \
--name mise \
--license MIT \
--version "${MISE_VERSION#v*}" \
--architecture aarch64 \
--description "The front-end to your dev env" \
--url "https://github.com/jdx/mise" \
--maintainer "Jeff Dickey @jdx" \
mise/bin/mise=/usr/bin/mise \
mise/lib/.disable-self-update=/usr/lib/mise/.disable-self-update \
mise/man/man1/mise.1=/usr/share/man/man1/mise.1
--name mise \
--license MIT \
--version "${MISE_VERSION#v*}" \
--architecture aarch64 \
--description "The front-end to your dev env" \
--url "https://github.com/jdx/mise" \
--maintainer "Jeff Dickey @jdx" \
mise/bin/mise=/usr/bin/mise \
mise/lib/.disable-self-update=/usr/lib/mise/.disable-self-update \
mise/man/man1/mise.1=/usr/share/man/man1/mise.1
cat <<EOF >~/.rpmmacros
%_signature gpg
+60 -60
View File
@@ -2,57 +2,57 @@
set -euo pipefail
error() {
echo "$@" >&2
exit 1
echo "$@" >&2
exit 1
}
RUST_TRIPLE=${1:-$(rustc -vV | grep ^host: | cut -d ' ' -f2)}
#region os/arch
get_os() {
case "$RUST_TRIPLE" in
*-apple-darwin*)
echo "macos"
;;
*-windows-*)
echo "windows"
;;
*-linux-*)
echo "linux"
;;
*)
error "unsupported OS: $RUST_TRIPLE"
;;
esac
case "$RUST_TRIPLE" in
*-apple-darwin*)
echo "macos"
;;
*-windows-*)
echo "windows"
;;
*-linux-*)
echo "linux"
;;
*)
error "unsupported OS: $RUST_TRIPLE"
;;
esac
}
get_arch() {
case "$RUST_TRIPLE" in
aarch64-*)
echo "arm64"
;;
arm*)
echo "armv7"
;;
x86_64-*)
echo "x64"
;;
universal2-*)
echo "universal"
;;
*)
error "unsupported arch: $RUST_TRIPLE"
;;
esac
case "$RUST_TRIPLE" in
aarch64-*)
echo "arm64"
;;
arm*)
echo "armv7"
;;
x86_64-*)
echo "x64"
;;
universal2-*)
echo "universal"
;;
*)
error "unsupported arch: $RUST_TRIPLE"
;;
esac
}
get_suffix() {
case "$RUST_TRIPLE" in
*-musl | *-musleabi | *-musleabihf)
echo "-musl"
;;
*)
echo ""
;;
esac
case "$RUST_TRIPLE" in
*-musl | *-musleabi | *-musleabihf)
echo "-musl"
;;
*)
echo ""
;;
esac
}
#endregion
@@ -64,18 +64,18 @@ version=$(./scripts/get-version.sh)
basename=mise-$version-$os-$arch$suffix
case "$os-$arch" in
linux-arm*)
# don't use sccache
unset RUSTC_WRAPPER
;;
linux-arm*)
# don't use sccache
unset RUSTC_WRAPPER
;;
esac
if command -v cross >/dev/null; then
cross build --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored
cross build --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored
elif command -v zig >/dev/null; then
cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored
cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored
else
cargo build --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored
cargo build --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored
fi
mkdir -p dist/mise/bin
mkdir -p dist/mise/man/man1
@@ -84,23 +84,23 @@ cp "target/$RUST_TRIPLE/serious/mise"* dist/mise/bin
cp README.md dist/mise/README.md
cp LICENSE dist/mise/LICENSE
if [[ "$os" != "windows" ]]; then
cp {,dist/mise/}man/man1/mise.1
cp {,dist/mise/}share/fish/vendor_conf.d/mise-activate.fish
if [[ $os != "windows" ]]; then
cp {,dist/mise/}man/man1/mise.1
cp {,dist/mise/}share/fish/vendor_conf.d/mise-activate.fish
fi
cd dist
if [[ "$os" == "macos" ]]; then
codesign -f --prefix dev.jdx. -s "Developer ID Application: Jeffrey Dickey (4993Y37DX6)" mise/bin/mise
if [[ $os == "macos" ]]; then
codesign -f --prefix dev.jdx. -s "Developer ID Application: Jeffrey Dickey (4993Y37DX6)" mise/bin/mise
fi
if [[ "$os" == "windows" ]]; then
zip -r "$basename.zip" mise
ls -oh "$basename.zip"
if [[ $os == "windows" ]]; then
zip -r "$basename.zip" mise
ls -oh "$basename.zip"
else
XZ_OPT=-9 tar -acf "$basename.tar.xz" mise
tar -cf - mise | gzip -9 >"$basename.tar.gz"
ZSTD_NBTHREADS=0 ZSTD_CLEVEL=19 tar -acf "$basename.tar.zst" mise
ls -oh "$basename.tar."*
XZ_OPT=-9 tar -acf "$basename.tar.xz" mise
tar -cf - mise | gzip -9 >"$basename.tar.gz"
ZSTD_NBTHREADS=0 ZSTD_CLEVEL=19 tar -acf "$basename.tar.zst" mise
ls -oh "$basename.tar."*
fi
+6 -6
View File
@@ -35,12 +35,12 @@ export CLOUDFLARE_ACCOUNT_ID=6e243906ff257b965bcae8025c2fc344
# jdx.dev
curl --fail-with-body -X POST "https://api.cloudflare.com/client/v4/zones/90dfd7997bdcfa8579c52d8ee8dd4cd1/purge_cache" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
--data '{ "purge_everything": true }'
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
--data '{ "purge_everything": true }'
# mise.run
curl --fail-with-body -X POST "https://api.cloudflare.com/client/v4/zones/782fc08181b7bbd26c529a00df52a277/purge_cache" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
--data '{ "purge_everything": true }'
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
--data '{ "purge_everything": true }'
+7 -7
View File
@@ -33,19 +33,19 @@ abuild -r
git add APKBUILD
if git diff --cached --exit-code; then
echo "No changes to commit"
exit 0
echo "No changes to commit"
exit 0
fi
git commit -m "community/mise: upgrade to ${MISE_VERSION#v}"
if [ "$DRY_RUN" == 0 ]; then
git push jdxcode -f
git push jdxcode -f
fi
open_mr="$(glab mr list -R alpine/aports --author=@me)"
if [[ "$open_mr" != "Showing"* ]]; then
if [ "$DRY_RUN" == 0 ]; then
DEBUG=1 glab mr create --fill --yes -H jdxcode/aports -R alpine/aports
fi
if [[ $open_mr != "Showing"* ]]; then
if [ "$DRY_RUN" == 0 ]; then
DEBUG=1 glab mr create --fill --yes -H jdxcode/aports -R alpine/aports
fi
fi
#git show
+43 -43
View File
@@ -2,50 +2,50 @@
set -euxo pipefail
error() {
echo "$@" >&2
exit 1
echo "$@" >&2
exit 1
}
if [[ -z "${NODE_AUTH_TOKEN:-}" ]]; then
echo "NODE_AUTH_TOKEN must be set" >&2
exit 0
if [[ -z ${NODE_AUTH_TOKEN:-} ]]; then
echo "NODE_AUTH_TOKEN must be set" >&2
exit 0
fi
mkdir -p "$RELEASE_DIR/npm"
dist_tag_from_version() {
IFS="-" read -r -a version_split <<<"$1"
IFS="." read -r -a version_split <<<"${version_split[1]:-latest}"
echo "${version_split[0]}"
IFS="-" read -r -a version_split <<<"$1"
IFS="." read -r -a version_split <<<"${version_split[1]:-latest}"
echo "${version_split[0]}"
}
dist_tag="$(dist_tag_from_version "$MISE_VERSION")"
platforms=(
linux-x64
linux-x64-musl
linux-arm64
linux-arm64-musl
linux-armv7
linux-armv7-musl
macos-x64
macos-arm64
linux-x64
linux-x64-musl
linux-arm64
linux-arm64-musl
linux-armv7
linux-armv7-musl
macos-x64
macos-arm64
)
for platform in "${platforms[@]}"; do
# shellcheck disable=SC2206
platform_split=(${platform//-/ })
os="${platform_split[0]}"
arch="${platform_split[1]}"
# shellcheck disable=SC2206
platform_split=(${platform//-/ })
os="${platform_split[0]}"
arch="${platform_split[1]}"
if [[ "$os" == "macos" ]]; then
os="darwin"
fi
if [[ $os == "macos" ]]; then
os="darwin"
fi
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz" "$RELEASE_DIR/mise-latest-$platform.tar.gz"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.xz" "$RELEASE_DIR/mise-latest-$platform.tar.xz"
tar -xzvf "$RELEASE_DIR/mise-latest-$platform.tar.gz" -C "$RELEASE_DIR"
rm -rf "$RELEASE_DIR/npm"
mv "$RELEASE_DIR/mise" "$RELEASE_DIR/npm"
cat <<EOF >"$RELEASE_DIR/npm/package.json"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz" "$RELEASE_DIR/mise-latest-$platform.tar.gz"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.xz" "$RELEASE_DIR/mise-latest-$platform.tar.xz"
tar -xzvf "$RELEASE_DIR/mise-latest-$platform.tar.gz" -C "$RELEASE_DIR"
rm -rf "$RELEASE_DIR/npm"
mv "$RELEASE_DIR/mise" "$RELEASE_DIR/npm"
cat <<EOF >"$RELEASE_DIR/npm/package.json"
{
"name": "$NPM_PREFIX-$os-$arch",
"version": "$MISE_VERSION",
@@ -66,16 +66,16 @@ for platform in "${platforms[@]}"; do
"cpu": "$arch"
}
EOF
pushd "$RELEASE_DIR/npm"
tree || true
if [ "$DRY_RUN" != "0" ]; then
echo DRY_RUN
echo npm publish --access public --tag "$dist_tag"
echo DRY_RUN
else
npm publish --access public --tag "$dist_tag" || true
fi
popd
pushd "$RELEASE_DIR/npm"
tree || true
if [ "$DRY_RUN" != "0" ]; then
echo DRY_RUN
echo npm publish --access public --tag "$dist_tag"
echo DRY_RUN
else
npm publish --access public --tag "$dist_tag" || true
fi
popd
done
cat <<EOF >"$RELEASE_DIR/npm/installArchSpecificPackage.js"
@@ -166,10 +166,10 @@ cat <<EOF >"$RELEASE_DIR/npm/package.json"
EOF
pushd "$RELEASE_DIR/npm"
if [ "$DRY_RUN" != "0" ]; then
echo DRY_RUN
echo npm publish --access public --tag "$dist_tag"
echo DRY_RUN
echo DRY_RUN
echo npm publish --access public --tag "$dist_tag"
echo DRY_RUN
else
npm publish --access public --tag "$dist_tag" || true
npm publish --access public --tag "$dist_tag" || true
fi
popd
+34 -34
View File
@@ -14,38 +14,38 @@ mkdir -p "$RELEASE_DIR/$MISE_VERSION"
echo "::group::Build"
platforms=(
linux-x64
linux-x64-musl
linux-arm64
linux-arm64-musl
linux-armv7
linux-armv7-musl
macos-x64
macos-arm64
linux-x64
linux-x64-musl
linux-arm64
linux-arm64-musl
linux-armv7
linux-armv7-musl
macos-x64
macos-arm64
)
for platform in "${platforms[@]}"; do
cp artifacts/*/"mise-$MISE_VERSION-$platform.tar.gz" "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz"
cp artifacts/*/"mise-$MISE_VERSION-$platform.tar.xz" "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.xz"
cp artifacts/*/"mise-$MISE_VERSION-$platform.tar.zst" "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.zst"
zipsign sign tar "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz" ~/.zipsign/mise.priv
zipsign verify tar "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz" "$BASE_DIR/zipsign.pub"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz" "$RELEASE_DIR/mise-latest-$platform.tar.gz"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.xz" "$RELEASE_DIR/mise-latest-$platform.tar.xz"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.zst" "$RELEASE_DIR/mise-latest-$platform.tar.zst"
tar -xvzf "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz"
cp -v mise/bin/mise "$RELEASE_DIR/mise-latest-$platform"
cp -v mise/bin/mise "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform"
cp artifacts/*/"mise-$MISE_VERSION-$platform.tar.gz" "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz"
cp artifacts/*/"mise-$MISE_VERSION-$platform.tar.xz" "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.xz"
cp artifacts/*/"mise-$MISE_VERSION-$platform.tar.zst" "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.zst"
zipsign sign tar "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz" ~/.zipsign/mise.priv
zipsign verify tar "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz" "$BASE_DIR/zipsign.pub"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz" "$RELEASE_DIR/mise-latest-$platform.tar.gz"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.xz" "$RELEASE_DIR/mise-latest-$platform.tar.xz"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.zst" "$RELEASE_DIR/mise-latest-$platform.tar.zst"
tar -xvzf "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.tar.gz"
cp -v mise/bin/mise "$RELEASE_DIR/mise-latest-$platform"
cp -v mise/bin/mise "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform"
done
windows_platforms=(
windows-arm64
windows-x64
windows-arm64
windows-x64
)
for platform in "${windows_platforms[@]}"; do
cp artifacts/*/"mise-$MISE_VERSION-$platform.zip" "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.zip"
zipsign sign zip "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.zip" ~/.zipsign/mise.priv
zipsign verify zip "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.zip" "$BASE_DIR/zipsign.pub"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.zip" "$RELEASE_DIR/mise-latest-$platform.zip"
cp artifacts/*/"mise-$MISE_VERSION-$platform.zip" "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.zip"
zipsign sign zip "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.zip" ~/.zipsign/mise.priv
zipsign verify zip "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.zip" "$BASE_DIR/zipsign.pub"
cp "$RELEASE_DIR/$MISE_VERSION/mise-$MISE_VERSION-$platform.zip" "$RELEASE_DIR/mise-latest-$platform.zip"
done
echo "::group::Checksums"
@@ -82,13 +82,13 @@ curl -L -o "$TMP_FILE" "https://github.com/jdx/mise/archive/refs/tags/$MISE_VERS
gpg --detach-sign -u 8B81C9D17413A06D <"$TMP_FILE" >"$RELEASE_DIR/$MISE_VERSION/$MISE_VERSION.tar.gz.sig"
rm "$TMP_FILE"
if [[ "$DRY_RUN" != 1 ]]; then
echo "::group::Publish npm @jdxcode/mise"
NPM_PREFIX=@jdxcode/mise ./scripts/release-npm.sh
# echo "::group::Publish npm mise-cli"
# NPM_PREFIX=mise-cli ./scripts/release-npm.sh
echo "::group::Publish r2"
./scripts/publish-r2.sh
echo "::group::Publish GitHub releases"
gh release edit --draft=false "$MISE_VERSION"
if [[ $DRY_RUN != 1 ]]; then
echo "::group::Publish npm @jdxcode/mise"
NPM_PREFIX=@jdxcode/mise ./scripts/release-npm.sh
# echo "::group::Publish npm mise-cli"
# NPM_PREFIX=mise-cli ./scripts/release-npm.sh
echo "::group::Publish r2"
./scripts/publish-r2.sh
echo "::group::Publish GitHub releases"
gh release edit --draft=false "$MISE_VERSION"
fi
+18 -18
View File
@@ -3,21 +3,21 @@ set -euxo pipefail
# shellcheck disable=SC2016
MISE_CURRENT_VERSION=$MISE_VERSION \
MISE_CHECKSUM_LINUX_X86_64=$(grep "mise-v.*linux-x64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_X86_64_MUSL=$(grep "mise-v.*linux-x64-musl.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64=$(grep "mise-v.*linux-arm64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64_MUSL=$(grep "mise-v.*linux-arm64-musl.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7=$(grep "mise-v.*linux-armv7.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7_MUSL=$(grep "mise-v.*linux-armv7-musl.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_X86_64=$(grep "mise-v.*macos-x64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_ARM64=$(grep "mise-v.*macos-arm64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_X86_64_ZSTD=$(grep "mise-v.*linux-x64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_X86_64_MUSL_ZSTD=$(grep "mise-v.*linux-x64-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64_ZSTD=$(grep "mise-v.*linux-arm64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64_MUSL_ZSTD=$(grep "mise-v.*linux-arm64-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7_ZSTD=$(grep "mise-v.*linux-armv7.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7_MUSL_ZSTD=$(grep "mise-v.*linux-armv7-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_X86_64_ZSTD=$(grep "mise-v.*macos-x64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_ARM64_ZSTD=$(grep "mise-v.*macos-arm64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
envsubst '$MISE_CURRENT_VERSION,$MISE_CHECKSUM_LINUX_X86_64,$MISE_CHECKSUM_LINUX_X86_64_MUSL,$MISE_CHECKSUM_LINUX_ARM64,$MISE_CHECKSUM_LINUX_ARM64_MUSL,$MISE_CHECKSUM_LINUX_ARMV6,$MISE_CHECKSUM_LINUX_ARMV6_MUSL,$MISE_CHECKSUM_LINUX_ARMV7,$MISE_CHECKSUM_LINUX_ARMV7_MUSL,$MISE_CHECKSUM_MACOS_X86_64,$MISE_CHECKSUM_MACOS_ARM64,$MISE_CHECKSUM_LINUX_X86_64_ZSTD,$MISE_CHECKSUM_LINUX_X86_64_MUSL_ZSTD,$MISE_CHECKSUM_LINUX_ARM64_ZSTD,$MISE_CHECKSUM_LINUX_ARM64_MUSL_ZSTD,$MISE_CHECKSUM_LINUX_ARMV7_ZSTD,$MISE_CHECKSUM_LINUX_ARMV7_MUSL_ZSTD,$MISE_CHECKSUM_MACOS_X86_64_ZSTD,$MISE_CHECKSUM_MACOS_ARM64_ZSTD' \
<"$BASE_DIR/packaging/standalone/install.envsubst"
MISE_CHECKSUM_LINUX_X86_64=$(grep "mise-v.*linux-x64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_X86_64_MUSL=$(grep "mise-v.*linux-x64-musl.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64=$(grep "mise-v.*linux-arm64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64_MUSL=$(grep "mise-v.*linux-arm64-musl.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7=$(grep "mise-v.*linux-armv7.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7_MUSL=$(grep "mise-v.*linux-armv7-musl.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_X86_64=$(grep "mise-v.*macos-x64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_ARM64=$(grep "mise-v.*macos-arm64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_X86_64_ZSTD=$(grep "mise-v.*linux-x64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_X86_64_MUSL_ZSTD=$(grep "mise-v.*linux-x64-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64_ZSTD=$(grep "mise-v.*linux-arm64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64_MUSL_ZSTD=$(grep "mise-v.*linux-arm64-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7_ZSTD=$(grep "mise-v.*linux-armv7.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7_MUSL_ZSTD=$(grep "mise-v.*linux-armv7-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_X86_64_ZSTD=$(grep "mise-v.*macos-x64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_ARM64_ZSTD=$(grep "mise-v.*macos-arm64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
envsubst '$MISE_CURRENT_VERSION,$MISE_CHECKSUM_LINUX_X86_64,$MISE_CHECKSUM_LINUX_X86_64_MUSL,$MISE_CHECKSUM_LINUX_ARM64,$MISE_CHECKSUM_LINUX_ARM64_MUSL,$MISE_CHECKSUM_LINUX_ARMV6,$MISE_CHECKSUM_LINUX_ARMV6_MUSL,$MISE_CHECKSUM_LINUX_ARMV7,$MISE_CHECKSUM_LINUX_ARMV7_MUSL,$MISE_CHECKSUM_MACOS_X86_64,$MISE_CHECKSUM_MACOS_ARM64,$MISE_CHECKSUM_LINUX_X86_64_ZSTD,$MISE_CHECKSUM_LINUX_X86_64_MUSL_ZSTD,$MISE_CHECKSUM_LINUX_ARM64_ZSTD,$MISE_CHECKSUM_LINUX_ARM64_MUSL_ZSTD,$MISE_CHECKSUM_LINUX_ARMV7_ZSTD,$MISE_CHECKSUM_LINUX_ARMV7_MUSL_ZSTD,$MISE_CHECKSUM_MACOS_X86_64_ZSTD,$MISE_CHECKSUM_MACOS_ARM64_ZSTD' \
<"$BASE_DIR/packaging/standalone/install.envsubst"
+3 -3
View File
@@ -2,12 +2,12 @@
set -euxo pipefail
if [ -z "$ZIPSIGN" ]; then
echo "ZIPSIGN is not defined"
exit 0
echo "ZIPSIGN is not defined"
exit 0
fi
if ! command -v zipsign >/dev/null 2>&1; then
cargo install zipsign
cargo install zipsign
fi
mkdir -p ~/.zipsign
+2 -2
View File
@@ -14,7 +14,7 @@ mise x shellcheck -- shellcheck tmp/install.sh
./tmp/install.sh
if [[ ! "$("$HOME/.local/bin/mise" -v)" =~ ^${MISE_VERSION//v/} ]]; then
echo "mise version mismatch"
exit 1
echo "mise version mismatch"
exit 1
fi
rm -rf "$RELEASE_DIR"
+4 -8
View File
@@ -117,6 +117,10 @@ User to run as
- **Usage**: `lint:clippy`
## `lint:hk`
- **Usage**: `lint:hk`
## `lint:markdownlint`
- **Usage**: `lint:markdownlint`
@@ -129,14 +133,6 @@ User to run as
- **Usage**: `lint:ripgrep`
## `lint:shellcheck`
- **Usage**: `lint:shellcheck`
## `lint:shfmt`
- **Usage**: `lint:shfmt`
## `lint:toml`
- **Usage**: `lint:toml`
-7
View File
@@ -1,15 +1,8 @@
#!/usr/bin/env bash
set -euxo pipefail
# Used for shellcheck which needs explicit args
scripts=("$PWD"/scripts/*.sh "$PWD"/e2e/{test_,run_}* "$PWD"/e2e/*.sh)
# Used for shfmt which will run only on files it can
scripts_dirs=("$PWD"/scripts "$PWD"/e2e)
cargo clippy -- -Dwarnings
cargo fmt --all -- --check
shellcheck -x "${scripts[@]}"
shfmt -d -i 2 -ci -bn "${scripts_dirs[@]}"
prettier -c $(git ls-files '*.yml' '*.yaml')
markdownlint .
actionlint
+8 -8
View File
@@ -8,17 +8,17 @@ export AWS_REGION=auto
export AWS_ENDPOINT_URL=https://6e243906ff257b965bcae8025c2fc344.r2.cloudflarestorage.com
if [ "${DRY_RUN:-true}" = "true" ]; then
aws() {
echo "DRY RUN: aws $*"
}
aws() {
echo "DRY RUN: aws $*"
}
fi
if [ $((RANDOM % 30)) -eq 0 ]; then
# delete old assets only roughly 1/30 times
# deleting old assets can break the site for people currently on it
# but it's also good to keep things tidy
aws s3 rm --recursive s3://mise/assets/
aws s3 rm --recursive --exclude "*" --include "*.html" s3://mise/
# delete old assets only roughly 1/30 times
# deleting old assets can break the site for people currently on it
# but it's also good to keep things tidy
aws s3 rm --recursive s3://mise/assets/
aws s3 rm --recursive --exclude "*" --include "*.html" s3://mise/
fi
aws s3 cp --recursive --checksum-algorithm CRC32 .vitepress/dist s3://mise/
+13 -12
View File
@@ -1,22 +1,23 @@
#!/usr/bin/env bash
# shellcheck disable=SC2129
set -euxo pipefail
NODE_FINGERPRINTS=(
"C0D6248439F1D5604AAFFB4021D900FFDB233756" # Antoine du Hamel
"DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7" # Juan José Arboleda
"CC68F5A3106FF448322E48ED27F5E38D5B0A215F" # Marco Ippolito
"8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600" # Michaël Zasso
"890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4" # Rafael Gonzaga
"C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C" # Richard Lau
"108F52B48DB57BB0CC439B2997B01419BD92F80A" # Ruy Adorno
"A363A499291CBBC940DD62E41F10027AF002F8B0" # Ulises Gascón
"C0D6248439F1D5604AAFFB4021D900FFDB233756" # Antoine du Hamel
"DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7" # Juan José Arboleda
"CC68F5A3106FF448322E48ED27F5E38D5B0A215F" # Marco Ippolito
"8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600" # Michaël Zasso
"890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4" # Rafael Gonzaga
"C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C" # Richard Lau
"108F52B48DB57BB0CC439B2997B01419BD92F80A" # Ruy Adorno
"A363A499291CBBC940DD62E41F10027AF002F8B0" # Ulises Gascón
)
rm -rf src/assets/gpg
mkdir -p src/assets/gpg
for fingerprint in "${NODE_FINGERPRINTS[@]}"; do
curl -fLSs "https://keys.openpgp.org/vks/v1/by-fingerprint/$fingerprint" >> "src/assets/gpg/node.asc"
curl -fLSs "https://keys.openpgp.org/vks/v1/by-fingerprint/$fingerprint" >>"src/assets/gpg/node.asc"
done
curl -fLSs "https://swift.org/keys/automatic-signing-key-4.asc" >> src/assets/gpg/swift.asc
curl -fLSs "https://swift.org/keys/release-key-swift-5.x.asc" >> src/assets/gpg/swift.asc
curl -fLSs "https://swift.org/keys/release-key-swift-6.x.asc" >> src/assets/gpg/swift.asc
curl -fLSs "https://swift.org/keys/automatic-signing-key-4.asc" >>src/assets/gpg/swift.asc
curl -fLSs "https://swift.org/keys/release-key-swift-5.x.asc" >>src/assets/gpg/swift.asc
curl -fLSs "https://swift.org/keys/release-key-swift-6.x.asc" >>src/assets/gpg/swift.asc
-9
View File
@@ -3,15 +3,6 @@
#MISE wait_for=["render:settings"]
set -euxo pipefail
# Used for shellcheck which needs explicit args
scripts=("$PWD"/scripts/*.sh "$PWD"/e2e/{test_,run_}* "$PWD"/e2e/*.sh)
# Used for shfmt which will run only on files it can
scripts_dirs=("$PWD"/scripts "$PWD"/e2e)
shellcheck -x "${scripts[@]}"
shfmt -w -i 2 -ci -bn "${scripts_dirs[@]}"
# shellcheck disable=SC2046
prettier -w $(git ls-files '*.yml' '*.yaml')
prettier -w .
markdownlint --fix .
taplo fmt
SHELLCHECK_OPTS="--exclude=SC1090 --exclude=SC2046" actionlint
+3 -3
View File
@@ -2,8 +2,8 @@
#MISE wait_for=["build"]
set -euo pipefail
if [[ "${MISE_PRE_COMMIT:-}" == 1 ]]; then
cargo check -q --all-features
if [[ ${MISE_PRE_COMMIT:-} == 1 ]]; then
cargo check -q --all-features
else
cargo clippy --all-features -- -Dwarnings
cargo clippy --all-features -- -Dwarnings
fi
Executable
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
#MISE wait_for=["build"]
HK_FAIL_FAST=0 exec hk check --all
-4
View File
@@ -1,4 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
shellcheck -x "$PWD"{/scripts,/e2e}/*.sh "$PWD"/e2e/{test_,run_}*
-4
View File
@@ -1,4 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
shfmt -d -i 2 -ci -bn "$PWD"/{e2e,scripts}
+23 -23
View File
@@ -6,14 +6,14 @@ git config user.email release@mise.jdx.dev
cur_version="$(cargo pkgid mise | cut -d# -f2)"
if ! curl https://crates.io/api/v1/crates/mise | jq -r '.versions[0].num' | grep -q "$cur_version"; then
echo "Releasing $cur_version"
cargo publish
changelog="$(git cliff --tag "v$cur_version" --strip all --unreleased)"
changelog="$(echo "$changelog" | tail -n +3)"
git tag "v$cur_version" -s -m "$changelog"
git push --tags
gh release create "v$cur_version" --title "v$cur_version" --notes "$changelog" --draft
exit 0
echo "Releasing $cur_version"
cargo publish
changelog="$(git cliff --tag "v$cur_version" --strip all --unreleased)"
changelog="$(echo "$changelog" | tail -n +3)"
git tag "v$cur_version" -s -m "$changelog"
git push --tags
gh release create "v$cur_version" --title "v$cur_version" --notes "$changelog" --draft
exit 0
fi
git submodule update --remote
@@ -21,11 +21,11 @@ git submodule update --remote
year="$(date +%Y)"
month="$(date +%-m)"
if echo "$cur_version" | grep -e "^$year\.$month\."; then
cargo set-version --bump patch
cargo set-version --bump patch
elif echo "$cur_version" | grep -e "^$year\."; then
cargo set-version --bump minor
cargo set-version --bump minor
else
cargo set-version "$year.1.0"
cargo set-version "$year.1.0"
fi
version="$(cargo pkgid mise | cut -d# -f2)"
@@ -41,23 +41,23 @@ mise run render ::: lint-fix
mise up
#cargo update
git add \
Cargo.lock \
Cargo.toml \
CHANGELOG.md \
README.md \
aqua-registry \
default.nix \
packaging/rpm/mise.spec \
mise.usage.kdl \
completions \
man/
Cargo.lock \
Cargo.toml \
CHANGELOG.md \
README.md \
aqua-registry \
default.nix \
packaging/rpm/mise.spec \
mise.usage.kdl \
completions \
man/
git clean -df
git checkout -B release
git commit -m "chore: release $version"
git push origin release --force
if [[ "$(gh pr list --label release)" == "" ]]; then
gh pr create --title "chore: release $version" --body "$changelog" --label "release" --head release
gh pr create --title "chore: release $version" --body "$changelog" --label "release" --head release
else
gh pr edit --title "chore: release $version" --body "$changelog"
gh pr edit --title "chore: release $version" --body "$changelog"
fi
+1 -1
View File
@@ -4,7 +4,7 @@ set -euo pipefail
output=$("$@" 2>&1)
status=$?
if ((status)); then
echo "$output" >&2
echo "$output" >&2
fi
exit $status
+1 -1
View File
@@ -5,7 +5,7 @@ echo "::group::Setup"
set -euxo pipefail
# shellcheck disable=SC1090
if [[ -n ${MISE_GITHUB_BOT_TOKEN:-} ]]; then
export GITHUB_API_TOKEN="$MISE_GITHUB_BOT_TOKEN"
export GITHUB_API_TOKEN="$MISE_GITHUB_BOT_TOKEN"
fi
export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-$PWD/target}"
export PATH="${CARGO_TARGET_DIR}/debug:$PATH"
+12 -12
View File
@@ -6,17 +6,17 @@ set -euo pipefail
export RUST_TEST_THREADS=1
if [[ "${1:-all}" == all ]]; then
./e2e/run_all_tests
if [[ ${1:-all} == all ]]; then
./e2e/run_all_tests
else
pushd e2e
FILES="$(fd -tf "$1" --and "^test_")"
popd
if [[ -z $FILES ]]; then
echo "Not test matches $1" >&2
exit 1
fi
for FILE in $FILES; do
./e2e/run_test "$FILE"
done
pushd e2e
FILES="$(fd -tf "$1" --and "^test_")"
popd
if [[ -z $FILES ]]; then
echo "Not test matches $1" >&2
exit 1
fi
for FILE in $FILES; do
./e2e/run_test "$FILE"
done
fi
+5 -5
View File
@@ -2,9 +2,9 @@
set -euxo pipefail
for tool in $(mise registry | awk '{print $1}'); do
description="$(mise tool --description "$tool")"
if [ "$description" != "[none]" ]; then
toml set registry.toml "tools.$tool.description" "$description" > registry.toml.tmp
mv registry.toml.tmp registry.toml
fi
description="$(mise tool --description "$tool")"
if [ "$description" != "[none]" ]; then
toml set registry.toml "tools.$tool.description" "$description" >registry.toml.tmp
mv registry.toml.tmp registry.toml
fi
done