lint: add editorconfig-checker for whitespace and newline checks

Add a root .editorconfig enforcing trim_trailing_whitespace and
insert_final_newline, with editorconfig-checker to verify compliance.
Fix all existing violations and update autostart tests to match
the corrected template files.

Fixes #4581

Signed-off-by: Jan Dubois <jan.dubois@suse.com>
This commit is contained in:
Jan Dubois committed 2026-02-21 00:34:26 -08:00
1 parent 86ce87b08f
commit 788a2f3010
62 files changed
+166 -123

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
root = true
[*]
trim_trailing_whitespace = true
insert_final_newline = true
# Protobuf descriptors are binary files
[*.pb.desc]
insert_final_newline = unset
trim_trailing_whitespace = unset
+2
View File
@@ -37,6 +37,8 @@ jobs:
make install-protoc-tools
- name: Verify generated files
run: make generate check-generated
- name: Run editorconfig-checker
run: go tool -modfile=./hack/tools/go.mod editorconfig-checker
- name: Run yamllint
run: yamllint .
- name: Install shellcheck
+1
View File
@@ -576,6 +576,7 @@ bats: native limactl-plugins
.PHONY: lint
lint: check-generated
editorconfig-checker
golangci-lint run ./...
yamllint .
ls-lint
+1 -1
View File
@@ -3,4 +3,4 @@
The extra tests located in this directory are not automatically executed via `make bats`.
Some tests are executed on the CI, some ones are not.
Refer to the configuration of the GitHub Actions to see what tests are executed.
Refer to the configuration of the GitHub Actions to see what tests are executed.
+1 -1
View File
@@ -306,7 +306,7 @@ tools_call() {
}
@test 'glob returns an empty list when the pattern does not match' {
tools_call glob '{"pattern":"nothing.to.see"}'
run_yq '.structuredContent.matches[]' <<<"$output"
+1 -1
View File
@@ -31,4 +31,4 @@ local_teardown_file() {
run limactl shell "$NAME" -- ls -ld /home/"${USER}.linux/.ssh"
assert_success
}
}
+6 -6
View File
@@ -123,12 +123,12 @@ local_setup() {
export BARBAZ=barbaz
export LD_UID=randomuid
run -0 limactl shell --preserve-env "$NAME" printenv
assert_line SSH_FOO=ssh_foo
assert_line BAR=bar
assert_line BARBAZ=barbaz
assert_line LD_UID=randomuid
refute_line --regexp '^SSH_BAR='
refute_line --regexp '^SSH_BLOCK='
}
@@ -145,11 +145,11 @@ local_setup() {
export NORMAL_VAR=normal_var
export UNRELATED=unrelated
run -0 limactl shell --preserve-env "$NAME" printenv
refute_line --regexp '^FOOBAR='
refute_line --regexp '^FOOXYZBAR='
refute_line --regexp '^FOOXYZBAR='
refute_line --regexp '^XFOOYBARZDOTCOM='
assert_line FOOBAZ=foobaz
assert_line NORMAL_VAR=normal_var
assert_line UNRELATED=unrelated
@@ -167,7 +167,7 @@ local_setup() {
export MY_TOKEN=my_token
export UNRELATED=unrelated
run -0 limactl shell --preserve-env "$NAME" printenv
assert_line SSH_AUTH_SOCK=ssh_auth_sock
assert_line SSH_CONNECTION=ssh_connection
assert_line CUSTOM_VAR=custom_var
+21 -21
View File
@@ -40,7 +40,7 @@ setup() {
mkdir -p "$TEST_SYNC_DIR"
touch "$TEST_SYNC_DIR/foo.txt"
touch "$TEST_SYNC_DIR/bar.txt"
# Create a simple script that makes changes to these files
cat > "$TEST_SYNC_DIR/modify.sh" << 'EOF'
#!/bin/sh
@@ -60,13 +60,13 @@ teardown() {
@test 'shell --sync preserves working directory path from host to guest' {
cd "$TEST_SYNC_DIR"
# Get path of the TEST_SYNC_DIR for verification
local path_test_dir
path_test_dir="$PWD"
run -0 bash -c "limactl shell --sync . --yes '$NAME' pwd && ./modify.sh"
# Verify the guest working directory matches the host path structure
assert_output --regexp ".*${path_test_dir#/}"
@@ -83,13 +83,13 @@ teardown() {
mkdir -p "$special_dir"
mv "$TEST_SYNC_DIR" "$special_dir"
cd "$special_dir/sync-test"
# Count files before sync
local files_before
files_before=$(find . -type f | wc -l)
run -0 bash -c "limactl shell --sync . --yes '$NAME' ./modify.sh"
# Verify files were modified
run cat "$special_dir/sync-test/foo.txt"
assert_output "modified foo"
@@ -100,22 +100,22 @@ teardown() {
local files_after
files_after=$(find "$special_dir/sync-test" -type f | wc -l)
[[ $files_after -eq $files_before ]]
# Cleanup
rm -rf "$special_dir"
}
@test 'shell --sync reflects file deletion from guest to host' {
cd "$TEST_SYNC_DIR"
run -0 bash -c "limactl shell --sync . --yes '$NAME' rm -f foo.txt"
assert_file_not_exists "$TEST_SYNC_DIR/foo.txt"
assert_file_not_exists "$TEST_SYNC_DIR/foo.txt"
}
@test 'shell --sync reflects new directory and file creation from guest to host' {
cd "$TEST_SYNC_DIR"
# Create a script that creates a new directory with a file
cat > "$TEST_SYNC_DIR/create_new.sh" << 'EOF'
#!/bin/sh
@@ -124,13 +124,13 @@ mkdir -p new_directory
echo "foo bar baz" > new_directory/new_file.txt
EOF
chmod +x "$TEST_SYNC_DIR/create_new.sh"
run -0 bash -c "limactl shell --sync . --yes '$NAME' ./create_new.sh && ./modify.sh"
# Verify new directory was created on host
assert_dir_exists "$TEST_SYNC_DIR/new_directory"
assert_file_exists "$TEST_SYNC_DIR/new_directory/new_file.txt"
# Verify file content
run cat "$TEST_SYNC_DIR/new_directory/new_file.txt"
assert_output "foo bar baz"
@@ -142,14 +142,14 @@ EOF
@test 'shell --sync preserves file permissions' {
cd "$TEST_SYNC_DIR"
# Create a file with specific permissions
touch "$TEST_SYNC_DIR/executable.sh"
chmod 755 "$TEST_SYNC_DIR/executable.sh"
# Modify the file in guest
run -0 bash -c "limactl shell --sync . --yes '$NAME' ./modify.sh"
# Verify file is still executable on host
if [[ "$OSTYPE" == darwin* ]]; then
run stat -f '%A' "$TEST_SYNC_DIR/executable.sh"
@@ -167,18 +167,18 @@ EOF
@test 'shell --sync works without existing ControlMaster socket' {
cd "$TEST_SYNC_DIR"
# Remove the ControlMaster socket
local sock_path="$LIMA_HOME/$NAME/ssh.sock"
if [[ -S "$sock_path" ]]; then
rm "$sock_path"
fi
run -0 bash -c "limactl shell --sync . --yes '$NAME' ./modify.sh"
# Verify files were modified
run cat "$TEST_SYNC_DIR/foo.txt"
assert_output "modified foo"
run cat "$TEST_SYNC_DIR/bar.txt"
assert_output "modified bar"
}
}
+2 -2
View File
@@ -123,7 +123,7 @@ while (<DATA>) {
/^(forward|ignore):\s+([0-9.:]+)\s+(\d+)(?:\s+→)?(?:\s+(?:([0-9.:]+)(?:\s+(\d+))|(\S+))?)?/;
die "Cannot parse test '$_'" unless $1;
my %test; @test{qw(mode guest_ip guest_port host_ip host_port host_socket)} = ($1, $2, $3, $4, $5, $6);
$test{host_ip} ||= "127.0.0.1";
$test{host_port} ||= $test{guest_port};
$test{host_socket} ||= "";
@@ -300,7 +300,7 @@ if (%failed_to_listen_tcp) {
foreach (keys %failed_to_listen_tcp) {
print "⚠️ $failed_to_listen_tcp{$_}\n";
}
my @tcp_list = keys %failed_to_listen_tcp;
my @tcp_list = keys %failed_to_listen_tcp;
if ($Config{osname} eq "darwin") {
my @lsof_args = map { "-iTCP\@$_" } @tcp_list;
print `lsof -P @lsof_args`;
+5
View File
@@ -5,6 +5,7 @@ go 1.25.0
// Should be in sync with pinversion.go
tool (
github.com/containerd/ltag
github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker
github.com/golangci/golangci-lint/v2/cmd/golangci-lint
github.com/yoheimuta/protolint/cmd/protolint
google.golang.org/grpc/cmd/protoc-gen-go-grpc
@@ -76,12 +77,15 @@ require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/denis-tingaikin/go-header v0.5.0 // indirect
github.com/dlclark/regexp2 v1.11.5 // indirect
github.com/editorconfig-checker/editorconfig-checker/v3 v3.6.1 // indirect
github.com/editorconfig/editorconfig-core-go/v2 v2.6.4 // indirect
github.com/ettle/strcase v0.2.0 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/fatih/structtag v1.2.0 // indirect
github.com/firefart/nonamedreturns v1.0.6 // indirect
github.com/fsnotify/fsnotify v1.5.4 // indirect
github.com/fzipp/gocyclo v0.6.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.12 // indirect
github.com/gertd/go-pluralize v0.2.1 // indirect
github.com/ghostiam/protogetter v0.3.20 // indirect
github.com/go-critic/go-critic v0.14.3 // indirect
@@ -209,6 +213,7 @@ require (
github.com/ultraware/whitespace v0.2.0 // indirect
github.com/uudashr/gocognit v1.2.0 // indirect
github.com/uudashr/iface v1.4.1 // indirect
github.com/wlynxg/chardet v1.0.4 // indirect
github.com/xen0n/gosmopolitan v1.3.0 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/yagipy/maintidx v1.0.0 // indirect
+26 -2
View File
@@ -168,6 +168,10 @@ github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42
github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY=
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/editorconfig-checker/editorconfig-checker/v3 v3.6.1 h1:jdfYul8o1YpAb0tjNBcfJsVFwTn1s4qis4ec5Feuhhs=
github.com/editorconfig-checker/editorconfig-checker/v3 v3.6.1/go.mod h1:3M/pJVyyr63yWjRWOFpPqKNAzj6JaE/I/+dNDfgN+3I=
github.com/editorconfig/editorconfig-core-go/v2 v2.6.4 h1:CHwUbBVVyKWRX9kt5A/OtwhYUJB32DrFp9xzmjR6cac=
github.com/editorconfig/editorconfig-core-go/v2 v2.6.4/go.mod h1:JWRVKHdVW+dkv6F8p+xGCa6a+TyMrqsFbFkSs/aQkrQ=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
@@ -187,10 +191,16 @@ github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwV
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo=
github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA=
github.com/gabriel-vasile/mimetype v1.4.12 h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw=
github.com/gabriel-vasile/mimetype v1.4.12/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
github.com/gertd/go-pluralize v0.2.1 h1:M3uASbVjMnTsPb0PNqg+E/24Vwigyo/tvyMTtAlLgiA=
github.com/gertd/go-pluralize v0.2.1/go.mod h1:rbYaKDbsXxmRfr8uygAEKhOWsjyrrqrkHVpZvoOp8zk=
github.com/ghostiam/protogetter v0.3.20 h1:oW7OPFit2FxZOpmMRPP9FffU4uUpfeE/rEdE1f+MzD0=
github.com/ghostiam/protogetter v0.3.20/go.mod h1:FjIu5Yfs6FT391m+Fjp3fbAYJ6rkL/J6ySpZBfnODuI=
github.com/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs=
github.com/gkampitakis/ciinfo v0.3.2/go.mod h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo=
github.com/gkampitakis/go-snaps v0.5.19 h1:hUJlCQOpTt1M+kSisMwioDWZDWpDtdAvUhvWCx1YGW0=
github.com/gkampitakis/go-snaps v0.5.19/go.mod h1:gC3YqxQTPyIXvQrw/Vpt3a8VqR1MO8sVpZFWN4DGwNs=
github.com/go-critic/go-critic v0.14.3 h1:5R1qH2iFeo4I/RJU8vTezdqs08Egi4u5p6vOESA0pog=
github.com/go-critic/go-critic v0.14.3/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
@@ -236,6 +246,8 @@ github.com/go-xmlfmt/xmlfmt v1.1.3 h1:t8Ey3Uy7jDSEisW2K3somuMKIpzktkWptA0iFCnRUW
github.com/go-xmlfmt/xmlfmt v1.1.3/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
github.com/godoc-lint/godoc-lint v0.11.2 h1:Bp0FkJWoSdNsBikdNgIcgtaoo+xz6I/Y9s5WSBQUeeM=
github.com/godoc-lint/godoc-lint v0.11.2/go.mod h1:iVpGdL1JCikNH2gGeAn3Hh+AgN5Gx/I/cxV+91L41jo=
github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw=
@@ -434,6 +446,8 @@ github.com/maratori/testableexamples v1.0.1 h1:HfOQXs+XgfeRBJ+Wz0XfH+FHnoY9TVqL6
github.com/maratori/testableexamples v1.0.1/go.mod h1:XE2F/nQs7B9N08JgyRmdGjYVGqxWwClLPCGSQhXQSrQ=
github.com/maratori/testpackage v1.1.2 h1:ffDSh+AgqluCLMXhM19f/cpvQAKygKAJXFl9aUjmbqs=
github.com/maratori/testpackage v1.1.2/go.mod h1:8F24GdVDFW5Ew43Et02jamrVMNXLUNaOynhDssITGfc=
github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo=
github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg=
github.com/matoous/godox v1.1.0 h1:W5mqwbyWrwZv6OQ5Z1a/DHGMOvXYCBP3+Ht7KMoJhq4=
github.com/matoous/godox v1.1.0/go.mod h1:jgE/3fUXiTurkdHOLT5WEkThTSuE7yxHv5iWPa80afs=
github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE=
@@ -552,8 +566,8 @@ github.com/sashamelentyev/usestdlibvars v1.29.0 h1:8J0MoRrw4/NAXtjQqTHrbW9NN+3iM
github.com/sashamelentyev/usestdlibvars v1.29.0/go.mod h1:8PpnjHMk5VdeWlVb4wCdrB8PNbLqZ3wBZTZWkrpZZL8=
github.com/securego/gosec/v2 v2.23.0 h1:h4TtF64qFzvnkqvsHC/knT7YC5fqyOCItlVR8+ptEBo=
github.com/securego/gosec/v2 v2.23.0/go.mod h1:qRHEgXLFuYUDkI2T7W7NJAmOkxVhkR0x9xyHOIcMNZ0=
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
@@ -608,6 +622,14 @@ github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpR
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=
github.com/tetafro/godot v1.5.4 h1:u1ww+gqpRLiIA16yF2PV1CV1n/X3zhyezbNXC3E14Sg=
github.com/tetafro/godot v1.5.4/go.mod h1:eOkMrVQurDui411nBY2FA05EYH01r14LuWY/NrVDVcU=
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY=
github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 h1:9LPGD+jzxMlnk5r6+hJnar67cgpDIz/iyD+rfl5r2Vk=
github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460=
github.com/timonwong/loggercheck v0.11.0 h1:jdaMpYBl+Uq9mWPXv1r8jc5fC3gyXx4/WGwTnnNKn4M=
@@ -624,6 +646,8 @@ github.com/uudashr/gocognit v1.2.0 h1:3BU9aMr1xbhPlvJLSydKwdLN3tEUUrzPSSM8S4hDYR
github.com/uudashr/gocognit v1.2.0/go.mod h1:k/DdKPI6XBZO1q7HgoV2juESI2/Ofj9AcHPZhBBdrTU=
github.com/uudashr/iface v1.4.1 h1:J16Xl1wyNX9ofhpHmQ9h9gk5rnv2A6lX/2+APLTo0zU=
github.com/uudashr/iface v1.4.1/go.mod h1:pbeBPlbuU2qkNDn0mmfrxP2X+wjPMIQAy+r1MBXSXtg=
github.com/wlynxg/chardet v1.0.4 h1:hkI71Dx8v3RiAz3XKV5lJEh9QfKo7xXKUmYJQeIMlpo=
github.com/wlynxg/chardet v1.0.4/go.mod h1:HLQMNsa0w4MkH2e7waQaFD+Yh85riFFTLhFtP8fsdbQ=
github.com/xen0n/gosmopolitan v1.3.0 h1:zAZI1zefvo7gcpbCOrPSHJZJYA9ZgLfJqtKzZ5pHqQM=
github.com/xen0n/gosmopolitan v1.3.0/go.mod h1:rckfr5T6o4lBtM1ga7mLGKZmLxswUoH1zxHgNXOsEt4=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
+1 -1
View File
@@ -32,7 +32,7 @@ Description:
https://kitten.repo.almalinux.org/<major version>-kitten/cloud/<arch>/images/
To parsing html, this script requires 'htmlq' or 'pup' command.
To parsing html, this script requires 'htmlq' or 'pup' command.
The downloaded files will be cached in the Lima cache directory.
Examples:
+1 -1
View File
@@ -32,7 +32,7 @@ Description:
https://repo.almalinux.org/almalinux/<major version>/cloud/<arch>/images/
To parsing html, this script requires 'htmlq' or 'pup' command.
To parsing html, this script requires 'htmlq' or 'pup' command.
The downloaded files will be cached in the Lima cache directory.
Examples:
+1 -1
View File
@@ -30,7 +30,7 @@ Description:
latest-stable: https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/cloud
<major>.<minor>: https://dl-cdn.alpinelinux.org/alpine/v<major>.<minor>/releases/cloud
To parsing html, this script requires 'htmlq' or 'pup' command.
To parsing html, this script requires 'htmlq' or 'pup' command.
The downloaded files will be cached in the Lima cache directory.
Examples:
+2 -2
View File
@@ -30,10 +30,10 @@ Description:
x86_64:
listing: https://gitlab.archlinux.org/api/v4/projects/archlinux%2Farch-boxes/packages
details: https://gitlab.archlinux.org/api/v4/projects/archlinux%2Farch-boxes/packages/:package_id/package_files
aarch64:
https://github.com/mcginty/arch-boxes-arm/releases/
Using 'gh' CLI tool for fetching the latest release from GitHub.
Examples:
+2 -2
View File
@@ -29,7 +29,7 @@ Description:
https://cloud.centos.org/centos/<major version>-stream/<arch>/images/
To parsing html, this script requires 'htmlq' or 'pup' command.
To parsing html, this script requires 'htmlq' or 'pup' command.
The downloaded files will be cached in the Lima cache directory.
Examples:
@@ -104,7 +104,7 @@ function centos_latest_image_entry_for_url_spec() {
fi
latest_info=$(jq -e -Rrs --argjson spec "${url_spec}" '
[
split("\n").[] |
split("\n").[] |
capture(
"^CentOS-Stream-\($spec.target_vendor)-\($spec.version)-(?<date_and_ci_job_id>\\d{8}\\.\\d+)\\.\($spec.arch)\\.\($spec.file_extension)$"
;"x"
+3 -3
View File
@@ -31,7 +31,7 @@ Description:
<major>.<minor>: https://download.opensuse.org/distribution/leap/<major>.<minor>/appliances/?jsontable
current: https://download.opensuse.org/distribution/openSUSE-current/appliances/?jsontable
stable: https://download.opensuse.org/distribution/openSUSE-stable/appliances/?jsontable
Tumbleweed:
x86_64: https://download.opensuse.org/tumbleweed/appliances/?jsontable
not x86_64: https://download.opensuse.org/ports/<arch>/tumbleweed/appliances/?jsontable
@@ -51,7 +51,7 @@ Examples:
$ limactl factory-reset opensuse
Flags:
--version-major-minor (<major>.<minor>|current|stable|tumbleweed) Use the specified <major>.<minor> version or
--version-major-minor (<major>.<minor>|current|stable|tumbleweed) Use the specified <major>.<minor> version or
aliases "current", "stable", or "tumbleweed".
The <major>.<minor> version must be 15.0 or later.
--version-major <major> --version-minor <minor> Use the specified <major> and <minor> version.
@@ -72,7 +72,7 @@ function opensuse_url_spec_from_location() {
)/appliances/
openSUSE-(?<version>Leap-\\d+\\.\\d+|Tumbleweed)-Minimal-VM
\\.(?<arch>[^-]+)(?<major_minor_patch>-\\d+\\.\\d+\\.\\d+)?-(?<target_vendor>.*)(?<build_info>-Build\\d+\\.\\d+)?\\.(?<file_extension>.*)$
";"x") |
";"x") |
.path_version = (.path_version_leap // .path_version_leap_alias // .path_version_tumbleweed)
'
url_spec=$(jq -e -r "${jq_filter}" <<<"\"${location}\"")
+1 -1
View File
@@ -30,7 +30,7 @@ Description:
OL8:
x86_64: https://yum.oracle.com/templates/OracleLinux/ol8-template.json
aarch64: https://yum.oracle.com/templates/OracleLinux/ol8_aarch64-cloud-template.json
OL9:
x86_64: https://yum.oracle.com/templates/OracleLinux/ol9-template.json
aarch64: https://yum.oracle.com/templates/OracleLinux/ol9_aarch64-cloud-template.json
+1 -1
View File
@@ -32,7 +32,7 @@ Description:
https://dl.rockylinux.org/pub/rocky/<major version>/images/<arch>/
To parsing html, this script requires 'htmlq' or 'pup' command.
To parsing html, this script requires 'htmlq' or 'pup' command.
The downloaded files will be cached in the Lima cache directory.
Examples:
+1 -1
View File
@@ -133,7 +133,7 @@ function ubuntu_image_url_release() {
jq_filter="
[
.products | to_entries[] as \$product_entry |
\$product_entry.value| select(.version == \"${version}\") |
\$product_entry.value| select(.version == \"${version}\") |
.release
] | first
"
+4 -2
View File
@@ -72,7 +72,8 @@ func TestRenderTemplate(t *testing.T) {
<key>ProcessType</key>
<string>Background</string>
</dict>
</plist>`,
</plist>
`,
GetExecutable: func() (string, error) {
return "/limactl", nil
},
@@ -94,7 +95,8 @@ TimeoutSec=10
Restart=on-failure
[Install]
WantedBy=default.target`,
WantedBy=default.target
`,
GetExecutable: func() (string, error) {
return "/limactl", nil
},
@@ -22,4 +22,4 @@
<key>ProcessType</key>
<string>Background</string>
</dict>
</plist>
</plist>
@@ -10,4 +10,4 @@ TimeoutSec=10
Restart=on-failure
[Install]
WantedBy=default.target
WantedBy=default.target
@@ -15,7 +15,7 @@ if [ "${LIMA_CIDATA_NAME}" = "default" ] && command -v patch >/dev/null 2>&1 &&
patch --forward -r - "${LIMA_CIDATA_HOME}/.bashrc" <<'EOF'
@@ -37,7 +37,11 @@
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
- xterm-color|*-256color) color_prompt=yes;;
@@ -25,12 +25,12 @@ if [ "${LIMA_CIDATA_NAME}" = "default" ] && command -v patch >/dev/null 2>&1 &&
+case "$COLORTERM" in
+ truecolor) color_prompt=true;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
@@ -56,7 +60,12 @@
fi
fi
-if [ "$color_prompt" = yes ]; then
+# Lima PS1: set color to lime green
+if [ "$color_prompt" = true ]; then
+3 -3
View File
@@ -47,9 +47,9 @@ message InfoResponse{
}
// StartResponse is a streamed response for Start() RPC. It tries to mimic
// errChan from pkg/driver/driver.go. The server sends an initial response
// with success=true when Start() is initiated. If errors occur, they are
// sent as success=false with the error field populated. When the error channel
// errChan from pkg/driver/driver.go. The server sends an initial response
// with success=true when Start() is initiated. If errors occur, they are
// sent as success=false with the error field populated. When the error channel
// closes, a final success=true message is sent.
message StartResponse {
bool success = 1;
+2 -3
View File
@@ -166,9 +166,8 @@ vmOpts:
rosetta:
binfmt: false
enabled: true
message: |
Rosetta is enabled in this VM, so you can run x86_64 containers on Apple Silicon.
message: |` + "\n \n" + // goccy/go-yaml indents blank lines in block scalars
` Rosetta is enabled in this VM, so you can run x86_64 containers on Apple Silicon.
`
var y limatype.LimaYAML
err := Unmarshal([]byte(text), &y, "lima.yaml")
+1 -1
View File
@@ -9,4 +9,4 @@
<key>com.apple.security.virtualization</key>
<true/>
</dict>
</plist>
</plist>
+1 -1
View File
@@ -1,3 +1,3 @@
# The source of the Lima website (https://lima-vm.io)
This directory is the [Netlify base directory](https://docs.netlify.com/configure-builds/overview/) of [https://lima-vm.io](https://lima-vm.io/) .
This directory is the [Netlify base directory](https://docs.netlify.com/configure-builds/overview/) of [https://lima-vm.io](https://lima-vm.io/) .
+1 -1
View File
@@ -51,4 +51,4 @@ $td-sidebar-tree-root-color: #222 !default;
.td-search__icon {
color: $secondary !important;
}
}
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: "Lima: Linux Machines"
title: "Lima: Linux Machines"
linkTitle: Documentation
menu: {main: {weight: 20}}
weight: 20
+1 -1
View File
@@ -8,4 +8,4 @@ There are two kinds of scenario to use Lima with AI:
- [AI agents inside Lima](./inside): running an AI agent **inside** a VM
- [AI agents outside Lima](./outside): calling Lima's MCP tools from an AI agent running **outside** a VM
<!-- TODO: add a comparison table -->
<!-- TODO: add a comparison table -->
@@ -4,4 +4,4 @@ weight: 10
---
Starting with Lima v2.0, Lima provides Model Context Protocol (MCP) tools
for reading, writing, and executing local files using a VM sandbox.
for reading, writing, and executing local files using a VM sandbox.
+2 -2
View File
@@ -6,7 +6,7 @@ This guide explains how to increase the disk size of a Lima VM when you've run o
## Resize Disk Using limactl
Starting with v1.1, Lima supports editing the disk size of an existing instance using the `--disk` flag with the `limactl edit` command.
Starting with v1.1, Lima supports editing the disk size of an existing instance using the `--disk` flag with the `limactl edit` command.
This is the recommended and simplest way to resize your VM disk.
```sh
@@ -19,6 +19,6 @@ Example for 20GB:
limactl edit default --disk 20
```
> **Note:**
> **Note:**
> - Increasing disk size is supported, but shrinking disks is not recommended.
> - The instance may need to be stopped before editing disk size.
@@ -21,7 +21,7 @@ This page documents the environment variables used in Lima.
- **Description**: Specifies the name of the Lima instance to use.
- **Default**: `default`
- **Usage**:
- **Usage**:
```sh
export LIMA_INSTANCE=my-instance
lima uname -a
@@ -31,7 +31,7 @@ This page documents the environment variables used in Lima.
- **Description**: Specifies the shell interpreter to use inside the Lima instance.
- **Default**: User's shell configured inside the instance
- **Usage**:
- **Usage**:
```sh
export LIMA_SHELL=/bin/bash
lima
@@ -51,7 +51,7 @@ This page documents the environment variables used in Lima.
- **Description**: Specifies the initial working directory inside the Lima instance.
- **Default**: Current directory from the host
- **Usage**:
- **Usage**:
```sh
export LIMA_WORKDIR=/home/user/project
lima
@@ -83,13 +83,13 @@ This page documents the environment variables used in Lima.
- SSH/security: `SSH_*`
- Dynamic linker: `DYLD_*`, `LD_*`
- Internal variables: `_*` (variables starting with underscore)
See [`GetDefaultBlockList()`](https://github.com/lima-vm/lima/blob/master/pkg/envutil/envutil.go#L133) for the complete list.
- **Usage**:
```sh
# Replace default block list entirely (not recommended)
export LIMA_SHELLENV_BLOCK="SECRET_*,PRIVATE_*"
# Extend default block list (recommended)
export LIMA_SHELLENV_BLOCK="+SECRET_*,PRIVATE_*"
limactl shell --preserve-env default
@@ -100,7 +100,7 @@ This page documents the environment variables used in Lima.
- **Description**: Specifies the path to the `limactl` binary.
- **Default**: `limactl` in `$PATH`
- **Usage**:
- **Usage**:
```sh
export LIMACTL=/usr/local/bin/limactl
lima
@@ -109,7 +109,7 @@ This page documents the environment variables used in Lima.
### `LIMA_SSH_OVER_VSOCK`
- **Description**: Specifies to use vsock for SSH connection instead of port forwarding.
- **Default**: `true` (since v2.0.0)
- **Usage**:
- **Usage**:
```sh
export LIMA_SSH_OVER_VSOCK=true
```
@@ -120,7 +120,7 @@ This page documents the environment variables used in Lima.
- **Description**: Specifies to use the SSH port forwarder (slow) instead of gRPC (fast, previously unstable)
- **Default**: `false` (since v1.1.0)
- **Usage**:
- **Usage**:
```sh
export LIMA_SSH_PORT_FORWARDER=false
```
@@ -136,7 +136,7 @@ This page documents the environment variables used in Lima.
- **Description**: Specifies the timeout duration for resolving the IP address in usernet.
- **Default**: 2 minutes
- **Usage**:
- **Usage**:
```sh
export LIMA_USERNET_RESOLVE_IP_ADDRESS_TIMEOUT=5
```
@@ -145,7 +145,7 @@ This page documents the environment variables used in Lima.
- **Description**: Commands QEMU to load x86_64 UEFI images using `-bios` instead of `pflash` drives.
- **Default**: `false` on Unix like hosts and `true` on Windows hosts
- **Usage**:
- **Usage**:
```sh
export _LIMA_QEMU_UEFI_IN_BIOS=true
```
@@ -186,8 +186,8 @@ This page documents the environment variables used in Lima.
### `QEMU_SYSTEM_PPC64`
- **Description**: Path to the `qemu-system-ppc64` binary.
- **Default**: `qemu-system-ppc64` found in `$PATH`
- **Description**: Path to the `qemu-system-ppc64` binary.
- **Default**: `qemu-system-ppc64` found in `$PATH`
- **Usage**:
```sh
export QEMU_SYSTEM_PPC64=/usr/local/bin/qemu-system-ppc64
@@ -195,8 +195,8 @@ This page documents the environment variables used in Lima.
### `QEMU_SYSTEM_RISCV64`
- **Description**: Path to the `qemu-system-riscv64` binary.
- **Default**: `qemu-system-riscv64` found in `$PATH`
- **Description**: Path to the `qemu-system-riscv64` binary.
- **Default**: `qemu-system-riscv64` found in `$PATH`
- **Usage**:
```sh
export QEMU_SYSTEM_RISCV64=/usr/local/bin/qemu-system-riscv64
@@ -204,8 +204,8 @@ This page documents the environment variables used in Lima.
### `QEMU_SYSTEM_S390X`
- **Description**: Path to the `qemu-system-s390x` binary.
- **Default**: `qemu-system-s390x` found in `$PATH`
- **Description**: Path to the `qemu-system-s390x` binary.
- **Default**: `qemu-system-s390x` found in `$PATH`
- **Usage**:
```sh
export QEMU_SYSTEM_S390X=/usr/local/bin/qemu-system-s390x
+1 -1
View File
@@ -11,4 +11,4 @@ Lima VM supports GPU acceleration for the following VM types:
The Lima VM project is unrelated to [the Lima driver project (driver for ARM Mali GPUs)](https://gitlab.freedesktop.org/lima),
which appears as "Lima" in the documentations of [Mesa 3D](https://docs.mesa3d.org/drivers/lima.html), etc.
{{% /alert %}}
{{% /alert %}}
+3 -3
View File
@@ -173,9 +173,9 @@ mountType: "wsl2"
The `mountInotify` support enables inotify support for all different mountTypes like 9p, virtiofs etc.
When mountInotify is enabled,
- hostagent will listen and send inotify events from host machine to guest.
- Guest will modify the file to trigger inotify on guest side
When mountInotify is enabled,
- hostagent will listen and send inotify events from host machine to guest.
- Guest will modify the file to trigger inotify on guest side
This support will be enabled only for writable mounts because only for writable mount guest will be able to trigger inotify
+7 -7
View File
@@ -109,19 +109,19 @@ rosetta:
| ⚡ Requirement | Lima >= 2.0, macOS >= 14.0, ARM |
|-------------------|----------------------------------|
Rosetta AOT Caching speeds up containers by saving translated binaries, so they don't need to be translated again.
Rosetta AOT Caching speeds up containers by saving translated binaries, so they don't need to be translated again.
Learn more: [WWDC2023 video](https://developer.apple.com/videos/play/wwdc2023/10007/?time=721)
**How to use Rosetta AOT Caching:**
- **Run a container:**
- **Run a container:**
Add `--device=lima-vm.io/rosetta=cached` to your `docker run` command:
```bash
docker run --platform=linux/amd64 --device=lima-vm.io/rosetta=cached ...
```
- **Build an image:**
Add `# syntax=docker/dockerfile:1-labs` at the top of your Dockerfile to enable the `--device` option.
- **Build an image:**
Add `# syntax=docker/dockerfile:1-labs` at the top of your Dockerfile to enable the `--device` option.
Use `--device=lima-vm.io/rosetta=cached` in your `RUN` command:
```Dockerfile
# syntax=docker/dockerfile:1-labs
@@ -130,7 +130,7 @@ Learn more: [WWDC2023 video](https://developer.apple.com/videos/play/wwdc2023/10
RUN --device=lima-vm.io/rosetta=cached <your amd64 command>
```
- **Check if caching works:**
- **Check if caching works:**
Look for cache files in the VM:
```bash
limactl shell {{.Name}} ls -la /var/cache/rosettad
@@ -139,7 +139,7 @@ Learn more: [WWDC2023 video](https://developer.apple.com/videos/play/wwdc2023/10
# You should see *.aotcache files here
```
- **Check if Docker recognizes the CDI device:**
- **Check if Docker recognizes the CDI device:**
Look for CDI info in the output of `docker info`:
```console
docker info
@@ -151,5 +151,5 @@ Learn more: [WWDC2023 video](https://developer.apple.com/videos/play/wwdc2023/10
cdi: lima-vm.io/rosetta=cached
```
- **Learn more about CDI:**
- **Learn more about CDI:**
[CDI spec documentation](https://github.com/cncf-tags/container-device-interface/blob/main/SPEC.md)
+1 -1
View File
@@ -4,4 +4,4 @@ weight: 1
---
See [Virtual Machine Drivers](../../dev/drivers.md).
<!-- TODO: migrate the most of the content from ../../dev/drivers.md to here -->
<!-- TODO: migrate the most of the content from ../../dev/drivers.md to here -->
+1 -1
View File
@@ -129,4 +129,4 @@ The benchmark result, especially the throughput of vzNAT, highly depends on the
- Hardware: MacBook Pro 2024 (M4 Max, 128 GiB)
</p>
</details>
</details>
@@ -25,4 +25,4 @@ flowchart
The default vmType is QEMU in Lima prior to v1.0.
Starting with Lima v1.0, Lima will use VZ by default on macOS (>= 13.5) for new instances,
unless the config is incompatible with VZ. (e.g., legacyBIOS or 9p is enabled)
unless the config is incompatible with VZ. (e.g., legacyBIOS or 9p is enabled)
@@ -27,4 +27,4 @@ base:
- template:_default/mounts
```
{{% /tab %}}
{{< /tabpane >}}
{{< /tabpane >}}
+1 -1
View File
@@ -37,4 +37,4 @@ base:
- On Intel Mac with macOS prior to 13.5, Linux kernel v6.2 (used by Ubuntu 23.04, Fedora 38, etc.) is known to be unbootable on vz.
kernel v6.3 and later should boot, as long as it is booted via GRUB.
https://github.com/lima-vm/lima/issues/1577#issuecomment-1565625668
The issue is fixed in macOS 13.5.
The issue is fixed in macOS 13.5.
+3 -3
View File
@@ -30,7 +30,7 @@ You can build existing internal drivers as external drivers using the `ADDITIONA
# Build QEMU as external driver
make ADDITIONAL_DRIVERS=qemu limactl additional-drivers
# Build multiple drivers as external
# Build multiple drivers as external
make ADDITIONAL_DRIVERS="qemu vz wsl2" limactl additional-drivers
```
@@ -81,7 +81,7 @@ func main() {
}
```
3. **Build and deploy**:
3. **Build and deploy**:
- Build your driver: `go build -o lima-driver-mydriver main.go`
- Place the binary in a directory accessible via `LIMA_DRIVERS_PATH`
- Ensure the binary is executable
@@ -96,5 +96,5 @@ limactl create myinstance --vm-type=mydriver template:default
See existing external driver implementations:
- [`cmd/lima-driver-qemu/main.go`](https://github.com/lima-vm/lima/blob/master/cmd/lima-driver-qemu/main.go)
- [`cmd/lima-driver-vz/main_darwin.go`](https://github.com/lima-vm/lima/blob/master/cmd/lima-driver-vz/main_darwin.go)
- [`cmd/lima-driver-vz/main_darwin.go`](https://github.com/lima-vm/lima/blob/master/cmd/lima-driver-vz/main_darwin.go)
- [`cmd/lima-driver-wsl2/main_windows.go`](https://github.com/lima-vm/lima/blob/master/cmd/lima-driver-wsl2/main_windows.go)
+1 -1
View File
@@ -193,4 +193,4 @@ The volume label is "cidata", as defined by [cloud-init NoCloud](https://docs.cl
![](/images/internals/lima-sequence-diagram.png)
(based on Lima 0.8.3)
(based on Lima 0.8.3)
+1 -1
View File
@@ -182,7 +182,7 @@ limactl shell --sync . default
```
- **Yes**: Syncs changes back to your host and cleans up guest directory
- **No**: Discards changes and cleans up guest directory
- **No**: Discards changes and cleans up guest directory
- **View the changed contents**: Shows a diff of changes made by the agent
### Requirements
@@ -7,4 +7,4 @@ Lima was designed to facilitate running containers inside a virtual machine, wit
[filesystem sharing](../../config/mount.md) and [port forwarding](../../config/port.md).
The original motivation of Lima was to promote [containerd](./containerd) for macOS users, however,
the current version of Lima supports other container engines too, and does not depend on macOS hosts.
the current version of Lima supports other container engines too, and does not depend on macOS hosts.
@@ -18,4 +18,4 @@ limactl shell apptainer-rootful apptainer run -u -B $HOME:$HOME docker://alpine
{{% /tab %}}
{{< /tabpane >}}
See also <https://apptainer.org/docs/user/latest/>.
See also <https://apptainer.org/docs/user/latest/>.
@@ -1,4 +1,4 @@
---
title: Advanced
weight: 1
---
---
+1 -1
View File
@@ -36,4 +36,4 @@ See also the [documentation](https://code.visualstudio.com/docs/remote/ssh) of V
```bash
limactl cp -r DIR default:~/
```
```
@@ -43,8 +43,8 @@ Nix file: <https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/li/lima/pac
{{% /tab %}}
{{% tab header="Binary" %}}
Download the binary archive of Lima from <https://github.com/lima-vm/lima/releases>,
and extract it under `/usr/local` (or somewhere else).
Download the binary archive of Lima from <https://github.com/lima-vm/lima/releases>,
and extract it under `/usr/local` (or somewhere else).
```bash
VERSION=$(curl -fsSL https://api.github.com/repos/lima-vm/lima/releases/latest | jq -r .tag_name)
+1 -1
View File
@@ -1,4 +1,4 @@
---
title: Command Reference
weight: 999
---
---
+1 -1
View File
@@ -13,4 +13,4 @@ See <https://github.com/lima-vm/lima/releases> for the latest release.
| v1.x | 2024-11-06 | 2026-02-06 (v2 Begin + 3 months) |
| v0.x | 2021-05-14 | 2024-11-06 (v1 Begin + 0 days) |
Since Lima v1.x, each major release receives security updates and critical bug fixes until three months after the next major release.
Since Lima v1.x, each major release receives security updates and critical bug fixes until three months after the next major release.
+1 -1
View File
@@ -25,4 +25,4 @@ weight: 20
## [v0.3.0](https://github.com/lima-vm/lima/releases/tag/v0.3.0)
- `limactl start` no longer starts a VM in the foreground.
See also <https://github.com/lima-vm/lima/releases>.
See also <https://github.com/lima-vm/lima/releases>.
+1 -1
View File
@@ -42,4 +42,4 @@ The port number can be inspected as follows:
limactl list --format '{{ .SSHLocalPort }}' default
```
See also `.lima/default/ssh.config`.
See also `.lima/default/ssh.config`.
+1 -1
View File
@@ -204,7 +204,7 @@ enable = false
url = "/docs/community"
[[menus.main]]
name = "Releases"
url = "https://github.com/lima-vm/lima/releases"
url = "https://github.com/lima-vm/lima/releases"
[module]
# uncomment line below for temporary local development of module
+1 -1
View File
@@ -50,4 +50,4 @@
</li>
{{ end }}
</ul>
{{ end -}}
{{ end -}}
+1 -1
View File
@@ -60,4 +60,4 @@
{{ partial "search-input.html" . }}
</div>
</div>
</nav>
</nav>
@@ -10,4 +10,4 @@
</a>
{{- end }}
</p>
</div>
</div>
+1 -1
View File
@@ -3,4 +3,4 @@
<img class="cncf-logo"
src="/images/cncf-color-bg.svg" alt="Cloud Native Computing Foundation logo" />
</section>
</section>
+1 -1
View File
@@ -23,4 +23,4 @@
</div>
</div>
</div>
</section>
</section>
@@ -12,4 +12,4 @@
{{ .label }} <i class="fas fa-arrow-alt-circle-right ml-2"></i>
</a>
</div>
{{- end }}
{{- end }}
+1 -1
View File
@@ -1,3 +1,3 @@
{{ $gh_repo := (.Site.Params.github_repo) -}}
{{- replace (.Inner | safeHTML) "(./" (printf "(%s/tree/%s/" $gh_repo $.Site.Params.version) -}}
{{- replace (.Inner | safeHTML) "(./" (printf "(%s/tree/%s/" $gh_repo $.Site.Params.version) -}}