Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kubie for openSUSE:Factory checked in at 2025-12-22 22:51:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubie (Old) and /work/SRC/openSUSE:Factory/.kubie.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubie" Mon Dec 22 22:51:51 2025 rev:28 rq:1324153 version:0.26.1 Changes: -------- --- /work/SRC/openSUSE:Factory/kubie/kubie.changes 2025-07-02 18:17:26.695253644 +0200 +++ /work/SRC/openSUSE:Factory/.kubie.new.1928/kubie.changes 2025-12-22 22:55:32.544611855 +0100 @@ -1,0 +2,11 @@ +Sat Dec 20 07:03:07 UTC 2025 - Johannes Kastl <[email protected]> + +- Update to version 0.26.1: + * Version 0.26.1 + * Bump the all group across 1 directory with 10 updates (#375) + * add option for multiple contexts (#366) + * add generate-completion command using clap_complete (#374) + * Bump the all group across 1 directory with 7 updates (#361) + * Bump the all group across 1 directory with 3 updates (#355) + +------------------------------------------------------------------- Old: ---- kubie-0.26.0.obscpio New: ---- kubie-0.26.1.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubie.spec ++++++ --- /var/tmp/diff_new_pack.kLsBBs/_old 2025-12-22 22:55:33.972670750 +0100 +++ /var/tmp/diff_new_pack.kLsBBs/_new 2025-12-22 22:55:33.976670914 +0100 @@ -1,7 +1,7 @@ # # spec file for package kubie # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %global rustflags '-Clink-arg=-Wl,-z,relro,-z,now' Name: kubie -Version: 0.26.0 +Version: 0.26.1 Release: 0 Summary: A Kubernetes context switcher License: Zlib ++++++ _service ++++++ --- /var/tmp/diff_new_pack.kLsBBs/_old 2025-12-22 22:55:34.012672399 +0100 +++ /var/tmp/diff_new_pack.kLsBBs/_new 2025-12-22 22:55:34.020672729 +0100 @@ -3,7 +3,7 @@ <param name="url">https://github.com/sbstp/kubie</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.26.0</param> + <param name="revision">v0.26.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.kLsBBs/_old 2025-12-22 22:55:34.044673719 +0100 +++ /var/tmp/diff_new_pack.kLsBBs/_new 2025-12-22 22:55:34.048673884 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/sbstp/kubie</param> - <param name="changesrevision">bdcaa8abfc890440a78e2b6cd5bf738c8393d574</param></service></servicedata> + <param name="changesrevision">2e0d42c21d7103e241b746c1098f5219c2e975ba</param></service></servicedata> (No newline at EOF) ++++++ kubie-0.26.0.obscpio -> kubie-0.26.1.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/.github/dependabot.yml new/kubie-0.26.1/.github/dependabot.yml --- old/kubie-0.26.0/.github/dependabot.yml 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/.github/dependabot.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: - - package-ecosystem: "cargo" # See documentation for possible values - directory: "/" # Location of package manifests - schedule: - interval: "daily" - groups: - all: - patterns: - - "*" - update-types: - - "minor" - - "patch" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/.github/workflows/release.yml new/kubie-0.26.1/.github/workflows/release.yml --- old/kubie-0.26.0/.github/workflows/release.yml 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/.github/workflows/release.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,117 +0,0 @@ -name: Release - -on: - push: - tags: - - '*' - -jobs: - build-linux-amd64-static: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: x86_64-unknown-linux-musl - - run: sudo apt-get update && sudo apt-get install -y musl-tools - - uses: actions-rs/cargo@v1 - with: - command: build - args: --release --target x86_64-unknown-linux-musl - - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: target/x86_64-unknown-linux-musl/release/kubie - asset_name: kubie-linux-amd64 - tag: ${{ github.ref }} - - build-linux-arm32-static: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: arm-unknown-linux-musleabi - override: true - - uses: actions-rs/cargo@v1 - with: - use-cross: true - command: build - args: --release --target arm-unknown-linux-musleabi - - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: target/arm-unknown-linux-musleabi/release/kubie - asset_name: kubie-linux-arm32 - tag: ${{ github.ref }} - - build-linux-arm64-static: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: aarch64-unknown-linux-musl - override: true - - uses: actions-rs/cargo@v1 - with: - use-cross: true - command: build - args: --release --target aarch64-unknown-linux-musl - - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: target/aarch64-unknown-linux-musl/release/kubie - asset_name: kubie-linux-arm64 - tag: ${{ github.ref }} - - build-macos-amd64: - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: x86_64-apple-darwin - - run: SDKROOT=$(xcrun --sdk macosx --show-sdk-path) MACOSX_DEPLOYMENT_TARGET=11.0 cargo build --release --target x86_64-apple-darwin - - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: target/x86_64-apple-darwin/release/kubie - asset_name: kubie-darwin-amd64 - tag: ${{ github.ref }} - - build-macos-arm64: - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: aarch64-apple-darwin - - run: SDKROOT=$(xcrun --sdk macosx --show-sdk-path) MACOSX_DEPLOYMENT_TARGET=11.0 cargo build --release --target aarch64-apple-darwin - - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: target/aarch64-apple-darwin/release/kubie - asset_name: kubie-darwin-arm64 - tag: ${{ github.ref }} - - publish-crates-io: - name: Publish to crates.io - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v3 - - name: Install stable toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - run: cargo publish --token ${CRATES_TOKEN} - env: - CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/.github/workflows/test.yml new/kubie-0.26.1/.github/workflows/test.yml --- old/kubie-0.26.0/.github/workflows/test.yml 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/.github/workflows/test.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,79 +0,0 @@ -name: Test - -on: - push: - branches: - - master - pull_request: - -jobs: - test-linux-amd64: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - - uses: actions-rs/cargo@v1 - with: - command: test - args: --all-features - - test-linux-arm32: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: arm-unknown-linux-musleabi - override: true - - - uses: actions-rs/cargo@v1 - with: - use-cross: true - command: test - args: --all-features --target arm-unknown-linux-musleabi - - test-linux-arm64: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: aarch64-unknown-linux-musl - override: true - - - uses: actions-rs/cargo@v1 - with: - use-cross: true - command: test - args: --all-features --target aarch64-unknown-linux-musl - - test-macos-amd64: - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - - uses: actions-rs/cargo@v1 - with: - command: test - args: --all-features - - # We use an amd64 machine to cross compile for arm64. We cannot run the tests, - # only verify that the project compiles well. - build-macos-arm64: - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: aarch64-apple-darwin - - - run: SDKROOT=$(xcrun --sdk macosx --show-sdk-path) MACOSX_DEPLOYMENT_TARGET=11.0 cargo build --all-features --target aarch64-apple-darwin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/.gitignore new/kubie-0.26.1/.gitignore --- old/kubie-0.26.0/.gitignore 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/.gitignore 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +0,0 @@ -/target -**/*.rs.bk -/binaries diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/Cargo.lock new/kubie-0.26.1/Cargo.lock --- old/kubie-0.26.0/Cargo.lock 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/Cargo.lock 2025-12-20 06:04:31.000000000 +0100 @@ -84,9 +84,9 @@ [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "arrayvec" @@ -96,9 +96,9 @@ [[package]] name = "attohttpc" -version = "0.29.2" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48404d931ab11b3a7a5267291b3b8f3590f09b86181381f8e82a7e562ed832c0" +checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9" dependencies = [ "base64", "flate2", @@ -123,7 +123,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29003a681b2b9465c1139bfb726da452a841a8b025f35953f3bce71139f10b21" dependencies = [ - "bindgen", + "bindgen 0.69.5", "cc", "cmake", "dunce", @@ -134,9 +134,9 @@ [[package]] name = "aws-lc-rs" -version = "1.13.1" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fcc8f365936c834db5514fc45aee5b1202d677e6b40e48468aaaa8183ca8c7" +checksum = "6a88aab2464f1f25453baa7a07c84c5b7684e274054ba06817f382357f77a288" dependencies = [ "aws-lc-fips-sys", "aws-lc-sys", @@ -145,11 +145,11 @@ [[package]] name = "aws-lc-sys" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b1d86e7705efe1be1b569bab41d4fa1e14e220b60a160f78de2db687add079" +checksum = "b45afffdee1e7c9126814751f88dddc747f41d91da16c9551a0f1e8a11e788a1" dependencies = [ - "bindgen", + "bindgen 0.72.1", "cc", "cmake", "dunce", @@ -185,13 +185,33 @@ "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", "syn", "which 4.4.2", ] [[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.8.0", + "cexpr", + "clang-sys", + "itertools", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn", +] + +[[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -234,10 +254,11 @@ [[package]] name = "cc" -version = "1.2.15" +version = "1.2.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" +checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -254,9 +275,9 @@ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -291,9 +312,9 @@ [[package]] name = "clap" -version = "4.5.40" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -301,9 +322,9 @@ [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -313,18 +334,18 @@ [[package]] name = "clap_complete" -version = "4.5.54" +version = "4.5.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aad5b1b4de04fead402672b48897030eec1f3bfe1550776322f59f6d6e6a5677" +checksum = "004eef6b14ce34759aa7de4aea3217e368f463f46a3ed3764ca4b5a4404003b4" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.40" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "anstyle", "heck", @@ -638,6 +659,12 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] +name = "find-msvc-tools" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" + +[[package]] name = "flate2" version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -712,9 +739,9 @@ [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "hashbrown" @@ -974,13 +1001,14 @@ [[package]] name = "kubie" -version = "0.26.0" +version = "0.26.1" dependencies = [ "anyhow", "attohttpc", "aws-lc-rs", "cfg-if", "clap", + "clap_complete", "dirs", "fs2", "glob", @@ -1010,9 +1038,9 @@ [[package]] name = "libc" -version = "0.2.174" +version = "0.2.178" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" [[package]] name = "libloading" @@ -1322,6 +1350,12 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] name = "rustix" version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1438,18 +1472,28 @@ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -1458,14 +1502,15 @@ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] @@ -1517,9 +1562,9 @@ [[package]] name = "skim" -version = "0.20.2" +version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a285c48e203135e5d58eb0fc632e3303c127f2056c8e50c8a11c504b7132b4" +checksum = "60e10a7f70e8e532d8780d88210055e15e12d0df431bf5dab7bb1ed22b6fb4f2" dependencies = [ "beef", "bitflags 1.3.2", @@ -1556,9 +1601,9 @@ [[package]] name = "skim-tuikit" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fa16dc8ef0aa72471eb80bf1d43b62e841abf1cd2429216c44cdfd886545f0" +checksum = "cb54242783b4234134359fea4d11f26879c49ace6c00c5d402fd04a5ab2ad7bd" dependencies = [ "bitflags 1.3.2", "lazy_static", @@ -1617,9 +1662,9 @@ [[package]] name = "tempfile" -version = "3.20.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", "getrandom 0.3.1", @@ -1895,9 +1940,9 @@ [[package]] name = "wildmatch" -version = "2.4.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ce1ab1f8c62655ebe1350f589c61e505cf94d385bc6a12899442d9081e71fd" +checksum = "29333c3ea1ba8b17211763463ff24ee84e41c78224c16b001cd907e663a38c68" [[package]] name = "winapi" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/Cargo.toml new/kubie-0.26.1/Cargo.toml --- old/kubie-0.26.0/Cargo.toml 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/Cargo.toml 2025-12-20 06:04:31.000000000 +0100 @@ -11,11 +11,12 @@ name = "kubie" readme = "README.md" repository = "https://github.com/sbstp/kubie" -version = "0.26.0" +version = "0.26.1" [dependencies] anyhow = "1" -clap = { version = "4.5.37", features = ["derive"] } +clap = { version = "4.5.53", features = ["derive"] } +clap_complete = "4.5.62" cfg-if = "1" dirs = "6" fs2 = "0.4" @@ -32,7 +33,7 @@ skim = "0.20" [target.arm-unknown-linux-musleabi.dependencies] -aws-lc-rs = { version = "1.13", default-features = false, features = [ +aws-lc-rs = { version = "1.15", default-features = false, features = [ "aws-lc-sys", "prebuilt-nasm", "bindgen", @@ -41,7 +42,7 @@ [dependencies.attohttpc] default-features = false features = ["compress", "json", "tls-rustls-native-roots"] -version = "0.29.2" +version = "0.30.1" optional = true [features] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/README.md new/kubie-0.26.1/README.md --- old/kubie-0.26.0/README.md 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/README.md 2025-12-20 06:04:31.000000000 +0100 @@ -38,31 +38,22 @@ There is a `kubie` Nix package maintained by @illiusdope that you can install. ### Arch Linux -`kubie` is available in the [extra repository](https://archlinux.org/packages/extra/x86_64/kubie/) and it can be installed by running `pacman -S kubie`. +`kubie` is available in the [extra repository](https://archlinux.org/packages/extra/x86_64/kubie/), and it can be installed by running `pacman -S kubie`. ### Autocompletion -#### Bash +Autocompletion can be enabled by adding one of the following lines to your shell's configuration file, e.g., `~/.bashrc` +or `~/.zshrc`: -If you want autocompletion for `kubie ctx`, `kubie ns` and `kubie exec`, please install this script: -```bash -sudo cp ./completion/kubie.bash /etc/bash_completion.d/kubie +```sh +# Bash / Zsh / others +source <(kubie generate-completion) +# Fish +kubie generate-completion fish | source ``` -Then spawn new shell or source copied file: -```bash -. /etc/bash_completion.d/kubie -``` - -#### Fish - -Install the completions script [kubie.fish](completion/kubie.fish) by copying it, eg.: - -```bash -cp completion/kubie.fish ~/.config/fish/completions/ -``` - -Then reopen fish or source the file. +See the [clap-complete docs](https://docs.rs/clap_complete/latest/clap_complete/aot/enum.Shell.html) for all supported +shells. ## Usage Selectable menus will be available when using `kubie ctx` and `kubie ns`. @@ -175,6 +166,13 @@ # Default: auto print_context_in_exec: auto + # Parse the CONTEXT_NAME argument to `kubie exec` and `kubie export` as a + # space-delimited list, allowing multiple patterns to be specified. + # Example: + # kubie exec 'dev-* pre-* staging-1 prod-2' kube-system -- kubectl get po + # Default: false + allow_multiple_context_patterns: false + # Optional start and stop hooks hooks: # A command hook to run when a CTX is started. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/src/cmd/exec.rs new/kubie-0.26.1/src/cmd/exec.rs --- old/kubie-0.26.0/src/cmd/exec.rs 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/src/cmd/exec.rs 2025-12-20 06:04:31.000000000 +0100 @@ -58,8 +58,7 @@ } let installed = kubeconfig::get_installed_contexts(settings)?; - let mut matching = installed.get_contexts_matching(&context_name); - matching.sort_by(|a, b| a.item.name.cmp(&b.item.name)); + let matching = installed.get_contexts_matching(&context_name, settings.behavior.allow_multiple_context_patterns); if matching.is_empty() { return Err(anyhow!("No context matching {}", context_name)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/src/cmd/export.rs new/kubie-0.26.1/src/cmd/export.rs --- old/kubie-0.26.0/src/cmd/export.rs 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/src/cmd/export.rs 2025-12-20 06:04:31.000000000 +0100 @@ -5,7 +5,7 @@ pub fn export(settings: &Settings, context_name: String, namespace_name: String) -> Result<()> { let installed = kubeconfig::get_installed_contexts(settings)?; - let matching = installed.get_contexts_matching(&context_name); + let matching = installed.get_contexts_matching(&context_name, settings.behavior.allow_multiple_context_patterns); if matching.is_empty() { return Err(anyhow!("No context matching {}", context_name)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/src/cmd/meta.rs new/kubie-0.26.1/src/cmd/meta.rs --- old/kubie-0.26.0/src/cmd/meta.rs 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/src/cmd/meta.rs 2025-12-20 06:04:31.000000000 +0100 @@ -1,4 +1,5 @@ -use clap::Parser; +use clap::{CommandFactory, Parser}; +use clap_complete::{generate, Shell}; use crate::settings::ContextHeaderBehavior; @@ -100,6 +101,12 @@ /// Name of the context to edit. context_name: Option<String>, }, + + /// Generate a completion script. Enable completion using + /// `source <(kubie generate-completion)`. This can be added to your shell's + /// configuration file to enable completion automatically. + #[clap(name = "generate-completion")] + GenerateCompletion(GenerateCompletionCommand), } #[derive(Debug, Parser)] @@ -121,3 +128,29 @@ #[clap(name = "depth")] Depth, } + +#[derive(Debug, Parser)] +pub struct GenerateCompletionCommand { + /// The shell to generate the completion script for. Determined automatically if omitted. + #[clap(value_enum)] + pub shell: Option<Shell>, +} + +/// Generate a completion script. +pub fn generate_completion(command: GenerateCompletionCommand) { + let mut app = Kubie::command(); + let bin_name = env!("CARGO_BIN_NAME"); + let shell = determine_shell(command); + generate(shell, &mut app, bin_name, &mut std::io::stdout()); +} + +fn determine_shell(command: GenerateCompletionCommand) -> Shell { + if let Some(shell) = command.shell { + shell + } else if let Some(shell) = Shell::from_env() { + shell + } else { + eprintln!("Could not determine shell from environment. Please specify the shell."); + std::process::exit(1); + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/src/kubeconfig.rs new/kubie-0.26.1/src/kubeconfig.rs --- old/kubie-0.26.0/src/kubeconfig.rs 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/src/kubeconfig.rs 2025-12-20 06:04:31.000000000 +0100 @@ -116,9 +116,26 @@ .collect() } - pub fn get_contexts_matching(&self, pattern: &str) -> Vec<&Sourced<NamedContext>> { - let matcher = WildMatch::new(pattern); - self.contexts.iter().filter(|s| matcher.matches(&s.item.name)).collect() + pub fn get_contexts_matching(&self, pattern: &str, allow_multiple_context_patterns: bool) -> Vec<&Sourced<NamedContext>> { + let mut result = vec![]; + + let patterns = if allow_multiple_context_patterns { + pattern.split_whitespace().collect() + } else { + vec![pattern] + }; + + for p in &patterns { + let matcher = WildMatch::new(p); + let m: Vec<_> = self.contexts.iter().filter(|s| matcher.matches(&s.item.name)).collect(); + if patterns.len() > 1 && m.is_empty() { + println!("WARNING: No context matching {p}"); + } + result.extend(m); + } + result.sort_by_key(|k| &k.item.name); + result.dedup_by_key(|k| &k.item.name); + result } pub fn delete_context(&mut self, name: &str) -> Result<()> { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/src/main.rs new/kubie-0.26.1/src/main.rs --- old/kubie-0.26.0/src/main.rs 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/src/main.rs 2025-12-20 06:04:31.000000000 +0100 @@ -114,6 +114,9 @@ } => { cmd::export::export(&settings, context_name, namespace_name)?; } + Kubie::GenerateCompletion(cmd) => { + cmd::meta::generate_completion(cmd); + } } Ok(()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubie-0.26.0/src/settings.rs new/kubie-0.26.1/src/settings.rs --- old/kubie-0.26.0/src/settings.rs 2025-07-01 20:42:43.000000000 +0200 +++ new/kubie-0.26.1/src/settings.rs 2025-12-20 06:04:31.000000000 +0100 @@ -186,6 +186,8 @@ pub validate_namespaces: ValidateNamespacesBehavior, #[serde(default)] pub print_context_in_exec: ContextHeaderBehavior, + #[serde(default = "def_bool_false")] + pub allow_multiple_context_patterns: bool, } #[derive(Debug, Deserialize, Default)] ++++++ kubie.obsinfo ++++++ --- /var/tmp/diff_new_pack.kLsBBs/_old 2025-12-22 22:55:34.224681143 +0100 +++ /var/tmp/diff_new_pack.kLsBBs/_new 2025-12-22 22:55:34.228681308 +0100 @@ -1,5 +1,5 @@ name: kubie -version: 0.26.0 -mtime: 1751395363 -commit: bdcaa8abfc890440a78e2b6cd5bf738c8393d574 +version: 0.26.1 +mtime: 1766207071 +commit: 2e0d42c21d7103e241b746c1098f5219c2e975ba ++++++ vendor.tar.xz ++++++ /work/SRC/openSUSE:Factory/kubie/vendor.tar.xz /work/SRC/openSUSE:Factory/.kubie.new.1928/vendor.tar.xz differ: char 15, line 1
