Commit 2c996bd9bdac
Changed files (33)
home
common
desktop
nix
overlays
systems
common
users
home/common/desktop/sway/default.nix
@@ -0,0 +1,320 @@
+{ config, pkgs, ... }:
+let
+ emacs-in-folder = pkgs.writeScript "emacs-in-folder" ''
+ #!/usr/bin/env bash
+ fd . -d 3 --type d ~/src | ${pkgs.wofi}/bin/wofi -dmenu | xargs -I {} zsh -i -c "cd {}; emacs ."
+ '';
+ fontConf = {
+ names = [ "JetBrains Mono" ];
+ size = 12.0;
+ };
+in
+{
+ imports = [
+ ./kanshi.nix
+ ./mako.nix
+ ./rofi.nix
+ ./swayidle.nix
+ ];
+
+ home.packages = with pkgs; [
+ swaybg
+ pinentry-gnome3
+ i3-back
+
+ grim
+ slurp
+
+ wf-recorder
+ wl-clipboard
+ wtype
+
+ zenity
+ wofi
+ ];
+
+ services = {
+ avizo.enable = true;
+ wlsunset = {
+ enable = true;
+ latitude = "48.87";
+ longitude = "2.33";
+ };
+ cliphist = {
+ enable = true;
+ package = pkgs.cliphist;
+ };
+ };
+
+ # FIXME: simplify by spliting keybindings and window-rules in their own configuration
+ wayland.windowManager.sway = {
+ enable = true;
+ wrapperFeatures.gtk = true;
+ # systemd.enable = true;
+ extraSessionCommands = ''
+ export SDL_VIDEODRIVER=wayland
+ export QT_QPA_PLATFORM=wayland
+ export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
+ export _JAVA_AWT_WM_NONREPARTENTING=1
+ export MOZ_ENABLE_WAYLAND=1
+ '';
+ checkConfig = false;
+ config = {
+ gaps = {
+ inner = 2;
+ outer = 2;
+ };
+ colors = {
+ focused = {
+ border = "#BD93F9";
+ background = "#282A36";
+ text = "#ffffff";
+ indicator = "#8BE9FD";
+ childBorder = "#BD93F9";
+ };
+ focusedInactive = {
+ border = "#BD93F9";
+ background = "#282A36";
+ text = "#F8F8F2";
+ indicator = "#44475A";
+ childBorder = "#44475A";
+ };
+ unfocused = {
+ border = "#44475A";
+ background = "#282A36";
+ text = "#BFBFBF";
+ indicator = "#282A36";
+ childBorder = "#282A36";
+ };
+ };
+ modifier = "Mod4";
+ terminal = "${pkgs.kitty}/bin/kitty";
+ menu = "${pkgs.wofi}/bin/wofi -G --show drun -modi 'drun,run,window,ssh'";
+ bindkeysToCode = true;
+ input = {
+ "type:keyboard" = {
+ xkb_layout = "fr,fr,us";
+ xkb_variant = "bepo,ergol,";
+ xkb_options = "grp:menu_toggle,grp_led:caps,compose:caps";
+ };
+ };
+ output = {
+ "*" = {
+ bg = "~/desktop/pictures/lockscreen fill";
+ };
+ };
+ fonts = fontConf;
+ bars = [ ];
+ keybindings =
+ let
+ mod = config.wayland.windowManager.sway.config.modifier;
+ inherit (config.wayland.windowManager.sway.config) left down up right menu terminal;
+ in
+ {
+ "${mod}+Return" = "exec ${terminal}";
+
+ "${mod}+Shift+Return" = "exec emacsclient -c";
+ "${mod}+Control+Return" = "exec emacs";
+ "${mod}+Control+Shift+Return" = "exec ${emacs-in-folder}";
+
+ "${mod}+Left" = "focus left";
+ "${mod}+Down" = "focus down";
+ "${mod}+Up" = "focus up";
+ "${mod}+Right" = "focus right";
+
+ "${mod}+Shift+Left" = "move left";
+ "${mod}+Shift+Down" = "move down";
+ "${mod}+Shift+Up" = "move up";
+ "${mod}+Shift+Right" = "move right";
+
+ "${mod}+Control+Left" = "workspace prev_on_output";
+ "${mod}+Control+Down" = "workspace prev";
+ "${mod}+Control+Up" = "workspace next";
+ "${mod}+Control+Right" = "workspace next_on_output";
+
+ "${mod}+Shift+Control+Left" = "move workspace to output left";
+ "${mod}+Shift+Control+Down" = "move workspace to output down";
+ "${mod}+Shift+Control+Up" = "move workspace to output up";
+ "${mod}+Shift+Control+Right" = "move workspace to output right";
+
+ "${mod}+Shift+space" = "floating toggle";
+ "${mod}+space" = "focus mode_toggle";
+ "${mod}+Tab" = "[con_mark=_back] focus";
+
+ # "XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 10%+";
+ # "XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 10%-";
+ "XF86MonBrightnessUp" = "exec ${pkgs.avizo}/bin/lightctl up";
+ "XF86MonBrightnessDown" = "exec ${pkgs.avizo}/bin/lightctl down";
+ "Shift+XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 1%+";
+ "Shift+XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 1%-";
+ };
+ window.commands = [
+ {
+ command = "inhibit_idle fullscreen";
+ criteria.app_id = "firefox";
+ }
+ {
+ command = "inhibit_idle fullscreen";
+ criteria.app_id = "mpv";
+ }
+ {
+ # spotify doesn't set its WM_CLASS until it has mapped, so the assign is not reliable
+ command = "move to workspace 10";
+ criteria.class = "Spotify";
+ }
+ {
+ command = "move to scratchpad, scratchpad show";
+ criteria = {
+ app_id = "metask";
+ };
+ }
+ {
+ command = "move to scratchpad, scratchpad show";
+ criteria = {
+ app_id = "emacs";
+ title = "^_emacs scratchpad_$";
+ };
+ }
+ {
+ criteria = { title = "Save File"; };
+ command = "floating enable, resize set width 600px height 800px";
+ }
+ {
+ criteria = { class = "pwvucontrol"; };
+ command = "floating enable";
+ }
+ {
+ criteria = { title = "(Sharing Indicator)"; };
+ command = "inhibit_idle visible, floating enable";
+ }
+ {
+ # browser zoom|meet|bluejeans
+ criteria = { title = "(Blue Jeans)|(Meet)|(Zoom Meeting)"; };
+ command = "inhibit_idle visible";
+ }
+ # for_window [app_id="^chrome-.*"] shortcuts_inhibitor disable
+ {
+ criteria = { app_id = "^chrome-.*"; };
+ command = "shortcuts_inhibitor disable";
+ }
+ ];
+ startup = [
+ { command = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY DBUS_SESSION_BUS_ADDRESS SWAYSOCK XDG_SESSION_TYPE XDG_SESSION_DESKTOP XDG_CURRENT_DESKTOP"; } #workaround
+ # Make sure we update systemd service env variables with the current ones. This is required for dbus to work properly.
+ { command = "dbus-update-activation-environment --systemd --all"; }
+ { command = "systemctl --user restart kanshi"; always = true; }
+ { command = "${pkgs.pa-notify}/bin/pa-notify -u0"; always = true; }
+ # Probably put a condition here.
+ { command = "emacs --fg-daemon"; }
+ { command = "i3-back"; }
+ { command = "firefox"; }
+ { command = "${pkgs.kitty}/bin/kitty --title metask --class metask"; }
+ ];
+ };
+ extraConfig =
+ let
+ mod = config.wayland.windowManager.sway.config.modifier;
+ inherit (config.wayland.windowManager.sway.config) left down up right menu terminal;
+ in
+ ''
+ bindcode ${mod}+33 exec "${menu}"
+ bindcode ${mod}+Shift+33 exec "raffi -I"
+ bindcode ${mod}+Control+33 exec "${pkgs.wofi-emoji}/bin/wofi-emoji -G"
+ bindcode ${mod}+Shift+24 kill
+ bindcode ${mod}+38 focus parent
+ bindcode ${mod}+39 layout stacking
+ bindcode ${mod}+25 layout tabbed
+ bindcode ${mod}+26 layout toggle split
+ bindcode ${mod}+Shift+54 reload
+ bindcode ${mod}+Shift+26 exec "swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'"
+
+ mode "resize" {
+ bindsym Shift+Left resize grow width 5px
+ bindsym Shift+Down resize shrink height 5px
+ bindsym Shift+Up resize grow height 5px
+ bindsym Shift+Right resize shrink width 5px
+
+ bindsym Control+Left resize grow width 50px
+ bindsym Control+Down resize shrink height 50px
+ bindsym Control+Up resize grow height 50px
+ bindsym Control+Right resize shrink width 50px
+
+ # Ditto, with arrow keys
+ bindsym Left resize grow width 15px
+ bindsym Down resize shrink height 15px
+ bindsym Up resize grow height 15px
+ bindsym Right resize shrink width 15px
+
+ # Return to default mode
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ }
+
+ bindcode ${mod}+32 mode "resize"
+
+ bindcode ${mod}+Shift+32 exec "${pkgs.swaylock}/bin/swaylock -i $HOME/desktop/pictures/lockscreen"
+
+ bindcode ${mod}+24 exec notify-send --icon=battery --category=info --urgency=critical "$(acpi)"
+ # bindcode ${mod}+58 exec
+ bindcode ${mod}+28 exec notify-send --icon=clock --category=info --urgency=critical "$(date +"%I:%M")"
+ bindcode ${mod}+Shift+28 exec notify-send --icon=clock --category=info --urgency=critical "$(date)"
+
+ # switch to workspace
+ bindcode ${mod}+10 workspace number 1
+ bindcode ${mod}+11 workspace number 2
+ bindcode ${mod}+12 workspace number 3
+ bindcode ${mod}+13 workspace number 4
+ bindcode ${mod}+14 workspace number 5
+ bindcode ${mod}+15 workspace number 6
+ bindcode ${mod}+16 workspace number 7
+ bindcode ${mod}+17 workspace number 8
+ bindcode ${mod}+18 workspace number 9
+ bindcode ${mod}+19 workspace number 10
+
+ # move focused container to workspace
+ bindcode ${mod}+Shift+10 move container to workspace number 1
+ bindcode ${mod}+Shift+11 move container to workspace number 2
+ bindcode ${mod}+Shift+12 move container to workspace number 3
+ bindcode ${mod}+Shift+13 move container to workspace number 4
+ bindcode ${mod}+Shift+14 move container to workspace number 5
+ bindcode ${mod}+Shift+15 move container to workspace number 6
+ bindcode ${mod}+Shift+16 move container to workspace number 7
+ bindcode ${mod}+Shift+17 move container to workspace number 8
+ bindcode ${mod}+Shift+18 move container to workspace number 9
+ bindcode ${mod}+Shift+19 move container to workspace number 10
+
+ bindcode ${mod}+Control+39 split h
+ bindcode ${mod}+41 fullscreen toggle
+
+ # bindsym XF86AudioRaiseVolume exec ${pkgs.pamixer}/bin/pamixer -ui 5 && ${pkgs.pamixer}/bin/pamixer --get-volume > $SWAYSOCK.wob
+ # bindsym XF86AudioLowerVolume exec ${pkgs.pamixer}/bin/pamixer -ud 5 && ${pkgs.pamixer}/bin/pamixer --get-volume > $SWAYSOCK.wob
+ # bindsym XF86AudioMute exec ${pkgs.pamixer}/bin/pamixer --toggle-mute && ( ${pkgs.pamixer}/bin/pamixer --get-mute && echo 0 > $SWAYSOCK.wob ) || ${pkgs.pamixer}/bin/pamixer --get-volume > $SWAYSOCK.wob
+ bindsym XF86AudioRaiseVolume exec ${pkgs.avizo}/bin/volumectl -u up
+ bindsym XF86AudioLowerVolume exec ${pkgs.avizo}/bin/volumectl -u down
+ bindsym XF86AudioMute exec exec ${pkgs.avizo}/bin/volumectl toogle-mute
+
+ bindsym XF86AudioPlay exec "playerctl play-pause"
+ bindsym XF86Messenger exec "playerctl play-pause"
+ bindsym XF86AudioNext exec "playerctl next"
+ bindsym XF86Go exec "playerctl next"
+ bindsym XF86AudioPrev exec "playerctl previous"
+ bindsym Cancel exec "playerctl previous"
+
+ bindcode ${mod}+49 exec swaymsg [app_id="metask"] scratchpad show || exec ${pkgs.kitty}/bin/kitty --title metask --class metask
+ bindsym --whole-window button8 exec sswaymsg [app_id="metask"] scratchpad show || exec ${pkgs.kitty}/bin/kitty --title metask --class metask
+ bindcode ${mod}+Shift+49 exec swaymsg '[app_id="emacs" title="^_emacs scratchpad_$"]' scratchpad show || exec ${config.programs.emacs.package}/bin/emacsclient -c -F "((name . \"_emacs scratchpad_\"))"
+ bindsym --whole-window button9 exec swaymsg '[app_id="emacs" title="^_emacs scratchpad_$"]' scratchpad show || exec ${config.programs.emacs.package}/bin/emacsclient -c -F "((name . \"_emacs scratchpad_\"))"
+
+ # Mouse
+ # Disabled as it doesn't play well with thinkpad's trackpoint :D
+ # bindsym --whole-window button6 workspace next_on_output
+ # bindsym --whole-window button7 workspace prev_on_output
+
+ bindsym ${mod}+F10 exec ${pkgs.my.scripts}/bin/shot %d
+ bindsym ${mod}+Shift+F10 exec ${pkgs.my.scripts}/bin/shotf %d
+
+ bindsym ${mod}+F9 exec ${pkgs.mako}/bin/makoctl mode -s do-not-disturb
+ bindsym ${mod}+Shift+F9 exec ${pkgs.mako}/bin/makoctl mode -s default
+ '';
+ };
+}
home/common/desktop/sway/kanshi.nix
@@ -0,0 +1,34 @@
+_: {
+ services.kanshi = {
+ enable = true;
+ settings = [
+ # Make it configurable per host
+ {
+ profile.name = "aomi";
+ profile.outputs = [
+ { criteria = "eDP-1"; status = "disable"; }
+ { criteria = "DP-1"; status = "enable"; position = "0,0"; mode = "3440x1440"; scale = 1.0; }
+ ];
+ }
+ {
+ profile.name = "home-undocked";
+ profile.outputs = [
+ # Output eDP-1 'AU Optronics 0xD291 Unknown'
+ { criteria = "eDP-1"; status = "enable"; position = "0,0"; mode = "1920x1200"; scale = 1.0; }
+ ];
+ }
+ {
+ profile.name = "home-docked";
+ profile.outputs = [
+ # Old: Output eDP-1 'AU Optronics 0xD291 Unknown'
+ # Output eDP-1 'Unknown 0xD291 Unknown'
+ # Output DP-5 'LG Electronics LG ULTRAWIDE 0x0005D10C' (focused)
+ # { criteria = "LG Electronics LG ULTRAWIDE 0x0000D50C"; status = "enable"; position = "0,0"; mode = "3440x1440"; scale = 1.0; }
+ { criteria = "DP-5"; status = "enable"; position = "0,0"; mode = "3440x1440"; scale = 1.0; }
+ # Use it as a "shareable" screen when needed
+ { criteria = "eDP-1"; status = "enable"; position = "1460,1440"; mode = "1920x1200"; scale = 1.0; }
+ ];
+ }
+ ];
+ };
+}
home/common/desktop/sway/mako.nix
@@ -0,0 +1,60 @@
+_:
+{
+ services.mako = {
+ enable = true;
+ font = "JetBrains Mono 12";
+ defaultTimeout = 8000; # 5s timeout
+ groupBy = "app-name,summary";
+ # FIXME: hide pulseaudio notifications (maybe they don't show up without pasystray)
+ extraConfig = ''
+ width=400
+ on-button-left=dismiss
+ on-button-middle=invoke-default-action
+ on-button-right=dismiss
+ border-radius=6
+ border-size=3
+ border-color=#db7508
+ format=<b>%s</b>\n%b\n<i>%a</i>
+ icon-path=/run/current-system/sw/share/icons/Qogir-dark:/run/current-system/sw/share/icons/hicolor
+
+ [urgency=low]
+ background-color=#282c30
+ text-color=#888888
+ default-timeout=2000
+
+ [urgency=normal]
+ background-color=#282c30
+ text-color=#ffffff
+ default-timeout=5000
+
+ [urgency=high]
+ background-color=#900000
+ text-color=#ffffff
+ border-color=#ff0000
+
+ [app-name="pa-notify"]
+ background-color=#0080ff
+ text-color=#333333
+ anchor=bottom-right
+ format=<b>%s</b>\n%b
+
+ [category="build"]
+ anchor=bottom-right
+ format=<b>%s</b>\n%b
+
+ [category="recording"]
+ anchor=bottom-right
+ format=<b>%s</b>\n%b
+
+ [category="info"]
+ anchor=center
+ format=<b>%s</b> %b
+
+ #[app-name="Google Chrome" body~="calendar.google.com.*"]
+ #max-visible=2
+
+ [mode=do-not-disturb]
+ invisible=1
+ '';
+ };
+}
home/common/desktop/sway/rofi.nix
@@ -0,0 +1,15 @@
+{ lib, pkgs, ... }:
+{
+ home.packages = with pkgs; [
+ fuzzel
+ raffi
+ ];
+
+ # FIXME updates this
+ xdg.configFile."raffi/raffi.yaml".text = lib.generators.toYAML { } {
+ "firefox" = {
+ binary = "firefox";
+ args = [ "--marionette" ];
+ };
+ };
+}
home/common/desktop/sway/swayidle.nix
@@ -0,0 +1,21 @@
+{ pkgs, ... }:
+{
+ home.packages = with pkgs; [
+ swaylock
+ swayidle
+ ];
+ services.swayidle = {
+ enable = true;
+ events = [
+ { event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock --daemonize -i $HOME/desktop/pictures/lockscreen"; }
+ { event = "lock"; command = "${pkgs.swaylock}/bin/swaylock --daemonize -i $HOME/desktop/pictures/lockscreen"; }
+ ];
+ timeouts = [
+ {
+ timeout = 600;
+ command = ''${pkgs.sway}/bin/swaymsg "output * power off"'';
+ resumeCommand = ''${pkgs.sway}/bin/swaymsg "output * power on"'';
+ }
+ ];
+ };
+}
home/common/desktop/default.nix
@@ -0,0 +1,52 @@
+{ config, pkgs, desktop, ... }:
+{
+ imports = [
+ # FIXME why the infinite recusion
+ # (./. + "/${desktop}")
+ ./sway
+
+ ./firefox.nix
+ ./gtk.nix
+ ./kitty.nix
+ ./mpv.nix
+ ./passage.nix
+ ./xdg.nix
+ ];
+
+ home.packages = with pkgs; [
+ aspell
+ aspellDicts.en
+ aspellDicts.fr
+ ffmpeg-full
+ hunspell
+ hunspellDicts.en_GB-ize
+ hunspellDicts.en_US-large
+ hunspellDicts.fr-any
+ libnotify
+ loupe
+ papers
+ playerctl
+ pwvucontrol
+ trash-cli
+ yt-dlp
+
+ unstable.signal-desktop
+ ];
+
+ home.pointerCursor = {
+ gtk.enable = true;
+ x11.enable = true;
+ package = pkgs.qogir-icon-theme;
+ name = "Qogir";
+ size = 24;
+ };
+
+ services = {
+ udiskie.enable = true;
+ };
+
+ home.file.".oath" = {
+ source = config.lib.file.mkOutOfStoreSymlink "/home/vincent/desktop/documents/.oath";
+ recursive = true;
+ };
+}
home/common/desktop/firefox.nix
@@ -0,0 +1,117 @@
+{ pkgs, ... }:
+
+{
+ programs.firefox = {
+ enable = true;
+ # Temporary fix
+ # https://github.com/nix-community/home-manager/issues/1641
+ # (https://github.com/NixOS/nixpkgs/pull/105796)
+ package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
+ extraPolicies = {
+ ExtensionSettings = { };
+ CaptivePortal = false;
+ DisableFirefoxStudies = true;
+ DisablePocket = true;
+ DisableTelemetry = true;
+ # DisableFirefoxAccounts = true;
+ FirefoxHome = {
+ Pocket = false;
+ # Snippets = false;
+ };
+ UserMessaging = {
+ ExtensionRecommendations = false;
+ SkipOnboarding = true;
+ };
+ };
+ };
+
+ profiles.default = {
+ id = 0;
+ isDefault = true;
+ settings = {
+ "general.warnOnAboutConfig" = false;
+ "browser.aboutConfig.showWarning" = false;
+ # It keeps asking me on startup if I want firefox as default
+ "browser.shell.checkDefaultBrowser" = false;
+ # Disable pocket
+ "extensions.pocket.enabled" = false;
+ "extensions.pocket.site" = "";
+ "extensions.pocket.oAuthConsumerKey" = "";
+ "extensions.pocket.api" = "";
+ "extensions.htmlaboutaddons.recommendations.enabled" = false;
+ # performance
+ "browser.download.animateNotifications" = false;
+ "browser.tabs.animate" = false;
+ "toolkit.cosmeticAnimations.enabled" = false;
+ "html5.offmainthread" = true;
+ "layers.acceleration.force-enabled" = true;
+ "layers.async-video.enabled" = true;
+ "layers.offmainthreadcomposition.async-animations" = true;
+ "layers.offmainthreadcomposition.enabled" = true;
+ "layout.frame_rate.precise" = true;
+ "webgl.force-enabled" = true;
+ "gfx.xrender.enabled" = true;
+ "gfx.webrender.all" = true;
+ "gfx.webrender.enable" = true;
+ # Misc
+ "privacy.donottrackheader.enabled" = true;
+ # "privacy.firstparty.isolate" = true;
+ #"privacy.resistFingerprinting" = true;
+ "privacy.trackingprotection.cryptomining.enabled" = true;
+ "privacy.trackingprotection.enabled" = true;
+ "privacy.trackingprotection.fingerprinting.enabled" = true;
+ "privacy.trackingprotection.socialtracking.enabled" = true;
+ # FIXME(vdemeester) Enable thoses
+ #"privacy.clearOnShutdown.history" = true;
+ #"privacy.clearOnShutdown.siteSettings" = true;
+ "browser.formfill.enable" = false;
+ "browser.newtabpage.activity-stream.feeds.telemetry" = false;
+ "browser.newtabpage.activity-stream.telemetry" = false;
+ "browser.ping-centre.telemetry" = false;
+ "browser.safebrowsing.enabled" = false;
+ "browser.search.geoip.url" = "";
+ "browser.selfsupport.url" = "";
+ "browser.send_pings" = false;
+ "browser.send_pings.require_same_host" = true;
+ "browser.sessionstore.privacy_level" = 2;
+ "browser.startup.homepage_override.buildID" = "";
+ "browser.startup.homepage_override.mstone" = "ignore";
+ "browser.urlbar.speculativeConnect.enabled" = false;
+ "browser.contentblocking.category" = "strict";
+ "browser.ctrlTab.recentlyUsedOrder" = false;
+ "network.dns.disablePrefetch" = true;
+ "network.dnsCacheEntries" = 100;
+ "network.dnsCacheExpiration" = 60;
+ #"network.http.referer.XOriginPolicy" = 2;
+ #"network.http.referer.XOriginTrimmingPolicy" = 2;
+ #"network.http.referer.spoofSource" = true;
+ "network.http.sendRefererHeader" = 2;
+ #"network.http.sendSecureXSiteReferrer" = false;
+ #"network.http.speculative-parallel-limit" = 0;
+ "network.predictor.enabled" = false;
+ "network.prefetch-next" = false;
+ "media.peerconnection.enabled" = false;
+ "media.peerconnection.turn.disable" = true;
+ "media.peerconnection.video.enabled" = false;
+ "media.peerconnection.identity.timeout" = 1;
+ "dom.battery.enabled" = false;
+ # "dom.event.clipboardevents.enabled" = false;
+ "dom.event.contextmenu.enabled" = false;
+ "toolkit.telemetry.archive.enabled" = false;
+ "toolkit.telemetry.bhrPing.enabled" = false;
+ "toolkit.telemetry.cachedClientID" = "";
+ "toolkit.telemetry.enabled" = false;
+ "toolkit.telemetry.firstShutdownPing.enabled" = false;
+ "toolkit.telemetry.hybridContent.enabled" = false;
+ "toolkit.telemetry.newProfilePing.enabled" = false;
+ "toolkit.telemetry.reportingpolicy.firstRun" = false;
+ "toolkit.telemetry.server" = "";
+ "toolkit.telemetry.shutdownPingSender.enabled" = false;
+ "toolkit.telemetry.unified" = false;
+ "toolkit.telemetry.updatePing.enabled" = false;
+ # Red Hat specific
+ "network.negotiate-auth.trusted-uris" = ".redhat.com";
+ };
+ };
+ };
+}
home/common/desktop/gtk.nix
@@ -0,0 +1,17 @@
+{ pkgs, config, ... }:
+{
+ gtk = {
+ enable = true;
+ iconTheme = {
+ name = "Arc";
+ package = pkgs.arc-icon-theme;
+ };
+ theme = {
+ name = "Arc";
+ package = pkgs.arc-theme;
+ };
+ gtk2 = {
+ configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
+ };
+ };
+}
home/common/desktop/kitty.nix
@@ -0,0 +1,35 @@
+_: {
+ programs.kitty = {
+ enable = true;
+ shellIntegration.enableZshIntegration = true;
+ settings = {
+ term = "xterm-256color";
+ close_on_child_death = "yes";
+ font_family = "JetBrains Mono";
+ tab_bar_edge = "top";
+ listen_on = "unix:/tmp/my kitty";
+ allow_remote_control = "yes";
+ macos_option_as_alt = "yes";
+ copy_on_select = "yes";
+ notify_on_cmd_finish = "invisible 5.0 notify";
+
+ active_tab_foreground = "#C6A0F6";
+ active_tab_background = "#0c0c0c";
+ inactive_tab_foreground = "#6E738D";
+ inactive_tab_background = "#0c0c0c";
+ };
+ font = {
+ name = "JetBrains Mono";
+ size = 12;
+ };
+ keybindings = {
+ "shift+left" = "neighboring_window left";
+ "shift+right" = "neighboring_window right";
+ "shift+up" = "neighboring_window up";
+ "shift+down" = "neighboring_window down";
+ };
+ theme = "Tango Light";
+ # action_alias mkh kitten hints --alphabet asdfghjklqwertyuiopzxcvbnmASDFGHJKLQWERTYUIOPZXCVBNM
+ # map kitty_mod+n mkh --type=linenum emacsclient -c -nw +{line} {path}
+ };
+}
home/common/desktop/mpv.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }:
+{
+ programs.mpv = {
+ enable = true;
+ config = {
+ hwdec = "auto";
+ };
+ scripts = [ pkgs.mpvScripts.mpris pkgs.mpvScripts.modernz ];
+ };
+}
home/common/desktop/passage.nix
@@ -0,0 +1,11 @@
+{ config, pkgs, ... }:
+{
+ home.sessionVariables = {
+ "PASSAGE_DIR" = "${config.xdg.dataHome}/passage";
+ "PASSAGE_IDENTITIES_FILE" = "${config.xdg.dataHome}/passage/identities";
+ };
+
+ home.packages = with pkgs; [
+ passage
+ ];
+}
home/common/desktop/xdg.nix
@@ -0,0 +1,91 @@
+{ pkgs, ... }:
+let
+ browser = [ "firefox.desktop" ];
+ videoPlayer = [ "mpv.desktop" ];
+ imageViewer = [ "org.gnome.Loupe.desktop" ];
+in
+{
+ home.packages = with pkgs; [
+ desktop-file-utils
+ xdg-user-dirs
+ xdg-utils
+ ];
+ xdg = {
+ enable = true;
+ portal = {
+ enable = true;
+ xdgOpenUsePortal = true;
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-hyprland
+ xdg-desktop-portal-gtk
+ ];
+ config = {
+ common = {
+ default = [
+ "gtk"
+ ];
+ };
+ };
+ };
+ mimeApps = {
+ enable = true;
+ defaultApplications = {
+ "application/x-extension-htm" = browser;
+ "application/x-extension-html" = browser;
+ "application/x-extension-shtml" = browser;
+ "application/x-extension-xht" = browser;
+ "application/x-extension-xhtml" = browser;
+ "application/xhtml+xml" = browser;
+ "text/html" = browser;
+ "x-scheme-handler/about" = browser;
+ "x-scheme-handler/chrome" = browser;
+ "x-scheme-handler/ftp" = browser;
+ "x-scheme-handler/http" = browser;
+ "x-scheme-handler/https" = browser;
+ "x-scheme-handler/unknown" = browser;
+
+ "audio/*" = videoPlayer;
+ "video/*" = videoPlayer;
+ "image/*" = imageViewer;
+
+ "application/json" = browser;
+
+ "application/pdf" = [ "org.gnome.Papers.desktop" ];
+
+ # Images
+ "image/jpeg" = imageViewer;
+ "image/png" = imageViewer;
+ "image/gif" = imageViewer;
+ "image/webp" = imageViewer;
+ "image/tiff" = imageViewer;
+ "image/x-tga" = imageViewer;
+ "image/vnd-ms.dds" = imageViewer;
+ "image/x-dds" = imageViewer;
+ "image/bmp" = imageViewer;
+ "image/vnd.microsoft.icon" = imageViewer;
+ "image/vnd.radiance" = imageViewer;
+ "image/x-exr" = imageViewer;
+ "image/x-portable-bitmap" = imageViewer;
+ "image/x-portable-graymap" = imageViewer;
+ "image/x-portable-pixmap" = imageViewer;
+ "image/x-portable-anymap" = imageViewer;
+ "image/x-qoi" = imageViewer;
+ "image/svg+xml" = imageViewer;
+ "image/svg+xml-compressed" = imageViewer;
+ "image/avif" = imageViewer;
+ "image/heic" = imageViewer;
+ "image/jxl" = imageViewer;
+ };
+ };
+ desktopEntries = {
+ firefox = {
+ name = "Firefox";
+ genericName = "Web Browser";
+ exec = "firefox %U";
+ terminal = false;
+ categories = [ "Application" "Network" "WebBrowser" ];
+ mimeType = [ "text/html" "text/xml" ];
+ };
+ };
+ };
+}
home/common/shell/tmux/tmux.conf
@@ -0,0 +1,97 @@
+# Tmux configuration file
+# Documented by Vincent Demeester.
+# Note that I am using bepo keyboard (that why key binding might be a
+# little weird for you).
+# First thing first, quickly reload $HOME/.tmux.conf
+#bind o source-file ~/.tmux.conf; display "tmux configuration reloaded."
+set -g history-limit 500000
+# Be sure to deactive the mode
+# set -g mode-mouse off
+# By default tmux adds a small delay when sending commands.
+# Reducing this delay by setting escape-time.
+set -sg escape-time 1
+bind v paste-buffer
+# Vim-behavior for moving between panes
+bind c select-pane -L
+bind t select-pane -D
+bind s select-pane -U
+bind r select-pane -R
+# Re-binding new-window and kill-pane to something more bepo-ish
+bind x new-window
+unbind c
+bind y kill-pane
+# Re-binding list-of-session
+bind u list-sessions
+# Vim-behavior for moving between windows
+bind -r C-t select-window -t :-
+bind -r C-s select-window -t :+
+# Vim-behavior for resizing panes
+bind -r C resize-pane -L 5
+bind -r T resize-pane -D 5
+bind -r S resize-pane -U 5
+bind -r R resize-pane -R 5
+# vi-mode for copy.
+set -g mode-key vi
+# `PREFIX`-`ESCAPE` for going into copy mode
+bind-key ESCAPE copy-mode
+bind-key b copy-mode
+# Rebinding some vi-copy keys in a more bepoish fashion.
+#bind-key -Tvi-copy 'v' begin-selection
+#bind-key -Tvi-copy 'y' copy-selection
+#bind-key -Tvi-copy 'C' top-line
+#bind-key -Tvi-copy 'T' scroll-down
+#bind-key -Tvi-copy 'S' scroll-up
+#bind-key -Tvi-copy 'R' bottom-line
+#bind-key -Tvi-copy 'c' cursor-left
+#bind-key -Tvi-copy 't' cursor-down
+#bind-key -Tvi-copy 's' cursor-up
+#bind-key -Tvi-copy 'r' cursor-right
+# Telling childs that this is a 256 terminal multiplexer
+set -g default-terminal "screen-256color"
+# Maximizing/Restoring panes (useful for *a lot* of workflows)
+unbind Up
+bind Up new-window -d -n tmp \; swap-pane -s tmp \; select-window -t tmp
+unbind Down
+bind Down last-window \; swap-pane -s tmp \; kill-window -t tmp
+# Recording pane content to a file. (This is crasy !)
+bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
+
+# titles
+# set -g show -g says
+set -g set-titles on
+set -g set-titles-string "tmux - #S:#I.#P (#W)"
+# Set window notifications
+setw -g monitor-activity on
+set -g visual-activity on
+# Rather than constraining window size to the maximum size of any client
+# connected to the *session*, constrain window size to the maximum size of any
+# client connected to *that window*. Much more reasonable.
+setw -g aggressive-resize on
+# binding
+bind-key C-a last-window
+bind-key C-r command-prompt 'rename-window %%'
+bind-key '"' split-window -v -c '#{pane_current_path}'
+bind-key '%' split-window -h -c '#{pane_current_path}'
+
+# Custom status line
+set-option -g status-left '-- #[fg=colour253]#S - '
+set-window-option -g window-status-format '#[fg=colour244]#I/#[fg=colour253] #W '
+set-window-option -g window-status-current-format '#[fg=colour244]#I/#[fg=colour253,bg=colour238] #W '
+set-option -g status-right '#[fg=colour250] %Y-%m-%d #[fg=colour254]%H.%M'
+set-option -g status-bg colour234
+set-option -g status-fg colour007
+set-option -g status-position top
+
+# Custom split colours
+set -g pane-active-border-style bg=colour234,fg=colour234
+set -g pane-border-style bg=colour234,fg=colour234
+
+# loud or quiet?
+set-option -g visual-activity off
+set-option -g visual-bell on
+set-option -g visual-silence off
+set-window-option -g monitor-activity on
+set-option -g bell-action none
+
+bind m switch-client -l
+bind M command-prompt -p 'switch session:' "run \"tm.sh '%%'\""
\ No newline at end of file
home/common/shell/zsh/_kubectl
@@ -0,0 +1,8634 @@
+#compdef kubectl
+
+# Copyright 2016 The Kubernetes Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+__kubectl_bash_source() {
+ alias shopt=':'
+ alias _expand=_bash_expand
+ alias _complete=_bash_comp
+ emulate -L sh
+ setopt kshglob noshglob braceexpand
+
+ source "$@"
+}
+
+__kubectl_type() {
+ # -t is not supported by zsh
+ if [ "$1" == "-t" ]; then
+ shift
+
+ # fake Bash 4 to disable "complete -o nospace". Instead
+ # "compopt +-o nospace" is used in the code to toggle trailing
+ # spaces. We don't support that, but leave trailing spaces on
+ # all the time
+ if [ "$1" = "__kubectl_compopt" ]; then
+ echo builtin
+ return 0
+ fi
+ fi
+ type "$@"
+}
+
+__kubectl_compgen() {
+ local completions w
+ completions=( $(compgen "$@") ) || return $?
+
+ # filter by given word as prefix
+ while [[ "$1" = -* && "$1" != -- ]]; do
+ shift
+ shift
+ done
+ if [[ "$1" == -- ]]; then
+ shift
+ fi
+ for w in "${completions[@]}"; do
+ if [[ "${w}" = "$1"* ]]; then
+ echo "${w}"
+ fi
+ done
+}
+
+__kubectl_compopt() {
+ true # don't do anything. Not supported by bashcompinit in zsh
+}
+
+__kubectl_ltrim_colon_completions()
+{
+ if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then
+ # Remove colon-word prefix from COMPREPLY items
+ local colon_word=${1%${1##*:}}
+ local i=${#COMPREPLY[*]}
+ while [[ $((--i)) -ge 0 ]]; do
+ COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"}
+ done
+ fi
+}
+
+__kubectl_get_comp_words_by_ref() {
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[${COMP_CWORD}-1]}"
+ words=("${COMP_WORDS[@]}")
+ cword=("${COMP_CWORD[@]}")
+}
+
+__kubectl_filedir() {
+ local RET OLD_IFS w qw
+
+ __kubectl_debug "_filedir $@ cur=$cur"
+ if [[ "$1" = \~* ]]; then
+ # somehow does not work. Maybe, zsh does not call this at all
+ eval echo "$1"
+ return 0
+ fi
+
+ OLD_IFS="$IFS"
+ IFS=$'\n'
+ if [ "$1" = "-d" ]; then
+ shift
+ RET=( $(compgen -d) )
+ else
+ RET=( $(compgen -f) )
+ fi
+ IFS="$OLD_IFS"
+
+ IFS="," __kubectl_debug "RET=${RET[@]} len=${#RET[@]}"
+
+ for w in ${RET[@]}; do
+ if [[ ! "${w}" = "${cur}"* ]]; then
+ continue
+ fi
+ if eval "[[ \"\${w}\" = *.$1 || -d \"\${w}\" ]]"; then
+ qw="$(__kubectl_quote "${w}")"
+ if [ -d "${w}" ]; then
+ COMPREPLY+=("${qw}/")
+ else
+ COMPREPLY+=("${qw}")
+ fi
+ fi
+ done
+}
+
+__kubectl_quote() {
+ if [[ $1 == \'* || $1 == \"* ]]; then
+ # Leave out first character
+ printf %q "${1:1}"
+ else
+ printf %q "$1"
+ fi
+}
+
+autoload -U +X bashcompinit && bashcompinit
+
+# use word boundary patterns for BSD or GNU sed
+LWORD='[[:<:]]'
+RWORD='[[:>:]]'
+if sed --help 2>&1 | grep -q GNU; then
+ LWORD='\<'
+ RWORD='\>'
+fi
+
+__kubectl_convert_bash_to_zsh() {
+ sed \
+ -e 's/declare -F/whence -w/' \
+ -e 's/_get_comp_words_by_ref "\$@"/_get_comp_words_by_ref "\$*"/' \
+ -e 's/local \([a-zA-Z0-9_]*\)=/local \1; \1=/' \
+ -e 's/flags+=("\(--.*\)=")/flags+=("\1"); two_word_flags+=("\1")/' \
+ -e 's/must_have_one_flag+=("\(--.*\)=")/must_have_one_flag+=("\1")/' \
+ -e "s/${LWORD}_filedir${RWORD}/__kubectl_filedir/g" \
+ -e "s/${LWORD}_get_comp_words_by_ref${RWORD}/__kubectl_get_comp_words_by_ref/g" \
+ -e "s/${LWORD}__ltrim_colon_completions${RWORD}/__kubectl_ltrim_colon_completions/g" \
+ -e "s/${LWORD}compgen${RWORD}/__kubectl_compgen/g" \
+ -e "s/${LWORD}compopt${RWORD}/__kubectl_compopt/g" \
+ -e "s/${LWORD}declare${RWORD}/builtin declare/g" \
+ -e "s/\\\$(type${RWORD}/\$(__kubectl_type/g" \
+ <<'BASH_COMPLETION_EOF'
+# bash completion for kubectl -*- shell-script -*-
+
+__kubectl_debug()
+{
+ if [[ -n ${BASH_COMP_DEBUG_FILE} ]]; then
+ echo "$*" >> "${BASH_COMP_DEBUG_FILE}"
+ fi
+}
+
+# Homebrew on Macs have version 1.3 of bash-completion which doesn't include
+# _init_completion. This is a very minimal version of that function.
+__kubectl_init_completion()
+{
+ COMPREPLY=()
+ _get_comp_words_by_ref "$@" cur prev words cword
+}
+
+__kubectl_index_of_word()
+{
+ local w word=$1
+ shift
+ index=0
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ index=$((index+1))
+ done
+ index=-1
+}
+
+__kubectl_contains_word()
+{
+ local w word=$1; shift
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ done
+ return 1
+}
+
+__kubectl_handle_reply()
+{
+ __kubectl_debug "${FUNCNAME[0]}"
+ case $cur in
+ -*)
+ if [[ $(type -t compopt) = "builtin" ]]; then
+ compopt -o nospace
+ fi
+ local allflags
+ if [ ${#must_have_one_flag[@]} -ne 0 ]; then
+ allflags=("${must_have_one_flag[@]}")
+ else
+ allflags=("${flags[*]} ${two_word_flags[*]}")
+ fi
+ COMPREPLY=( $(compgen -W "${allflags[*]}" -- "$cur") )
+ if [[ $(type -t compopt) = "builtin" ]]; then
+ [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace
+ fi
+
+ # complete after --flag=abc
+ if [[ $cur == *=* ]]; then
+ if [[ $(type -t compopt) = "builtin" ]]; then
+ compopt +o nospace
+ fi
+
+ local index flag
+ flag="${cur%=*}"
+ __kubectl_index_of_word "${flag}" "${flags_with_completion[@]}"
+ COMPREPLY=()
+ if [[ ${index} -ge 0 ]]; then
+ PREFIX=""
+ cur="${cur#*=}"
+ ${flags_completion[${index}]}
+ if [ -n "${ZSH_VERSION}" ]; then
+ # zsh completion needs --flag= prefix
+ eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )"
+ fi
+ fi
+ fi
+ return 0;
+ ;;
+ esac
+
+ # check if we are handling a flag with special work handling
+ local index
+ __kubectl_index_of_word "${prev}" "${flags_with_completion[@]}"
+ if [[ ${index} -ge 0 ]]; then
+ ${flags_completion[${index}]}
+ return
+ fi
+
+ # we are parsing a flag and don't have a special handler, no completion
+ if [[ ${cur} != "${words[cword]}" ]]; then
+ return
+ fi
+
+ local completions
+ completions=("${commands[@]}")
+ if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then
+ completions=("${must_have_one_noun[@]}")
+ fi
+ if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then
+ completions+=("${must_have_one_flag[@]}")
+ fi
+ COMPREPLY=( $(compgen -W "${completions[*]}" -- "$cur") )
+
+ if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then
+ COMPREPLY=( $(compgen -W "${noun_aliases[*]}" -- "$cur") )
+ fi
+
+ if [[ ${#COMPREPLY[@]} -eq 0 ]]; then
+ declare -F __custom_func >/dev/null && __custom_func
+ fi
+
+ # available in bash-completion >= 2, not always present on macOS
+ if declare -F __ltrim_colon_completions >/dev/null; then
+ __ltrim_colon_completions "$cur"
+ fi
+
+ # If there is only 1 completion and it is a flag with an = it will be completed
+ # but we don't want a space after the =
+ if [[ "${#COMPREPLY[@]}" -eq "1" ]] && [[ $(type -t compopt) = "builtin" ]] && [[ "${COMPREPLY[0]}" == --*= ]]; then
+ compopt -o nospace
+ fi
+}
+
+# The arguments should be in the form "ext1|ext2|extn"
+__kubectl_handle_filename_extension_flag()
+{
+ local ext="$1"
+ _filedir "@(${ext})"
+}
+
+__kubectl_handle_subdirs_in_dir_flag()
+{
+ local dir="$1"
+ pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1
+}
+
+__kubectl_handle_flag()
+{
+ __kubectl_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+ # if a command required a flag, and we found it, unset must_have_one_flag()
+ local flagname=${words[c]}
+ local flagvalue
+ # if the word contained an =
+ if [[ ${words[c]} == *"="* ]]; then
+ flagvalue=${flagname#*=} # take in as flagvalue after the =
+ flagname=${flagname%=*} # strip everything after the =
+ flagname="${flagname}=" # but put the = back
+ fi
+ __kubectl_debug "${FUNCNAME[0]}: looking for ${flagname}"
+ if __kubectl_contains_word "${flagname}" "${must_have_one_flag[@]}"; then
+ must_have_one_flag=()
+ fi
+
+ # if you set a flag which only applies to this command, don't show subcommands
+ if __kubectl_contains_word "${flagname}" "${local_nonpersistent_flags[@]}"; then
+ commands=()
+ fi
+
+ # keep flag value with flagname as flaghash
+ # flaghash variable is an associative array which is only supported in bash > 3.
+ if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then
+ if [ -n "${flagvalue}" ] ; then
+ flaghash[${flagname}]=${flagvalue}
+ elif [ -n "${words[ $((c+1)) ]}" ] ; then
+ flaghash[${flagname}]=${words[ $((c+1)) ]}
+ else
+ flaghash[${flagname}]="true" # pad "true" for bool flag
+ fi
+ fi
+
+ # skip the argument to a two word flag
+ if __kubectl_contains_word "${words[c]}" "${two_word_flags[@]}"; then
+ c=$((c+1))
+ # if we are looking for a flags value, don't show commands
+ if [[ $c -eq $cword ]]; then
+ commands=()
+ fi
+ fi
+
+ c=$((c+1))
+
+}
+
+__kubectl_handle_noun()
+{
+ __kubectl_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+ if __kubectl_contains_word "${words[c]}" "${must_have_one_noun[@]}"; then
+ must_have_one_noun=()
+ elif __kubectl_contains_word "${words[c]}" "${noun_aliases[@]}"; then
+ must_have_one_noun=()
+ fi
+
+ nouns+=("${words[c]}")
+ c=$((c+1))
+}
+
+__kubectl_handle_command()
+{
+ __kubectl_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+ local next_command
+ if [[ -n ${last_command} ]]; then
+ next_command="_${last_command}_${words[c]//:/__}"
+ else
+ if [[ $c -eq 0 ]]; then
+ next_command="_kubectl_root_command"
+ else
+ next_command="_${words[c]//:/__}"
+ fi
+ fi
+ c=$((c+1))
+ __kubectl_debug "${FUNCNAME[0]}: looking for ${next_command}"
+ declare -F "$next_command" >/dev/null && $next_command
+}
+
+__kubectl_handle_word()
+{
+ if [[ $c -ge $cword ]]; then
+ __kubectl_handle_reply
+ return
+ fi
+ __kubectl_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+ if [[ "${words[c]}" == -* ]]; then
+ __kubectl_handle_flag
+ elif __kubectl_contains_word "${words[c]}" "${commands[@]}"; then
+ __kubectl_handle_command
+ elif [[ $c -eq 0 ]]; then
+ __kubectl_handle_command
+ else
+ __kubectl_handle_noun
+ fi
+ __kubectl_handle_word
+}
+
+# call kubectl get $1,
+__kubectl_override_flag_list=(--kubeconfig --cluster --user --context --namespace --server -n -s)
+__kubectl_override_flags()
+{
+ local ${__kubectl_override_flag_list[*]##*-} two_word_of of var
+ for w in "${words[@]}"; do
+ if [ -n "${two_word_of}" ]; then
+ eval "${two_word_of##*-}=\"${two_word_of}=\${w}\""
+ two_word_of=
+ continue
+ fi
+ for of in "${__kubectl_override_flag_list[@]}"; do
+ case "${w}" in
+ ${of}=*)
+ eval "${of##*-}=\"${w}\""
+ ;;
+ ${of})
+ two_word_of="${of}"
+ ;;
+ esac
+ done
+ done
+ for var in "${__kubectl_override_flag_list[@]##*-}"; do
+ if eval "test -n \"\$${var}\""; then
+ eval "echo \${${var}}"
+ fi
+ done
+}
+
+__kubectl_config_get_contexts()
+{
+ __kubectl_parse_config "contexts"
+}
+
+__kubectl_config_get_clusters()
+{
+ __kubectl_parse_config "clusters"
+}
+
+__kubectl_config_get_users()
+{
+ __kubectl_parse_config "users"
+}
+
+# $1 has to be "contexts", "clusters" or "users"
+__kubectl_parse_config()
+{
+ local template kubectl_out
+ template="{{ range .$1 }}{{ .name }} {{ end }}"
+ if kubectl_out=$(kubectl config $(__kubectl_override_flags) -o template --template="${template}" view 2>/dev/null); then
+ COMPREPLY=( $( compgen -W "${kubectl_out[*]}" -- "$cur" ) )
+ fi
+}
+
+# $1 is the name of resource (required)
+# $2 is template string for kubectl get (optional)
+__kubectl_parse_get()
+{
+ local template
+ template="${2:-"{{ range .items }}{{ .metadata.name }} {{ end }}"}"
+ local kubectl_out
+ if kubectl_out=$(kubectl get $(__kubectl_override_flags) -o template --template="${template}" "$1" 2>/dev/null); then
+ COMPREPLY+=( $( compgen -W "${kubectl_out[*]}" -- "$cur" ) )
+ fi
+}
+
+__kubectl_get_resource()
+{
+ if [[ ${#nouns[@]} -eq 0 ]]; then
+ local kubectl_out
+ if kubectl_out=$(kubectl api-resources $(__kubectl_override_flags) -o name --cached --request-timeout=5s --verbs=get 2>/dev/null); then
+ COMPREPLY=( $( compgen -W "${kubectl_out[*]}" -- "$cur" ) )
+ return 0
+ fi
+ return 1
+ fi
+ __kubectl_parse_get "${nouns[${#nouns[@]} -1]}"
+}
+
+__kubectl_get_resource_namespace()
+{
+ __kubectl_parse_get "namespace"
+}
+
+__kubectl_get_resource_pod()
+{
+ __kubectl_parse_get "pod"
+}
+
+__kubectl_get_resource_rc()
+{
+ __kubectl_parse_get "rc"
+}
+
+__kubectl_get_resource_node()
+{
+ __kubectl_parse_get "node"
+}
+
+__kubectl_get_resource_clusterrole()
+{
+ __kubectl_parse_get "clusterrole"
+}
+
+# $1 is the name of the pod we want to get the list of containers inside
+__kubectl_get_containers()
+{
+ local template
+ template="{{ range .spec.initContainers }}{{ .name }} {{end}}{{ range .spec.containers }}{{ .name }} {{ end }}"
+ __kubectl_debug "${FUNCNAME} nouns are ${nouns[*]}"
+
+ local len="${#nouns[@]}"
+ if [[ ${len} -ne 1 ]]; then
+ return
+ fi
+ local last=${nouns[${len} -1]}
+ local kubectl_out
+ if kubectl_out=$(kubectl get $(__kubectl_override_flags) -o template --template="${template}" pods "${last}" 2>/dev/null); then
+ COMPREPLY=( $( compgen -W "${kubectl_out[*]}" -- "$cur" ) )
+ fi
+}
+
+# Require both a pod and a container to be specified
+__kubectl_require_pod_and_container()
+{
+ if [[ ${#nouns[@]} -eq 0 ]]; then
+ __kubectl_parse_get pods
+ return 0
+ fi;
+ __kubectl_get_containers
+ return 0
+}
+
+__kubectl_cp()
+{
+ if [[ $(type -t compopt) = "builtin" ]]; then
+ compopt -o nospace
+ fi
+
+ case "$cur" in
+ /*|[.~]*) # looks like a path
+ return
+ ;;
+ *:*) # TODO: complete remote files in the pod
+ return
+ ;;
+ */*) # complete <namespace>/<pod>
+ local template namespace kubectl_out
+ template="{{ range .items }}{{ .metadata.namespace }}/{{ .metadata.name }}: {{ end }}"
+ namespace="${cur%%/*}"
+ if kubectl_out=( $(kubectl get $(__kubectl_override_flags) --namespace "${namespace}" -o template --template="${template}" pods 2>/dev/null) ); then
+ COMPREPLY=( $(compgen -W "${kubectl_out[*]}" -- "${cur}") )
+ fi
+ return
+ ;;
+ *) # complete namespaces, pods, and filedirs
+ __kubectl_parse_get "namespace" "{{ range .items }}{{ .metadata.name }}/ {{ end }}"
+ __kubectl_parse_get "pod" "{{ range .items }}{{ .metadata.name }}: {{ end }}"
+ _filedir
+ ;;
+ esac
+}
+
+__custom_func() {
+ case ${last_command} in
+ kubectl_get | kubectl_describe | kubectl_delete | kubectl_label | kubectl_edit | kubectl_patch |\
+ kubectl_annotate | kubectl_expose | kubectl_scale | kubectl_autoscale | kubectl_taint | kubectl_rollout_* |\
+ kubectl_apply_edit-last-applied | kubectl_apply_view-last-applied)
+ __kubectl_get_resource
+ return
+ ;;
+ kubectl_logs)
+ __kubectl_require_pod_and_container
+ return
+ ;;
+ kubectl_exec | kubectl_port-forward | kubectl_top_pod | kubectl_attach)
+ __kubectl_get_resource_pod
+ return
+ ;;
+ kubectl_rolling-update)
+ __kubectl_get_resource_rc
+ return
+ ;;
+ kubectl_cordon | kubectl_uncordon | kubectl_drain | kubectl_top_node)
+ __kubectl_get_resource_node
+ return
+ ;;
+ kubectl_config_use-context | kubectl_config_rename-context)
+ __kubectl_config_get_contexts
+ return
+ ;;
+ kubectl_config_delete-cluster)
+ __kubectl_config_get_clusters
+ return
+ ;;
+ kubectl_cp)
+ __kubectl_cp
+ return
+ ;;
+ *)
+ ;;
+ esac
+}
+
+_kubectl_annotate()
+{
+ last_command="kubectl_annotate"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--field-selector=")
+ local_nonpersistent_flags+=("--field-selector=")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--overwrite")
+ local_nonpersistent_flags+=("--overwrite")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--resource-version=")
+ local_nonpersistent_flags+=("--resource-version=")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_api-resources()
+{
+ last_command="kubectl_api-resources"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--api-group=")
+ local_nonpersistent_flags+=("--api-group=")
+ flags+=("--cached")
+ local_nonpersistent_flags+=("--cached")
+ flags+=("--namespaced")
+ local_nonpersistent_flags+=("--namespaced")
+ flags+=("--no-headers")
+ local_nonpersistent_flags+=("--no-headers")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--verbs=")
+ local_nonpersistent_flags+=("--verbs=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_api-versions()
+{
+ last_command="kubectl_api-versions"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_apply_edit-last-applied()
+{
+ last_command="kubectl_apply_edit-last-applied"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--windows-line-endings")
+ local_nonpersistent_flags+=("--windows-line-endings")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_apply_set-last-applied()
+{
+ last_command="kubectl_apply_set-last-applied"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--create-annotation")
+ local_nonpersistent_flags+=("--create-annotation")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_apply_view-last-applied()
+{
+ last_command="kubectl_apply_view-last-applied"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_apply()
+{
+ last_command="kubectl_apply"
+ commands=()
+ commands+=("edit-last-applied")
+ commands+=("set-last-applied")
+ commands+=("view-last-applied")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--cascade")
+ local_nonpersistent_flags+=("--cascade")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--experimental-field-manager=")
+ local_nonpersistent_flags+=("--experimental-field-manager=")
+ flags+=("--experimental-force-conflicts")
+ local_nonpersistent_flags+=("--experimental-force-conflicts")
+ flags+=("--experimental-server-side")
+ local_nonpersistent_flags+=("--experimental-server-side")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--force")
+ local_nonpersistent_flags+=("--force")
+ flags+=("--grace-period=")
+ local_nonpersistent_flags+=("--grace-period=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--openapi-patch")
+ local_nonpersistent_flags+=("--openapi-patch")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--overwrite")
+ local_nonpersistent_flags+=("--overwrite")
+ flags+=("--prune")
+ local_nonpersistent_flags+=("--prune")
+ flags+=("--prune-whitelist=")
+ local_nonpersistent_flags+=("--prune-whitelist=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--server-dry-run")
+ local_nonpersistent_flags+=("--server-dry-run")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--timeout=")
+ local_nonpersistent_flags+=("--timeout=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--wait")
+ local_nonpersistent_flags+=("--wait")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_attach()
+{
+ last_command="kubectl_attach"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--container=")
+ two_word_flags+=("-c")
+ local_nonpersistent_flags+=("--container=")
+ flags+=("--pod-running-timeout=")
+ local_nonpersistent_flags+=("--pod-running-timeout=")
+ flags+=("--stdin")
+ flags+=("-i")
+ local_nonpersistent_flags+=("--stdin")
+ flags+=("--tty")
+ flags+=("-t")
+ local_nonpersistent_flags+=("--tty")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_auth_can-i()
+{
+ last_command="kubectl_auth_can-i"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all-namespaces")
+ flags+=("-A")
+ local_nonpersistent_flags+=("--all-namespaces")
+ flags+=("--list")
+ local_nonpersistent_flags+=("--list")
+ flags+=("--no-headers")
+ local_nonpersistent_flags+=("--no-headers")
+ flags+=("--quiet")
+ flags+=("-q")
+ local_nonpersistent_flags+=("--quiet")
+ flags+=("--subresource=")
+ local_nonpersistent_flags+=("--subresource=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_auth_reconcile()
+{
+ last_command="kubectl_auth_reconcile"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--remove-extra-permissions")
+ local_nonpersistent_flags+=("--remove-extra-permissions")
+ flags+=("--remove-extra-subjects")
+ local_nonpersistent_flags+=("--remove-extra-subjects")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_auth()
+{
+ last_command="kubectl_auth"
+ commands=()
+ commands+=("can-i")
+ commands+=("reconcile")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_autoscale()
+{
+ last_command="kubectl_autoscale"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--cpu-percent=")
+ local_nonpersistent_flags+=("--cpu-percent=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--max=")
+ local_nonpersistent_flags+=("--max=")
+ flags+=("--min=")
+ local_nonpersistent_flags+=("--min=")
+ flags+=("--name=")
+ local_nonpersistent_flags+=("--name=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_flag+=("--max=")
+ must_have_one_noun=()
+ must_have_one_noun+=("deployment")
+ must_have_one_noun+=("replicaset")
+ must_have_one_noun+=("replicationcontroller")
+ noun_aliases=()
+}
+
+_kubectl_certificate_approve()
+{
+ last_command="kubectl_certificate_approve"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--force")
+ local_nonpersistent_flags+=("--force")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_certificate_deny()
+{
+ last_command="kubectl_certificate_deny"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--force")
+ local_nonpersistent_flags+=("--force")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_certificate()
+{
+ last_command="kubectl_certificate"
+ commands=()
+ commands+=("approve")
+ commands+=("deny")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_cluster-info_dump()
+{
+ last_command="kubectl_cluster-info_dump"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all-namespaces")
+ flags+=("-A")
+ local_nonpersistent_flags+=("--all-namespaces")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--namespaces=")
+ local_nonpersistent_flags+=("--namespaces=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--output-directory=")
+ local_nonpersistent_flags+=("--output-directory=")
+ flags+=("--pod-running-timeout=")
+ local_nonpersistent_flags+=("--pod-running-timeout=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_cluster-info()
+{
+ last_command="kubectl_cluster-info"
+ commands=()
+ commands+=("dump")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_completion()
+{
+ last_command="kubectl_completion"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--help")
+ flags+=("-h")
+ local_nonpersistent_flags+=("--help")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ must_have_one_noun+=("bash")
+ must_have_one_noun+=("zsh")
+ noun_aliases=()
+}
+
+_kubectl_config_current-context()
+{
+ last_command="kubectl_config_current-context"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_delete-cluster()
+{
+ last_command="kubectl_config_delete-cluster"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_delete-context()
+{
+ last_command="kubectl_config_delete-context"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_get-clusters()
+{
+ last_command="kubectl_config_get-clusters"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_get-contexts()
+{
+ last_command="kubectl_config_get-contexts"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--no-headers")
+ local_nonpersistent_flags+=("--no-headers")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_rename-context()
+{
+ last_command="kubectl_config_rename-context"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_set()
+{
+ last_command="kubectl_config_set"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--set-raw-bytes")
+ local_nonpersistent_flags+=("--set-raw-bytes")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_set-cluster()
+{
+ last_command="kubectl_config_set-cluster"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--embed-certs")
+ local_nonpersistent_flags+=("--embed-certs")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_set-context()
+{
+ last_command="kubectl_config_set-context"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--current")
+ local_nonpersistent_flags+=("--current")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_set-credentials()
+{
+ last_command="kubectl_config_set-credentials"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--auth-provider=")
+ local_nonpersistent_flags+=("--auth-provider=")
+ flags+=("--auth-provider-arg=")
+ local_nonpersistent_flags+=("--auth-provider-arg=")
+ flags+=("--embed-certs")
+ local_nonpersistent_flags+=("--embed-certs")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_unset()
+{
+ last_command="kubectl_config_unset"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_use-context()
+{
+ last_command="kubectl_config_use-context"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config_view()
+{
+ last_command="kubectl_config_view"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--flatten")
+ local_nonpersistent_flags+=("--flatten")
+ flags+=("--merge")
+ local_nonpersistent_flags+=("--merge")
+ flags+=("--minify")
+ local_nonpersistent_flags+=("--minify")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--raw")
+ local_nonpersistent_flags+=("--raw")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_config()
+{
+ last_command="kubectl_config"
+ commands=()
+ commands+=("current-context")
+ commands+=("delete-cluster")
+ commands+=("delete-context")
+ commands+=("get-clusters")
+ commands+=("get-contexts")
+ commands+=("rename-context")
+ commands+=("set")
+ commands+=("set-cluster")
+ commands+=("set-context")
+ commands+=("set-credentials")
+ commands+=("unset")
+ commands+=("use-context")
+ commands+=("view")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_convert()
+{
+ last_command="kubectl_convert"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--output-version=")
+ local_nonpersistent_flags+=("--output-version=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_cordon()
+{
+ last_command="kubectl_cordon"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_cp()
+{
+ last_command="kubectl_cp"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--container=")
+ two_word_flags+=("-c")
+ local_nonpersistent_flags+=("--container=")
+ flags+=("--no-preserve")
+ local_nonpersistent_flags+=("--no-preserve")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_clusterrole()
+{
+ last_command="kubectl_create_clusterrole"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--aggregation-rule=")
+ local_nonpersistent_flags+=("--aggregation-rule=")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--non-resource-url=")
+ local_nonpersistent_flags+=("--non-resource-url=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--resource=")
+ local_nonpersistent_flags+=("--resource=")
+ flags+=("--resource-name=")
+ local_nonpersistent_flags+=("--resource-name=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--verb=")
+ local_nonpersistent_flags+=("--verb=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_clusterrolebinding()
+{
+ last_command="kubectl_create_clusterrolebinding"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--clusterrole=")
+ flags_with_completion+=("--clusterrole")
+ flags_completion+=("__kubectl_get_resource_clusterrole")
+ local_nonpersistent_flags+=("--clusterrole=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--group=")
+ local_nonpersistent_flags+=("--group=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--serviceaccount=")
+ local_nonpersistent_flags+=("--serviceaccount=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_configmap()
+{
+ last_command="kubectl_create_configmap"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--append-hash")
+ local_nonpersistent_flags+=("--append-hash")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--from-env-file=")
+ local_nonpersistent_flags+=("--from-env-file=")
+ flags+=("--from-file=")
+ local_nonpersistent_flags+=("--from-file=")
+ flags+=("--from-literal=")
+ local_nonpersistent_flags+=("--from-literal=")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_cronjob()
+{
+ last_command="kubectl_create_cronjob"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--image=")
+ local_nonpersistent_flags+=("--image=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--restart=")
+ local_nonpersistent_flags+=("--restart=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--schedule=")
+ local_nonpersistent_flags+=("--schedule=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_deployment()
+{
+ last_command="kubectl_create_deployment"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--image=")
+ local_nonpersistent_flags+=("--image=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_flag+=("--image=")
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_job()
+{
+ last_command="kubectl_create_job"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--from=")
+ local_nonpersistent_flags+=("--from=")
+ flags+=("--image=")
+ local_nonpersistent_flags+=("--image=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_namespace()
+{
+ last_command="kubectl_create_namespace"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_poddisruptionbudget()
+{
+ last_command="kubectl_create_poddisruptionbudget"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--max-unavailable=")
+ local_nonpersistent_flags+=("--max-unavailable=")
+ flags+=("--min-available=")
+ local_nonpersistent_flags+=("--min-available=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--selector=")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_priorityclass()
+{
+ last_command="kubectl_create_priorityclass"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--description=")
+ local_nonpersistent_flags+=("--description=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--global-default")
+ local_nonpersistent_flags+=("--global-default")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--value=")
+ local_nonpersistent_flags+=("--value=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_quota()
+{
+ last_command="kubectl_create_quota"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--hard=")
+ local_nonpersistent_flags+=("--hard=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--scopes=")
+ local_nonpersistent_flags+=("--scopes=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_role()
+{
+ last_command="kubectl_create_role"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--resource=")
+ local_nonpersistent_flags+=("--resource=")
+ flags+=("--resource-name=")
+ local_nonpersistent_flags+=("--resource-name=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--verb=")
+ local_nonpersistent_flags+=("--verb=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_rolebinding()
+{
+ last_command="kubectl_create_rolebinding"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--clusterrole=")
+ local_nonpersistent_flags+=("--clusterrole=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--group=")
+ local_nonpersistent_flags+=("--group=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--role=")
+ local_nonpersistent_flags+=("--role=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--serviceaccount=")
+ local_nonpersistent_flags+=("--serviceaccount=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_secret_docker-registry()
+{
+ last_command="kubectl_create_secret_docker-registry"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--append-hash")
+ local_nonpersistent_flags+=("--append-hash")
+ flags+=("--docker-email=")
+ local_nonpersistent_flags+=("--docker-email=")
+ flags+=("--docker-password=")
+ local_nonpersistent_flags+=("--docker-password=")
+ flags+=("--docker-server=")
+ local_nonpersistent_flags+=("--docker-server=")
+ flags+=("--docker-username=")
+ local_nonpersistent_flags+=("--docker-username=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--from-file=")
+ local_nonpersistent_flags+=("--from-file=")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_flag+=("--docker-password=")
+ must_have_one_flag+=("--docker-username=")
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_secret_generic()
+{
+ last_command="kubectl_create_secret_generic"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--append-hash")
+ local_nonpersistent_flags+=("--append-hash")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--from-env-file=")
+ local_nonpersistent_flags+=("--from-env-file=")
+ flags+=("--from-file=")
+ local_nonpersistent_flags+=("--from-file=")
+ flags+=("--from-literal=")
+ local_nonpersistent_flags+=("--from-literal=")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--type=")
+ local_nonpersistent_flags+=("--type=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_secret_tls()
+{
+ last_command="kubectl_create_secret_tls"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--append-hash")
+ local_nonpersistent_flags+=("--append-hash")
+ flags+=("--cert=")
+ local_nonpersistent_flags+=("--cert=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--key=")
+ local_nonpersistent_flags+=("--key=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_secret()
+{
+ last_command="kubectl_create_secret"
+ commands=()
+ commands+=("docker-registry")
+ commands+=("generic")
+ commands+=("tls")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_service_clusterip()
+{
+ last_command="kubectl_create_service_clusterip"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--clusterip=")
+ local_nonpersistent_flags+=("--clusterip=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--tcp=")
+ local_nonpersistent_flags+=("--tcp=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_service_externalname()
+{
+ last_command="kubectl_create_service_externalname"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--external-name=")
+ local_nonpersistent_flags+=("--external-name=")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--tcp=")
+ local_nonpersistent_flags+=("--tcp=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_flag+=("--external-name=")
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_service_loadbalancer()
+{
+ last_command="kubectl_create_service_loadbalancer"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--tcp=")
+ local_nonpersistent_flags+=("--tcp=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_service_nodeport()
+{
+ last_command="kubectl_create_service_nodeport"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--node-port=")
+ local_nonpersistent_flags+=("--node-port=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--tcp=")
+ local_nonpersistent_flags+=("--tcp=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_service()
+{
+ last_command="kubectl_create_service"
+ commands=()
+ commands+=("clusterip")
+ commands+=("externalname")
+ commands+=("loadbalancer")
+ commands+=("nodeport")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create_serviceaccount()
+{
+ last_command="kubectl_create_serviceaccount"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_create()
+{
+ last_command="kubectl_create"
+ commands=()
+ commands+=("clusterrole")
+ commands+=("clusterrolebinding")
+ commands+=("configmap")
+ commands+=("cronjob")
+ commands+=("deployment")
+ commands+=("job")
+ commands+=("namespace")
+ commands+=("poddisruptionbudget")
+ commands+=("priorityclass")
+ commands+=("quota")
+ commands+=("role")
+ commands+=("rolebinding")
+ commands+=("secret")
+ commands+=("service")
+ commands+=("serviceaccount")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--edit")
+ local_nonpersistent_flags+=("--edit")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--raw=")
+ local_nonpersistent_flags+=("--raw=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--windows-line-endings")
+ local_nonpersistent_flags+=("--windows-line-endings")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_delete()
+{
+ last_command="kubectl_delete"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--all-namespaces")
+ flags+=("-A")
+ local_nonpersistent_flags+=("--all-namespaces")
+ flags+=("--cascade")
+ local_nonpersistent_flags+=("--cascade")
+ flags+=("--field-selector=")
+ local_nonpersistent_flags+=("--field-selector=")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--force")
+ local_nonpersistent_flags+=("--force")
+ flags+=("--grace-period=")
+ local_nonpersistent_flags+=("--grace-period=")
+ flags+=("--ignore-not-found")
+ local_nonpersistent_flags+=("--ignore-not-found")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--now")
+ local_nonpersistent_flags+=("--now")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--timeout=")
+ local_nonpersistent_flags+=("--timeout=")
+ flags+=("--wait")
+ local_nonpersistent_flags+=("--wait")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_describe()
+{
+ last_command="kubectl_describe"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all-namespaces")
+ flags+=("-A")
+ local_nonpersistent_flags+=("--all-namespaces")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--show-events")
+ local_nonpersistent_flags+=("--show-events")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_diff()
+{
+ last_command="kubectl_diff"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--experimental-field-manager=")
+ local_nonpersistent_flags+=("--experimental-field-manager=")
+ flags+=("--experimental-force-conflicts")
+ local_nonpersistent_flags+=("--experimental-force-conflicts")
+ flags+=("--experimental-server-side")
+ local_nonpersistent_flags+=("--experimental-server-side")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_drain()
+{
+ last_command="kubectl_drain"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--delete-local-data")
+ local_nonpersistent_flags+=("--delete-local-data")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--force")
+ local_nonpersistent_flags+=("--force")
+ flags+=("--grace-period=")
+ local_nonpersistent_flags+=("--grace-period=")
+ flags+=("--ignore-daemonsets")
+ local_nonpersistent_flags+=("--ignore-daemonsets")
+ flags+=("--pod-selector=")
+ local_nonpersistent_flags+=("--pod-selector=")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--timeout=")
+ local_nonpersistent_flags+=("--timeout=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_edit()
+{
+ last_command="kubectl_edit"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--output-patch")
+ local_nonpersistent_flags+=("--output-patch")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--windows-line-endings")
+ local_nonpersistent_flags+=("--windows-line-endings")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_exec()
+{
+ last_command="kubectl_exec"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--container=")
+ two_word_flags+=("-c")
+ local_nonpersistent_flags+=("--container=")
+ flags+=("--stdin")
+ flags+=("-i")
+ local_nonpersistent_flags+=("--stdin")
+ flags+=("--tty")
+ flags+=("-t")
+ local_nonpersistent_flags+=("--tty")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_explain()
+{
+ last_command="kubectl_explain"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--api-version=")
+ local_nonpersistent_flags+=("--api-version=")
+ flags+=("--recursive")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_expose()
+{
+ last_command="kubectl_expose"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--cluster-ip=")
+ local_nonpersistent_flags+=("--cluster-ip=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--external-ip=")
+ local_nonpersistent_flags+=("--external-ip=")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--labels=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--labels=")
+ flags+=("--load-balancer-ip=")
+ local_nonpersistent_flags+=("--load-balancer-ip=")
+ flags+=("--name=")
+ local_nonpersistent_flags+=("--name=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--overrides=")
+ local_nonpersistent_flags+=("--overrides=")
+ flags+=("--port=")
+ local_nonpersistent_flags+=("--port=")
+ flags+=("--protocol=")
+ local_nonpersistent_flags+=("--protocol=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--selector=")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--session-affinity=")
+ local_nonpersistent_flags+=("--session-affinity=")
+ flags+=("--target-port=")
+ local_nonpersistent_flags+=("--target-port=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--type=")
+ local_nonpersistent_flags+=("--type=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ must_have_one_noun+=("deployment")
+ must_have_one_noun+=("pod")
+ must_have_one_noun+=("replicaset")
+ must_have_one_noun+=("replicationcontroller")
+ must_have_one_noun+=("service")
+ noun_aliases=()
+}
+
+_kubectl_get()
+{
+ last_command="kubectl_get"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all-namespaces")
+ flags+=("-A")
+ local_nonpersistent_flags+=("--all-namespaces")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--chunk-size=")
+ local_nonpersistent_flags+=("--chunk-size=")
+ flags+=("--field-selector=")
+ local_nonpersistent_flags+=("--field-selector=")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--ignore-not-found")
+ local_nonpersistent_flags+=("--ignore-not-found")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--label-columns=")
+ two_word_flags+=("-L")
+ local_nonpersistent_flags+=("--label-columns=")
+ flags+=("--no-headers")
+ local_nonpersistent_flags+=("--no-headers")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--raw=")
+ local_nonpersistent_flags+=("--raw=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--server-print")
+ local_nonpersistent_flags+=("--server-print")
+ flags+=("--show-kind")
+ local_nonpersistent_flags+=("--show-kind")
+ flags+=("--show-labels")
+ local_nonpersistent_flags+=("--show-labels")
+ flags+=("--sort-by=")
+ local_nonpersistent_flags+=("--sort-by=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--watch")
+ flags+=("-w")
+ local_nonpersistent_flags+=("--watch")
+ flags+=("--watch-only")
+ local_nonpersistent_flags+=("--watch-only")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_kustomize()
+{
+ last_command="kubectl_kustomize"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_label()
+{
+ last_command="kubectl_label"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--field-selector=")
+ local_nonpersistent_flags+=("--field-selector=")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--list")
+ local_nonpersistent_flags+=("--list")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--overwrite")
+ local_nonpersistent_flags+=("--overwrite")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--resource-version=")
+ local_nonpersistent_flags+=("--resource-version=")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_logs()
+{
+ last_command="kubectl_logs"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all-containers")
+ local_nonpersistent_flags+=("--all-containers")
+ flags+=("--container=")
+ two_word_flags+=("-c")
+ local_nonpersistent_flags+=("--container=")
+ flags+=("--follow")
+ flags+=("-f")
+ local_nonpersistent_flags+=("--follow")
+ flags+=("--limit-bytes=")
+ local_nonpersistent_flags+=("--limit-bytes=")
+ flags+=("--max-log-requests=")
+ local_nonpersistent_flags+=("--max-log-requests=")
+ flags+=("--pod-running-timeout=")
+ local_nonpersistent_flags+=("--pod-running-timeout=")
+ flags+=("--previous")
+ flags+=("-p")
+ local_nonpersistent_flags+=("--previous")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--since=")
+ local_nonpersistent_flags+=("--since=")
+ flags+=("--since-time=")
+ local_nonpersistent_flags+=("--since-time=")
+ flags+=("--tail=")
+ local_nonpersistent_flags+=("--tail=")
+ flags+=("--timestamps")
+ local_nonpersistent_flags+=("--timestamps")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_options()
+{
+ last_command="kubectl_options"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_patch()
+{
+ last_command="kubectl_patch"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--patch=")
+ two_word_flags+=("-p")
+ local_nonpersistent_flags+=("--patch=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--type=")
+ local_nonpersistent_flags+=("--type=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_flag+=("--patch=")
+ must_have_one_flag+=("-p")
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_plugin_list()
+{
+ last_command="kubectl_plugin_list"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--name-only")
+ local_nonpersistent_flags+=("--name-only")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_plugin()
+{
+ last_command="kubectl_plugin"
+ commands=()
+ commands+=("list")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_port-forward()
+{
+ last_command="kubectl_port-forward"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--address=")
+ local_nonpersistent_flags+=("--address=")
+ flags+=("--pod-running-timeout=")
+ local_nonpersistent_flags+=("--pod-running-timeout=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_proxy()
+{
+ last_command="kubectl_proxy"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--accept-hosts=")
+ local_nonpersistent_flags+=("--accept-hosts=")
+ flags+=("--accept-paths=")
+ local_nonpersistent_flags+=("--accept-paths=")
+ flags+=("--address=")
+ local_nonpersistent_flags+=("--address=")
+ flags+=("--api-prefix=")
+ local_nonpersistent_flags+=("--api-prefix=")
+ flags+=("--disable-filter")
+ local_nonpersistent_flags+=("--disable-filter")
+ flags+=("--keepalive=")
+ local_nonpersistent_flags+=("--keepalive=")
+ flags+=("--port=")
+ two_word_flags+=("-p")
+ local_nonpersistent_flags+=("--port=")
+ flags+=("--reject-methods=")
+ local_nonpersistent_flags+=("--reject-methods=")
+ flags+=("--reject-paths=")
+ local_nonpersistent_flags+=("--reject-paths=")
+ flags+=("--unix-socket=")
+ two_word_flags+=("-u")
+ local_nonpersistent_flags+=("--unix-socket=")
+ flags+=("--www=")
+ two_word_flags+=("-w")
+ local_nonpersistent_flags+=("--www=")
+ flags+=("--www-prefix=")
+ two_word_flags+=("-P")
+ local_nonpersistent_flags+=("--www-prefix=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_replace()
+{
+ last_command="kubectl_replace"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--cascade")
+ local_nonpersistent_flags+=("--cascade")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--force")
+ local_nonpersistent_flags+=("--force")
+ flags+=("--grace-period=")
+ local_nonpersistent_flags+=("--grace-period=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--timeout=")
+ local_nonpersistent_flags+=("--timeout=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--wait")
+ local_nonpersistent_flags+=("--wait")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_rollout_history()
+{
+ last_command="kubectl_rollout_history"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--revision=")
+ local_nonpersistent_flags+=("--revision=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ must_have_one_noun+=("daemonset")
+ must_have_one_noun+=("deployment")
+ must_have_one_noun+=("statefulset")
+ noun_aliases=()
+}
+
+_kubectl_rollout_pause()
+{
+ last_command="kubectl_rollout_pause"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ must_have_one_noun+=("deployment")
+ noun_aliases=()
+}
+
+_kubectl_rollout_resume()
+{
+ last_command="kubectl_rollout_resume"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ must_have_one_noun+=("deployment")
+ noun_aliases=()
+}
+
+_kubectl_rollout_status()
+{
+ last_command="kubectl_rollout_status"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--revision=")
+ local_nonpersistent_flags+=("--revision=")
+ flags+=("--timeout=")
+ local_nonpersistent_flags+=("--timeout=")
+ flags+=("--watch")
+ flags+=("-w")
+ local_nonpersistent_flags+=("--watch")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ must_have_one_noun+=("daemonset")
+ must_have_one_noun+=("deployment")
+ must_have_one_noun+=("statefulset")
+ noun_aliases=()
+}
+
+_kubectl_rollout_undo()
+{
+ last_command="kubectl_rollout_undo"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--to-revision=")
+ local_nonpersistent_flags+=("--to-revision=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ must_have_one_noun+=("daemonset")
+ must_have_one_noun+=("deployment")
+ must_have_one_noun+=("statefulset")
+ noun_aliases=()
+}
+
+_kubectl_rollout()
+{
+ last_command="kubectl_rollout"
+ commands=()
+ commands+=("history")
+ commands+=("pause")
+ commands+=("resume")
+ commands+=("status")
+ commands+=("undo")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_run()
+{
+ last_command="kubectl_run"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--attach")
+ local_nonpersistent_flags+=("--attach")
+ flags+=("--cascade")
+ local_nonpersistent_flags+=("--cascade")
+ flags+=("--command")
+ local_nonpersistent_flags+=("--command")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--env=")
+ local_nonpersistent_flags+=("--env=")
+ flags+=("--expose")
+ local_nonpersistent_flags+=("--expose")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--force")
+ local_nonpersistent_flags+=("--force")
+ flags+=("--generator=")
+ local_nonpersistent_flags+=("--generator=")
+ flags+=("--grace-period=")
+ local_nonpersistent_flags+=("--grace-period=")
+ flags+=("--hostport=")
+ local_nonpersistent_flags+=("--hostport=")
+ flags+=("--image=")
+ local_nonpersistent_flags+=("--image=")
+ flags+=("--image-pull-policy=")
+ local_nonpersistent_flags+=("--image-pull-policy=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--labels=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--labels=")
+ flags+=("--leave-stdin-open")
+ local_nonpersistent_flags+=("--leave-stdin-open")
+ flags+=("--limits=")
+ local_nonpersistent_flags+=("--limits=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--overrides=")
+ local_nonpersistent_flags+=("--overrides=")
+ flags+=("--pod-running-timeout=")
+ local_nonpersistent_flags+=("--pod-running-timeout=")
+ flags+=("--port=")
+ local_nonpersistent_flags+=("--port=")
+ flags+=("--quiet")
+ local_nonpersistent_flags+=("--quiet")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--replicas=")
+ two_word_flags+=("-r")
+ local_nonpersistent_flags+=("--replicas=")
+ flags+=("--requests=")
+ local_nonpersistent_flags+=("--requests=")
+ flags+=("--restart=")
+ local_nonpersistent_flags+=("--restart=")
+ flags+=("--rm")
+ local_nonpersistent_flags+=("--rm")
+ flags+=("--save-config")
+ local_nonpersistent_flags+=("--save-config")
+ flags+=("--schedule=")
+ local_nonpersistent_flags+=("--schedule=")
+ flags+=("--service-generator=")
+ local_nonpersistent_flags+=("--service-generator=")
+ flags+=("--service-overrides=")
+ local_nonpersistent_flags+=("--service-overrides=")
+ flags+=("--serviceaccount=")
+ local_nonpersistent_flags+=("--serviceaccount=")
+ flags+=("--stdin")
+ flags+=("-i")
+ local_nonpersistent_flags+=("--stdin")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--timeout=")
+ local_nonpersistent_flags+=("--timeout=")
+ flags+=("--tty")
+ flags+=("-t")
+ local_nonpersistent_flags+=("--tty")
+ flags+=("--wait")
+ local_nonpersistent_flags+=("--wait")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_flag+=("--image=")
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_scale()
+{
+ last_command="kubectl_scale"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--current-replicas=")
+ local_nonpersistent_flags+=("--current-replicas=")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--replicas=")
+ local_nonpersistent_flags+=("--replicas=")
+ flags+=("--resource-version=")
+ local_nonpersistent_flags+=("--resource-version=")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--timeout=")
+ local_nonpersistent_flags+=("--timeout=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_flag+=("--replicas=")
+ must_have_one_noun=()
+ must_have_one_noun+=("deployment")
+ must_have_one_noun+=("replicaset")
+ must_have_one_noun+=("replicationcontroller")
+ must_have_one_noun+=("statefulset")
+ noun_aliases=()
+}
+
+_kubectl_set_env()
+{
+ last_command="kubectl_set_env"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--containers=")
+ two_word_flags+=("-c")
+ local_nonpersistent_flags+=("--containers=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--env=")
+ two_word_flags+=("-e")
+ local_nonpersistent_flags+=("--env=")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--from=")
+ local_nonpersistent_flags+=("--from=")
+ flags+=("--keys=")
+ local_nonpersistent_flags+=("--keys=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--list")
+ local_nonpersistent_flags+=("--list")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--overwrite")
+ local_nonpersistent_flags+=("--overwrite")
+ flags+=("--prefix=")
+ local_nonpersistent_flags+=("--prefix=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--resolve")
+ local_nonpersistent_flags+=("--resolve")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_set_image()
+{
+ last_command="kubectl_set_image"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_set_resources()
+{
+ last_command="kubectl_set_resources"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--containers=")
+ two_word_flags+=("-c")
+ local_nonpersistent_flags+=("--containers=")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--limits=")
+ local_nonpersistent_flags+=("--limits=")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--requests=")
+ local_nonpersistent_flags+=("--requests=")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_set_selector()
+{
+ last_command="kubectl_set_selector"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--resource-version=")
+ local_nonpersistent_flags+=("--resource-version=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_set_serviceaccount()
+{
+ last_command="kubectl_set_serviceaccount"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--record")
+ local_nonpersistent_flags+=("--record")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_set_subject()
+{
+ last_command="kubectl_set_subject"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--group=")
+ local_nonpersistent_flags+=("--group=")
+ flags+=("--kustomize=")
+ two_word_flags+=("-k")
+ local_nonpersistent_flags+=("--kustomize=")
+ flags+=("--local")
+ local_nonpersistent_flags+=("--local")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--serviceaccount=")
+ local_nonpersistent_flags+=("--serviceaccount=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_set()
+{
+ last_command="kubectl_set"
+ commands=()
+ commands+=("env")
+ commands+=("image")
+ commands+=("resources")
+ commands+=("selector")
+ commands+=("serviceaccount")
+ commands+=("subject")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_taint()
+{
+ last_command="kubectl_taint"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--overwrite")
+ local_nonpersistent_flags+=("--overwrite")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--validate")
+ local_nonpersistent_flags+=("--validate")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ must_have_one_noun+=("node")
+ noun_aliases=()
+}
+
+_kubectl_top_node()
+{
+ last_command="kubectl_top_node"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--heapster-namespace=")
+ local_nonpersistent_flags+=("--heapster-namespace=")
+ flags+=("--heapster-port=")
+ local_nonpersistent_flags+=("--heapster-port=")
+ flags+=("--heapster-scheme=")
+ local_nonpersistent_flags+=("--heapster-scheme=")
+ flags+=("--heapster-service=")
+ local_nonpersistent_flags+=("--heapster-service=")
+ flags+=("--no-headers")
+ local_nonpersistent_flags+=("--no-headers")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_top_pod()
+{
+ last_command="kubectl_top_pod"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all-namespaces")
+ flags+=("-A")
+ local_nonpersistent_flags+=("--all-namespaces")
+ flags+=("--containers")
+ local_nonpersistent_flags+=("--containers")
+ flags+=("--heapster-namespace=")
+ local_nonpersistent_flags+=("--heapster-namespace=")
+ flags+=("--heapster-port=")
+ local_nonpersistent_flags+=("--heapster-port=")
+ flags+=("--heapster-scheme=")
+ local_nonpersistent_flags+=("--heapster-scheme=")
+ flags+=("--heapster-service=")
+ local_nonpersistent_flags+=("--heapster-service=")
+ flags+=("--no-headers")
+ local_nonpersistent_flags+=("--no-headers")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_top()
+{
+ last_command="kubectl_top"
+ commands=()
+ commands+=("node")
+ commands+=("pod")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_uncordon()
+{
+ last_command="kubectl_uncordon"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--dry-run")
+ local_nonpersistent_flags+=("--dry-run")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_version()
+{
+ last_command="kubectl_version"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--client")
+ local_nonpersistent_flags+=("--client")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--short")
+ local_nonpersistent_flags+=("--short")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_wait()
+{
+ last_command="kubectl_wait"
+ commands=()
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--all")
+ local_nonpersistent_flags+=("--all")
+ flags+=("--all-namespaces")
+ flags+=("-A")
+ local_nonpersistent_flags+=("--all-namespaces")
+ flags+=("--allow-missing-template-keys")
+ local_nonpersistent_flags+=("--allow-missing-template-keys")
+ flags+=("--field-selector=")
+ local_nonpersistent_flags+=("--field-selector=")
+ flags+=("--filename=")
+ flags_with_completion+=("--filename")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ two_word_flags+=("-f")
+ flags_with_completion+=("-f")
+ flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+ local_nonpersistent_flags+=("--filename=")
+ flags+=("--for=")
+ local_nonpersistent_flags+=("--for=")
+ flags+=("--output=")
+ two_word_flags+=("-o")
+ local_nonpersistent_flags+=("--output=")
+ flags+=("--recursive")
+ flags+=("-R")
+ local_nonpersistent_flags+=("--recursive")
+ flags+=("--selector=")
+ two_word_flags+=("-l")
+ local_nonpersistent_flags+=("--selector=")
+ flags+=("--template=")
+ flags_with_completion+=("--template")
+ flags_completion+=("_filedir")
+ local_nonpersistent_flags+=("--template=")
+ flags+=("--timeout=")
+ local_nonpersistent_flags+=("--timeout=")
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+_kubectl_root_command()
+{
+ last_command="kubectl"
+ commands=()
+ commands+=("annotate")
+ commands+=("api-resources")
+ commands+=("api-versions")
+ commands+=("apply")
+ commands+=("attach")
+ commands+=("auth")
+ commands+=("autoscale")
+ commands+=("certificate")
+ commands+=("cluster-info")
+ commands+=("completion")
+ commands+=("config")
+ commands+=("convert")
+ commands+=("cordon")
+ commands+=("cp")
+ commands+=("create")
+ commands+=("delete")
+ commands+=("describe")
+ commands+=("diff")
+ commands+=("drain")
+ commands+=("edit")
+ commands+=("exec")
+ commands+=("explain")
+ commands+=("expose")
+ commands+=("get")
+ commands+=("kustomize")
+ commands+=("label")
+ commands+=("logs")
+ commands+=("options")
+ commands+=("patch")
+ commands+=("plugin")
+ commands+=("port-forward")
+ commands+=("proxy")
+ commands+=("replace")
+ commands+=("rollout")
+ commands+=("run")
+ commands+=("scale")
+ commands+=("set")
+ commands+=("taint")
+ commands+=("top")
+ commands+=("uncordon")
+ commands+=("version")
+ commands+=("wait")
+
+ flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+ flags+=("--alsologtostderr")
+ flags+=("--as=")
+ flags+=("--as-group=")
+ flags+=("--cache-dir=")
+ flags+=("--certificate-authority=")
+ flags+=("--client-certificate=")
+ flags+=("--client-key=")
+ flags+=("--cluster=")
+ flags_with_completion+=("--cluster")
+ flags_completion+=("__kubectl_config_get_clusters")
+ flags+=("--context=")
+ flags_with_completion+=("--context")
+ flags_completion+=("__kubectl_config_get_contexts")
+ flags+=("--insecure-skip-tls-verify")
+ flags+=("--kubeconfig=")
+ flags+=("--log-backtrace-at=")
+ flags+=("--log-dir=")
+ flags+=("--log-file=")
+ flags+=("--log-flush-frequency=")
+ flags+=("--logtostderr")
+ flags+=("--match-server-version")
+ flags+=("--namespace=")
+ flags_with_completion+=("--namespace")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ two_word_flags+=("-n")
+ flags_with_completion+=("-n")
+ flags_completion+=("__kubectl_get_resource_namespace")
+ flags+=("--password=")
+ flags+=("--profile=")
+ flags+=("--profile-output=")
+ flags+=("--request-timeout=")
+ flags+=("--server=")
+ two_word_flags+=("-s")
+ flags+=("--skip-headers")
+ flags+=("--stderrthreshold=")
+ flags+=("--token=")
+ flags+=("--user=")
+ flags_with_completion+=("--user")
+ flags_completion+=("__kubectl_config_get_users")
+ flags+=("--username=")
+ flags+=("--v=")
+ two_word_flags+=("-v")
+ flags+=("--vmodule=")
+
+ must_have_one_flag=()
+ must_have_one_noun=()
+ noun_aliases=()
+}
+
+__start_kubectl()
+{
+ local cur prev words cword
+ declare -A flaghash 2>/dev/null || :
+ if declare -F _init_completion >/dev/null 2>&1; then
+ _init_completion -s || return
+ else
+ __kubectl_init_completion -n "=" || return
+ fi
+
+ local c=0
+ local flags=()
+ local two_word_flags=()
+ local local_nonpersistent_flags=()
+ local flags_with_completion=()
+ local flags_completion=()
+ local commands=("kubectl")
+ local must_have_one_flag=()
+ local must_have_one_noun=()
+ local last_command
+ local nouns=()
+
+ __kubectl_handle_word
+}
+
+if [[ $(type -t compopt) = "builtin" ]]; then
+ complete -o default -F __start_kubectl kubectl
+else
+ complete -o default -o nospace -F __start_kubectl kubectl
+fi
+
+# ex: ts=4 sw=4 et filetype=sh
+
+BASH_COMPLETION_EOF
+}
+
+__kubectl_bash_source <(__kubectl_convert_bash_to_zsh)
+_complete kubectl 2>/dev/null
home/common/shell/zsh/_rg
@@ -0,0 +1,608 @@
+#compdef rg
+
+##
+# zsh completion function for ripgrep
+#
+# Run ci/test_complete.sh after building to ensure that the options supported by
+# this function stay in synch with the `rg` binary.
+#
+# For convenience, a completion reference guide is included at the bottom of
+# this file.
+#
+# Originally based on code from the zsh-users project — see copyright notice
+# below.
+
+_rg() {
+ local curcontext=$curcontext no='!' descr ret=1
+ local -a context line state state_descr args tmp suf
+ local -A opt_args
+
+ # ripgrep has many options which negate the effect of a more common one — for
+ # example, `--no-column` to negate `--column`, and `--messages` to negate
+ # `--no-messages`. There are so many of these, and they're so infrequently
+ # used, that some users will probably find it irritating if they're completed
+ # indiscriminately, so let's not do that unless either the current prefix
+ # matches one of those negation options or the user has the `complete-all`
+ # style set. Note that this prefix check has to be updated manually to account
+ # for all of the potential negation options listed below!
+ if
+ # We also want to list all of these options during testing
+ [[ $_RG_COMPLETE_LIST_ARGS == (1|t*|y*) ]] ||
+ # (--[imnp]* => --ignore*, --messages, --no-*, --pcre2-unicode)
+ [[ $PREFIX$SUFFIX == --[imnp]* ]] ||
+ zstyle -t ":complete:$curcontext:*" complete-all
+ then
+ no=
+ fi
+
+ # We make heavy use of argument groups here to prevent the option specs from
+ # growing unwieldy. These aren't supported in zsh <5.4, though, so we'll strip
+ # them out below if necessary. This makes the exclusions inaccurate on those
+ # older versions, but oh well — it's not that big a deal
+ args=(
+ + '(exclusive)' # Misc. fully exclusive options
+ '(: * -)'{-h,--help}'[display help information]'
+ '(: * -)'{-V,--version}'[display version information]'
+ '(: * -)'--pcre2-version'[print the version of PCRE2 used by ripgrep, if available]'
+
+ + '(buffered)' # buffering options
+ '--line-buffered[force line buffering]'
+ $no"--no-line-buffered[don't force line buffering]"
+ '--block-buffered[force block buffering]'
+ $no"--no-block-buffered[don't force block buffering]"
+
+ + '(case)' # Case-sensitivity options
+ {-i,--ignore-case}'[search case-insensitively]'
+ {-s,--case-sensitive}'[search case-sensitively]'
+ {-S,--smart-case}'[search case-insensitively if pattern is all lowercase]'
+
+ + '(context-a)' # Context (after) options
+ '(context-c)'{-A+,--after-context=}'[specify lines to show after each match]:number of lines'
+
+ + '(context-b)' # Context (before) options
+ '(context-c)'{-B+,--before-context=}'[specify lines to show before each match]:number of lines'
+
+ + '(context-c)' # Context (combined) options
+ '(context-a context-b)'{-C+,--context=}'[specify lines to show before and after each match]:number of lines'
+
+ + '(column)' # Column options
+ '--column[show column numbers for matches]'
+ $no"--no-column[don't show column numbers for matches]"
+
+ + '(count)' # Counting options
+ {-c,--count}'[only show count of matching lines for each file]'
+ '--count-matches[only show count of individual matches for each file]'
+
+ + '(encoding)' # Encoding options
+ {-E+,--encoding=}'[specify text encoding of files to search]: :_rg_encodings'
+ $no'--no-encoding[use default text encoding]'
+
+ + file # File-input options
+ '(1)*'{-f+,--file=}'[specify file containing patterns to search for]: :_files'
+
+ + '(file-match)' # Files with/without match options
+ '(stats)'{-l,--files-with-matches}'[only show names of files with matches]'
+ '(stats)--files-without-match[only show names of files without matches]'
+
+ + '(file-name)' # File-name options
+ {-H,--with-filename}'[show file name for matches]'
+ {-I,--no-filename}"[don't show file name for matches]"
+
+ + '(file-system)' # File system options
+ "--one-file-system[don't descend into directories on other file systems]"
+ $no'--no-one-file-system[descend into directories on other file systems]'
+
+ + '(fixed)' # Fixed-string options
+ {-F,--fixed-strings}'[treat pattern as literal string instead of regular expression]'
+ $no"--no-fixed-strings[don't treat pattern as literal string]"
+
+ + '(follow)' # Symlink-following options
+ {-L,--follow}'[follow symlinks]'
+ $no"--no-follow[don't follow symlinks]"
+
+ + glob # File-glob options
+ '*'{-g+,--glob=}'[include/exclude files matching specified glob]:glob'
+ '*--iglob=[include/exclude files matching specified case-insensitive glob]:glob'
+
+ + '(heading)' # Heading options
+ '(pretty-vimgrep)--heading[show matches grouped by file name]'
+ "(pretty-vimgrep)--no-heading[don't show matches grouped by file name]"
+
+ + '(hidden)' # Hidden-file options
+ '--hidden[search hidden files and directories]'
+ $no"--no-hidden[don't search hidden files and directories]"
+
+ + '(hybrid)' # hybrid regex options
+ '--auto-hybrid-regex[dynamically use PCRE2 if necessary]'
+ $no"--no-auto-hybrid-regex[don't dynamically use PCRE2 if necessary]"
+
+ + '(ignore)' # Ignore-file options
+ "(--no-ignore-global --no-ignore-parent --no-ignore-vcs --no-ignore-dot)--no-ignore[don't respect ignore files]"
+ $no'(--ignore-global --ignore-parent --ignore-vcs --ignore-dot)--ignore[respect ignore files]'
+
+ + '(ignore-file-case-insensitive)' # Ignore-file case sensitivity options
+ '--ignore-file-case-insensitive[process ignore files case insensitively]'
+ $no'--no-ignore-file-case-insensitive[process ignore files case sensitively]'
+
+ + '(ignore-global)' # Global ignore-file options
+ "--no-ignore-global[don't respect global ignore files]"
+ $no'--ignore-global[respect global ignore files]'
+
+ + '(ignore-parent)' # Parent ignore-file options
+ "--no-ignore-parent[don't respect ignore files in parent directories]"
+ $no'--ignore-parent[respect ignore files in parent directories]'
+
+ + '(ignore-vcs)' # VCS ignore-file options
+ "--no-ignore-vcs[don't respect version control ignore files]"
+ $no'--ignore-vcs[respect version control ignore files]'
+
+ + '(ignore-dot)' # .ignore-file options
+ "--no-ignore-dot[don't respect .ignore files]"
+ $no'--ignore-dot[respect .ignore files]'
+
+ + '(json)' # JSON options
+ '--json[output results in JSON Lines format]'
+ $no"--no-json[don't output results in JSON Lines format]"
+
+ + '(line-number)' # Line-number options
+ {-n,--line-number}'[show line numbers for matches]'
+ {-N,--no-line-number}"[don't show line numbers for matches]"
+
+ + '(line-terminator)' # Line-terminator options
+ '--crlf[use CRLF as line terminator]'
+ $no"--no-crlf[don't use CRLF as line terminator]"
+ '(text)--null-data[use NUL as line terminator]'
+
+ + '(max-columns-preview)' # max column preview options
+ '--max-columns-preview[show preview for long lines (with -M)]'
+ $no"--no-max-columns-preview[don't show preview for long lines (with -M)]"
+
+ + '(max-depth)' # Directory-depth options
+ '--max-depth=[specify max number of directories to descend]:number of directories'
+ '!--maxdepth=:number of directories'
+
+ + '(messages)' # Error-message options
+ '(--no-ignore-messages)--no-messages[suppress some error messages]'
+ $no"--messages[don't suppress error messages affected by --no-messages]"
+
+ + '(messages-ignore)' # Ignore-error message options
+ "--no-ignore-messages[don't show ignore-file parse error messages]"
+ $no'--ignore-messages[show ignore-file parse error messages]'
+
+ + '(mmap)' # mmap options
+ '--mmap[search using memory maps when possible]'
+ "--no-mmap[don't search using memory maps]"
+
+ + '(multiline)' # Multiline options
+ {-U,--multiline}'[permit matching across multiple lines]'
+ $no'(multiline-dotall)--no-multiline[restrict matches to at most one line each]'
+
+ + '(multiline-dotall)' # Multiline DOTALL options
+ '(--no-multiline)--multiline-dotall[allow "." to match newline (with -U)]'
+ $no"(--no-multiline)--no-multiline-dotall[don't allow \".\" to match newline (with -U)]"
+
+ + '(only)' # Only-match options
+ {-o,--only-matching}'[show only matching part of each line]'
+
+ + '(passthru)' # Pass-through options
+ '(--vimgrep)--passthru[show both matching and non-matching lines]'
+ '!(--vimgrep)--passthrough'
+
+ + '(pcre2)' # PCRE2 options
+ {-P,--pcre2}'[enable matching with PCRE2]'
+ $no'(pcre2-unicode)--no-pcre2[disable matching with PCRE2]'
+
+ + '(pcre2-unicode)' # PCRE2 Unicode options
+ $no'(--no-pcre2 --no-pcre2-unicode)--pcre2-unicode[enable PCRE2 Unicode mode (with -P)]'
+ '(--no-pcre2 --pcre2-unicode)--no-pcre2-unicode[disable PCRE2 Unicode mode (with -P)]'
+
+ + '(pre)' # Preprocessing options
+ '(-z --search-zip)--pre=[specify preprocessor utility]:preprocessor utility:_command_names -e'
+ $no'--no-pre[disable preprocessor utility]'
+
+ + pre-glob # Preprocessing glob options
+ '*--pre-glob[include/exclude files for preprocessing with --pre]'
+
+ + '(pretty-vimgrep)' # Pretty/vimgrep display options
+ '(heading)'{-p,--pretty}'[alias for --color=always --heading -n]'
+ '(heading passthru)--vimgrep[show results in vim-compatible format]'
+
+ + regexp # Explicit pattern options
+ '(1 file)*'{-e+,--regexp=}'[specify pattern]:pattern'
+
+ + '(replace)' # Replacement options
+ {-r+,--replace=}'[specify string used to replace matches]:replace string'
+
+ + '(sort)' # File-sorting options
+ '(threads)--sort=[sort results in ascending order (disables parallelism)]:sort method:((
+ none\:"no sorting"
+ path\:"sort by file path"
+ modified\:"sort by last modified time"
+ accessed\:"sort by last accessed time"
+ created\:"sort by creation time"
+ ))'
+ '(threads)--sortr=[sort results in descending order (disables parallelism)]:sort method:((
+ none\:"no sorting"
+ path\:"sort by file path"
+ modified\:"sort by last modified time"
+ accessed\:"sort by last accessed time"
+ created\:"sort by creation time"
+ ))'
+ '!(threads)--sort-files[sort results by file path (disables parallelism)]'
+
+ + '(stats)' # Statistics options
+ '(--files file-match)--stats[show search statistics]'
+ $no"--no-stats[don't show search statistics]"
+
+ + '(text)' # Binary-search options
+ {-a,--text}'[search binary files as if they were text]'
+ "--binary[search binary files, don't print binary data]"
+ $no"--no-binary[don't search binary files]"
+ $no"(--null-data)--no-text[don't search binary files as if they were text]"
+
+ + '(threads)' # Thread-count options
+ '(sort)'{-j+,--threads=}'[specify approximate number of threads to use]:number of threads'
+
+ + '(trim)' # Trim options
+ '--trim[trim any ASCII whitespace prefix from each line]'
+ $no"--no-trim[don't trim ASCII whitespace prefix from each line]"
+
+ + type # Type options
+ '*'{-t+,--type=}'[only search files matching specified type]: :_rg_types'
+ '*--type-add=[add new glob for specified file type]: :->typespec'
+ '*--type-clear=[clear globs previously defined for specified file type]: :_rg_types'
+ # This should actually be exclusive with everything but other type options
+ '(: *)--type-list[show all supported file types and their associated globs]'
+ '*'{-T+,--type-not=}"[don't search files matching specified file type]: :_rg_types"
+
+ + '(word-line)' # Whole-word/line match options
+ {-w,--word-regexp}'[only show matches surrounded by word boundaries]'
+ {-x,--line-regexp}'[only show matches surrounded by line boundaries]'
+
+ + '(zip)' # Compression options
+ '(--pre)'{-z,--search-zip}'[search in compressed files]'
+ $no"--no-search-zip[don't search in compressed files]"
+
+ + misc # Other options — no need to separate these at the moment
+ '(-b --byte-offset)'{-b,--byte-offset}'[show 0-based byte offset for each matching line]'
+ '--color=[specify when to use colors in output]:when:((
+ never\:"never use colors"
+ auto\:"use colors or not based on stdout, TERM, etc."
+ always\:"always use colors"
+ ansi\:"always use ANSI colors (even on Windows)"
+ ))'
+ '*--colors=[specify color and style settings]: :->colorspec'
+ '--context-separator=[specify string used to separate non-continuous context lines in output]:separator'
+ '--debug[show debug messages]'
+ '--dfa-size-limit=[specify upper size limit of generated DFA]:DFA size (bytes)'
+ "(1 stats)--files[show each file that would be searched (but don't search)]"
+ '*--ignore-file=[specify additional ignore file]:ignore file:_files'
+ '(-v --invert-match)'{-v,--invert-match}'[invert matching]'
+ '(-M --max-columns)'{-M+,--max-columns=}'[specify max length of lines to print]:number of bytes'
+ '(-m --max-count)'{-m+,--max-count=}'[specify max number of matches per file]:number of matches'
+ '--max-filesize=[specify size above which files should be ignored]:file size (bytes)'
+ "--no-config[don't load configuration files]"
+ '(-0 --null)'{-0,--null}'[print NUL byte after file names]'
+ '--path-separator=[specify path separator to use when printing file names]:separator'
+ '(-q --quiet)'{-q,--quiet}'[suppress normal output]'
+ '--regex-size-limit=[specify upper size limit of compiled regex]:regex size (bytes)'
+ '*'{-u,--unrestricted}'[reduce level of "smart" searching]'
+
+ + operand # Operands
+ '(--files --type-list file regexp)1: :_guard "^-*" pattern'
+ '(--type-list)*: :_files'
+ )
+
+ # This is used with test_complete.sh to verify that there are no options
+ # listed in the help output that aren't also defined here
+ [[ $_RG_COMPLETE_LIST_ARGS == (1|t*|y*) ]] && {
+ print -rl - $args
+ return 0
+ }
+
+ # Strip out argument groups where unsupported (see above)
+ [[ $ZSH_VERSION == (4|5.<0-3>)(.*)# ]] &&
+ args=( ${(@)args:#(#i)(+|[a-z0-9][a-z0-9_-]#|\([a-z0-9][a-z0-9_-]#\))} )
+
+ _arguments -C -s -S : $args && ret=0
+
+ case $state in
+ colorspec)
+ if [[ ${IPREFIX#--*=}$PREFIX == [^:]# ]]; then
+ suf=( -qS: )
+ tmp=(
+ 'column:specify coloring for column numbers'
+ 'line:specify coloring for line numbers'
+ 'match:specify coloring for match text'
+ 'path:specify coloring for file names'
+ )
+ descr='color/style type'
+ elif [[ ${IPREFIX#--*=}$PREFIX == (column|line|match|path):[^:]# ]]; then
+ suf=( -qS: )
+ tmp=(
+ 'none:clear color/style for type'
+ 'bg:specify background color'
+ 'fg:specify foreground color'
+ 'style:specify text style'
+ )
+ descr='color/style attribute'
+ elif [[ ${IPREFIX#--*=}$PREFIX == [^:]##:(bg|fg):[^:]# ]]; then
+ tmp=( black blue green red cyan magenta yellow white )
+ descr='color name or r,g,b'
+ elif [[ ${IPREFIX#--*=}$PREFIX == [^:]##:style:[^:]# ]]; then
+ tmp=( {,no}bold {,no}intense {,no}underline )
+ descr='style name'
+ else
+ _message -e colorspec 'no more arguments'
+ fi
+
+ (( $#tmp )) && {
+ compset -P '*:'
+ _describe -t colorspec $descr tmp $suf && ret=0
+ }
+ ;;
+
+ typespec)
+ if compset -P '[^:]##:include:'; then
+ _sequence -s , _rg_types && ret=0
+ # @todo This bit in particular could be better, but it's a little
+ # complex, and attempting to solve it seems to run us up against a crash
+ # bug — zsh # 40362
+ elif compset -P '[^:]##:'; then
+ _message 'glob or include directive' && ret=1
+ elif [[ ! -prefix *:* ]]; then
+ _rg_types -qS : && ret=0
+ fi
+ ;;
+ esac
+
+ return ret
+}
+
+# Complete encodings
+_rg_encodings() {
+ local -a expl
+ local -aU _encodings
+
+ # This is impossible to read, but these encodings rarely if ever change, so it
+ # probably doesn't matter. They are derived from the list given here:
+ # https://encoding.spec.whatwg.org/#concept-encoding-get
+ _encodings=(
+ {{,us-}ascii,arabic,chinese,cyrillic,greek{,8},hebrew,korean}
+ logical visual mac {,cs}macintosh x-mac-{cyrillic,roman,ukrainian}
+ 866 ibm{819,866} csibm866
+ big5{,-hkscs} {cn-,cs}big5 x-x-big5
+ cp{819,866,125{0..8}} x-cp125{0..8}
+ csiso2022{jp,kr} csiso8859{6,8}{e,i}
+ csisolatin{{1..6},9} csisolatin{arabic,cyrillic,greek,hebrew}
+ ecma-{114,118} asmo-708 elot_928 sun_eu_greek
+ euc-{jp,kr} x-euc-jp cseuckr cseucpkdfmtjapanese
+ {,x-}gbk csiso58gb231280 gb18030 {,cs}gb2312 gb_2312{,-80} hz-gb-2312
+ iso-2022-{cn,cn-ext,jp,kr}
+ iso8859{,-}{{1..11},13,14,15}
+ iso-8859-{{1..11},{6,8}-{e,i},13,14,15,16} iso_8859-{{1..9},15}
+ iso_8859-{1,2,6,7}:1987 iso_8859-{3,4,5,8}:1988 iso_8859-9:1989
+ iso-ir-{58,100,101,109,110,126,127,138,144,148,149,157}
+ koi{,8,8-r,8-ru,8-u,8_r} cskoi8r
+ ks_c_5601-{1987,1989} ksc{,_}5691 csksc56011987
+ latin{1..6} l{{1..6},9}
+ shift{-,_}jis csshiftjis {,x-}sjis ms_kanji ms932
+ utf{,-}8 utf-16{,be,le} unicode-1-1-utf-8
+ windows-{31j,874,949,125{0..8}} dos-874 tis-620 ansi_x3.4-1968
+ x-user-defined auto none
+ )
+
+ _wanted encodings expl encoding compadd -a "$@" - _encodings
+}
+
+# Complete file types
+_rg_types() {
+ local -a expl
+ local -aU _types
+
+ _types=( ${(@)${(f)"$( _call_program types rg --type-list )"}%%:*} )
+
+ _wanted types expl 'file type' compadd -a "$@" - _types
+}
+
+_rg "$@"
+
+################################################################################
+# ZSH COMPLETION REFERENCE
+#
+# For the convenience of developers who aren't especially familiar with zsh
+# completion functions, a brief reference guide follows. This is in no way
+# comprehensive; it covers just enough of the basic structure, syntax, and
+# conventions to help someone make simple changes like adding new options. For
+# more complete documentation regarding zsh completion functions, please see the
+# following:
+#
+# * http://zsh.sourceforge.net/Doc/Release/Completion-System.html
+# * https://github.com/zsh-users/zsh/blob/master/Etc/completion-style-guide
+#
+# OVERVIEW
+#
+# Most zsh completion functions are defined in terms of `_arguments`, which is a
+# shell function that takes a series of argument specifications. The specs for
+# `rg` are stored in an array, which is common for more complex functions; the
+# elements of the array are passed to `_arguments` on invocation.
+#
+# ARGUMENT-SPECIFICATION SYNTAX
+#
+# The following is a contrived example of the argument specs for a simple tool:
+#
+# '(: * -)'{-h,--help}'[display help information]'
+# '(-q -v --quiet --verbose)'{-q,--quiet}'[decrease output verbosity]'
+# '!(-q -v --quiet --verbose)--silent'
+# '(-q -v --quiet --verbose)'{-v,--verbose}'[increase output verbosity]'
+# '--color=[specify when to use colors]:when:(always never auto)'
+# '*:example file:_files'
+#
+# Although there may appear to be six specs here, there are actually nine; we
+# use brace expansion to combine specs for options that go by multiple names,
+# like `-q` and `--quiet`. This is customary, and ties in with the fact that zsh
+# merges completion possibilities together when they have the same description.
+#
+# The first line defines the option `-h`/`--help`. With most tools, it isn't
+# useful to complete anything after `--help` because it effectively overrides
+# all others; the `(: * -)` at the beginning of the spec tells zsh not to
+# complete any other operands (`:` and `*`) or options (`-`) after this one has
+# been used. The `[...]` at the end associates a description with `-h`/`--help`;
+# as mentioned, zsh will see the identical descriptions and merge these options
+# together when offering completion possibilities.
+#
+# The next line defines `-q`/`--quiet`. Here we don't want to suppress further
+# completions entirely, but we don't want to offer `-q` if `--quiet` has been
+# given (since they do the same thing), nor do we want to offer `-v` (since it
+# doesn't make sense to be quiet and verbose at the same time). We don't need to
+# tell zsh not to offer `--quiet` a second time, since that's the default
+# behaviour, but since this line expands to two specs describing `-q` *and*
+# `--quiet` we do need to explicitly list all of them here.
+#
+# The next line defines a hidden option `--silent` — maybe it's a deprecated
+# synonym for `--quiet`. The leading `!` indicates that zsh shouldn't offer this
+# option during completion. The benefit of providing a spec for an option that
+# shouldn't be completed is that, if someone *does* use it, we can correctly
+# suppress completion of other options afterwards.
+#
+# The next line defines `-v`/`--verbose`; this works just like `-q`/`--quiet`.
+#
+# The next line defines `--color`. In this example, `--color` doesn't have a
+# corresponding short option, so we don't need to use brace expansion. Further,
+# there are no other options it's exclusive with (just itself), so we don't need
+# to define those at the beginning. However, it does take a mandatory argument.
+# The `=` at the end of `--color=` indicates that the argument may appear either
+# like `--color always` or like `--color=always`; this is how most GNU-style
+# command-line tools work. The corresponding short option would normally use `+`
+# — for example, `-c+` would allow either `-c always` or `-calways`. For this
+# option, the arguments are known ahead of time, so we can simply list them in
+# parentheses at the end (`when` is used as the description for the argument).
+#
+# The last line defines an operand (a non-option argument). In this example, the
+# operand can be used any number of times (the leading `*`), and it should be a
+# file path, so we tell zsh to call the `_files` function to complete it. The
+# `example file` in the middle is the description to use for this operand; we
+# could use a space instead to accept the default provided by `_files`.
+#
+# GROUPING ARGUMENT SPECIFICATIONS
+#
+# Newer versions of zsh support grouping argument specs together. All specs
+# following a `+` and then a group name are considered to be members of the
+# named group. Grouping is useful mostly for organisational purposes; it makes
+# the relationship between different options more obvious, and makes it easier
+# to specify exclusions.
+#
+# We could rewrite our example above using grouping as follows:
+#
+# '(: * -)'{-h,--help}'[display help information]'
+# '--color=[specify when to use colors]:when:(always never auto)'
+# '*:example file:_files'
+# + '(verbosity)'
+# {-q,--quiet}'[decrease output verbosity]'
+# '!--silent'
+# {-v,--verbose}'[increase output verbosity]'
+#
+# Here we take advantage of a useful feature of spec grouping — when the group
+# name is surrounded by parentheses, as in `(verbosity)`, it tells zsh that all
+# of the options in that group are exclusive with each other. As a result, we
+# don't need to manually list out the exclusions at the beginning of each
+# option.
+#
+# Groups can also be referred to by name in other argument specs; for example:
+#
+# '(xyz)--aaa' '*: :_files'
+# + xyz --xxx --yyy --zzz
+#
+# Here we use the group name `xyz` to tell zsh that `--xxx`, `--yyy`, and
+# `--zzz` are not to be completed after `--aaa`. This makes the exclusion list
+# much more compact and reusable.
+#
+# CONVENTIONS
+#
+# zsh completion functions generally adhere to the following conventions:
+#
+# * Use two spaces for indentation
+# * Combine specs for options with different names using brace expansion
+# * In combined specs, list the short option first (as in `{-a,--text}`)
+# * Use `+` or `=` as described above for options that take arguments
+# * Provide a description for all options, option-arguments, and operands
+# * Capitalise/punctuate argument descriptions as phrases, not complete
+# sentences — 'display help information', never 'Display help information.'
+# (but still capitalise acronyms and proper names)
+# * Write argument descriptions as verb phrases — 'display x', 'enable y',
+# 'use z'
+# * Word descriptions to make it clear when an option expects an argument;
+# usually this is done with the word 'specify', as in 'specify x' or
+# 'use specified x')
+# * Write argument descriptions as tersely as possible — for example, articles
+# like 'a' and 'the' should be omitted unless it would be confusing
+#
+# Other conventions currently used by this function:
+#
+# * Order argument specs alphabetically by group name, then option name
+# * Group options that are directly related, mutually exclusive, or frequently
+# referenced by other argument specs
+# * Use only characters in the set [a-z0-9_-] in group names
+# * Order exclusion lists as follows: short options, long options, groups
+# * Use American English in descriptions
+# * Use 'don't' in descriptions instead of 'do not'
+# * Word descriptions for related options as similarly as possible. For example,
+# `--foo[enable foo]` and `--no-foo[disable foo]`, or `--foo[use foo]` and
+# `--no-foo[don't use foo]`
+# * Word descriptions to make it clear when an option only makes sense with
+# another option, usually by adding '(with -x)' to the end
+# * Don't quote strings or variables unnecessarily. When quotes are required,
+# prefer single-quotes to double-quotes
+# * Prefix option specs with `$no` when the option serves only to negate the
+# behaviour of another option that must be provided explicitly by the user.
+# This prevents rarely used options from cluttering up the completion menu
+################################################################################
+
+# ------------------------------------------------------------------------------
+# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of the zsh-users nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+# Completion script for ripgrep
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+# * arcizan <ghostrevery@gmail.com>
+# * MaskRay <i@maskray.me>
+#
+# ------------------------------------------------------------------------------
+
+# Local Variables:
+# mode: shell-script
+# coding: utf-8-unix
+# indent-tabs-mode: nil
+# sh-indentation: 2
+# sh-basic-offset: 2
+# End:
+# vim: ft=zsh sw=2 ts=2 et
home/common/shell/zsh/_tkn
@@ -0,0 +1,518 @@
+#compdef _tkn tkn
+
+
+
+
+function _tkn {
+ local -a commands
+
+ _arguments -C \
+ "1: :->cmnds" \
+ "*::arg:->args"
+
+ case $state in
+ cmnds)
+ commands=(
+ "clustertask:Manage clustertasks"
+ "completion:Prints shell completion scripts"
+ "help:Help about any command"
+ "pipeline:Manage pipelines"
+ "pipelinerun:Manage pipelineruns"
+ "resource:Manage pipeline resources"
+ "task:Manage tasks"
+ "taskrun:Manage taskruns"
+ "version:Prints version information"
+ )
+ _describe "command" commands
+ ;;
+ esac
+
+ case "$words[1]" in
+ clustertask)
+ _tkn_clustertask
+ ;;
+ completion)
+ _tkn_completion
+ ;;
+ help)
+ _tkn_help
+ ;;
+ pipeline)
+ _tkn_pipeline
+ ;;
+ pipelinerun)
+ _tkn_pipelinerun
+ ;;
+ resource)
+ _tkn_resource
+ ;;
+ task)
+ _tkn_task
+ ;;
+ taskrun)
+ _tkn_taskrun
+ ;;
+ version)
+ _tkn_version
+ ;;
+ esac
+}
+
+
+function _tkn_clustertask {
+ local -a commands
+
+ _arguments -C \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ "1: :->cmnds" \
+ "*::arg:->args"
+
+ case $state in
+ cmnds)
+ commands=(
+ "delete:Delete a clustertask resource in a cluster"
+ "list:Lists clustertasks in a namespace"
+ )
+ _describe "command" commands
+ ;;
+ esac
+
+ case "$words[1]" in
+ delete)
+ _tkn_clustertask_delete
+ ;;
+ list)
+ _tkn_clustertask_list
+ ;;
+ esac
+}
+
+function _tkn_clustertask_delete {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_clustertasks'
+}
+
+function _tkn_clustertask_list {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+function _tkn_completion {
+ _arguments \
+ '(-h --help)'{-h,--help}'[help for completion]' \
+ '1: :("bash" "zsh")'
+}
+
+function _tkn_help {
+ _arguments
+}
+
+
+function _tkn_pipeline {
+ local -a commands
+
+ _arguments -C \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ "1: :->cmnds" \
+ "*::arg:->args"
+
+ case $state in
+ cmnds)
+ commands=(
+ "delete:Delete a pipeline in a namespace"
+ "describe:Describes a pipeline in a namespace"
+ "list:Lists pipelines in a namespace"
+ "logs:Show pipeline logs"
+ "start:Start pipelines"
+ )
+ _describe "command" commands
+ ;;
+ esac
+
+ case "$words[1]" in
+ delete)
+ _tkn_pipeline_delete
+ ;;
+ describe)
+ _tkn_pipeline_describe
+ ;;
+ list)
+ _tkn_pipeline_list
+ ;;
+ logs)
+ _tkn_pipeline_logs
+ ;;
+ start)
+ _tkn_pipeline_start
+ ;;
+ esac
+}
+
+function _tkn_pipeline_delete {
+ _arguments \
+ '(-a --all)'{-a,--all}'[Whether to delete related resources (pipelineruns) (default: false)]' \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipeline'
+}
+
+function _tkn_pipeline_describe {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipeline'
+}
+
+function _tkn_pipeline_list {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+function _tkn_pipeline_logs {
+ _arguments \
+ '(-a --all)'{-a,--all}'[show all logs including init steps injected by tekton]' \
+ '(-f --follow)'{-f,--follow}'[stream live logs]' \
+ '(-l --last)'{-l,--last}'[show logs for last run]' \
+ '(-L --limit)'{-L,--limit}'[lists number of pipelineruns]:()' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipeline'
+}
+
+function _tkn_pipeline_start {
+ _arguments \
+ '(-l --last)'{-l,--last}'[re-run the pipeline using last pipelinerun values]' \
+ '(*-p *--param)'{\*-p,\*--param}'[pass the param as key=value]:()' \
+ '(*-r *--resource)'{\*-r,\*--resource}'[pass the resource name and ref as name=ref]:()' \
+ '(-s --serviceaccount)'{-s,--serviceaccount}'[pass the serviceaccount name]: :__kubectl_get_serviceaccount' \
+ '*--task-serviceaccount[pass the service account corresponding to the task]: :__kubectl_get_serviceaccount' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipeline'
+}
+
+
+function _tkn_pipelinerun {
+ local -a commands
+
+ _arguments -C \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ "1: :->cmnds" \
+ "*::arg:->args"
+
+ case $state in
+ cmnds)
+ commands=(
+ "cancel:Cancel the PipelineRun"
+ "delete:Delete a pipelinerun in a namespace"
+ "describe:Describe a pipelinerun in a namespace"
+ "list:Lists pipelineruns in a namespace"
+ "logs:Show the logs of PipelineRun"
+ )
+ _describe "command" commands
+ ;;
+ esac
+
+ case "$words[1]" in
+ cancel)
+ _tkn_pipelinerun_cancel
+ ;;
+ delete)
+ _tkn_pipelinerun_delete
+ ;;
+ describe)
+ _tkn_pipelinerun_describe
+ ;;
+ list)
+ _tkn_pipelinerun_list
+ ;;
+ logs)
+ _tkn_pipelinerun_logs
+ ;;
+ esac
+}
+
+function _tkn_pipelinerun_cancel {
+ _arguments \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipelinerun'
+}
+
+function _tkn_pipelinerun_delete {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipelinerun'
+}
+
+function _tkn_pipelinerun_describe {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipelinerun'
+}
+
+function _tkn_pipelinerun_list {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-l --limit)'{-l,--limit}'[limit pipelineruns listed (default: return all pipelineruns)]:()' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+function _tkn_pipelinerun_logs {
+ _arguments \
+ '(-a --all)'{-a,--all}'[show all logs including init steps injected by tekton]' \
+ '(-f --follow)'{-f,--follow}'[stream live logs]' \
+ '(*-t *--only-tasks)'{\*-t,\*--only-tasks}'[show logs for mentioned tasks only]:()' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipelinerun'
+}
+
+
+function _tkn_resource {
+ local -a commands
+
+ _arguments -C \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ "1: :->cmnds" \
+ "*::arg:->args"
+
+ case $state in
+ cmnds)
+ commands=(
+ "delete:Delete a pipeline resource in a namespace"
+ "describe:Describes a pipeline resource in a namespace"
+ "list:Lists pipeline resources in a namespace"
+ )
+ _describe "command" commands
+ ;;
+ esac
+
+ case "$words[1]" in
+ delete)
+ _tkn_resource_delete
+ ;;
+ describe)
+ _tkn_resource_describe
+ ;;
+ list)
+ _tkn_resource_list
+ ;;
+ esac
+}
+
+function _tkn_resource_delete {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipelineresource'
+}
+
+function _tkn_resource_describe {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_pipelineresource'
+}
+
+function _tkn_resource_list {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-t --type)'{-t,--type}'[Pipeline resource type]:()' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+
+function _tkn_task {
+ local -a commands
+
+ _arguments -C \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ "1: :->cmnds" \
+ "*::arg:->args"
+
+ case $state in
+ cmnds)
+ commands=(
+ "delete:Delete a task resource in a namespace"
+ "list:Lists tasks in a namespace"
+ )
+ _describe "command" commands
+ ;;
+ esac
+
+ case "$words[1]" in
+ delete)
+ _tkn_task_delete
+ ;;
+ list)
+ _tkn_task_list
+ ;;
+ esac
+}
+
+function _tkn_task_delete {
+ _arguments \
+ '(-a --all)'{-a,--all}'[Whether to delete related resources (taskruns) (default: false)]' \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_task'
+}
+
+function _tkn_task_list {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+
+function _tkn_taskrun {
+ local -a commands
+
+ _arguments -C \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ "1: :->cmnds" \
+ "*::arg:->args"
+
+ case $state in
+ cmnds)
+ commands=(
+ "delete:Delete a taskrun in a namespace"
+ "list:Lists taskruns in a namespace"
+ "logs:Show taskruns logs"
+ )
+ _describe "command" commands
+ ;;
+ esac
+
+ case "$words[1]" in
+ delete)
+ _tkn_taskrun_delete
+ ;;
+ list)
+ _tkn_taskrun_list
+ ;;
+ logs)
+ _tkn_taskrun_logs
+ ;;
+ esac
+}
+
+function _tkn_taskrun_delete {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_taskrun'
+}
+
+function _tkn_taskrun_list {
+ _arguments \
+ '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+ '(-l --limit)'{-l,--limit}'[limit taskruns listed (default: return all taskruns)]:()' \
+ '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+ '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+function _tkn_taskrun_logs {
+ _arguments \
+ '(-a --all)'{-a,--all}'[show all logs including init steps injected by tekton]' \
+ '(-f --follow)'{-f,--follow}'[stream live logs]' \
+ '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+ '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+ '1: :__tkn_get_taskrun'
+}
+
+function _tkn_version {
+ _arguments \
+ '(-c --check)'{-c,--check}'[check if a newer version is available]'
+}
+
+
+# Custom function for Completions
+function __tkn_get_object() {
+ local type=$1
+ local util=$2
+ local template begin tkn_out
+ template="{{ range .items }}{{ .metadata.name }} {{ end }}"
+
+ if [[ ${util} == "kubectl" ]];then
+ tkn_out=($(kubectl get ${type} -o template --template="${template}" 2>/dev/null))
+ elif [[ ${util} == "tkn" ]];then
+ tkn_out=($(tkn ${type} ls -o template --template="${template}" 2>/dev/null))
+ fi
+
+ if [[ -n ${tkn_out} ]]; then
+ [[ -n ${BASH_VERSION} ]] && COMPREPLY=( $( compgen -W "${tkn_out}" -- "$cur" ) )
+ [[ -n ${ZSH_VERSION} ]] && compadd ${tkn_out}
+ fi
+}
+
+function __kubectl_get_namespace() { __tkn_get_object namespace kubectl ;}
+function __kubectl_get_serviceaccount() { __tkn_get_object serviceaccount kubectl ;}
+function __tkn_get_pipeline() { __tkn_get_object pipeline tkn ;}
+function __tkn_get_pipelinerun() { __tkn_get_object pipelinerun tkn ;}
+function __tkn_get_taskrun() { __tkn_get_object taskrun tkn ;}
+function __tkn_get_pipelineresource() { __tkn_get_object resource tkn ;}
+function __tkn_get_clustertasks() { __tkn_get_object clustertasks tkn ;}
home/common/shell/zsh/auto-expanding-aliases.zsh
@@ -0,0 +1,127 @@
+# Definition of abbrev-alias for auto-expanding aliases
+# Autoexpand some aliases
+typeset -ga _vbe_abbrevations
+abbrev-alias() {
+ alias $1
+ _vbe_abbrevations+=(${1%%\=*})
+}
+_vbe_zle-autoexpand() {
+ local -a words; words=(${(z)LBUFFER})
+ if (( ${#_vbe_abbrevations[(r)${words[-1]}]} )); then
+ zle _expand_alias
+ fi
+ zle magic-space
+}
+zle -N _vbe_zle-autoexpand
+bindkey -M emacs " " _vbe_zle-autoexpand
+bindkey -M emacs "^ " magic-space
+bindkey -M isearch " " magic-space
+
+# Correct common typos
+(( $+commands[git] )) && abbrev-alias gti=git
+(( $+commands[grep] )) && abbrev-alias grpe=grep
+(( $+commands[sudo] )) && abbrev-alias suod=sudo
+(( $+commands[ssh] )) && abbrev-alias shs=ssh
+
+# Save a few keystrokes
+(( $+commands[git] )) && abbrev-alias gls="git ls-files"
+(( $+commands[ip] )) && {
+ abbrev-alias ip6='ip -6'
+ abbrev-alias ipb='ip -brief'
+}
+
+abbrev-alias tailf="tail -F"
+
+(( $+commands[mpv] )) && abbrev-alias mpva="mpv --no-video"
+
+# System init-related aliases
+() {
+ local cmd
+ local -a cmds
+ cmds=(start stop reload restart status)
+
+ if [[ -d /run/systemd/system ]]; then
+ # systemd
+ for cmd ($cmds) {
+ abbrev-alias $cmd="${(%):-%(#..sudo )}systemctl $cmd"
+ abbrev-alias u$cmd="systemctl --user $cmd"
+ }
+ else
+ # generic service
+ for cmd ($cmds) {
+ function $cmd() {
+ name=$1 ; shift
+ ${(%):-%(#..sudo)} service $name $0 "$@"
+ }
+ (( $+functions[compdef] )) && compdef _services $cmd
+ }
+ fi
+}
+
+# grep aliases
+() {
+ # If GNU grep is available, use it
+ local grep=grep
+ (( $+commands[ggrep] )) && grep=ggrep # GNU grep
+
+ # Check if grep supports colors
+ local colors="--color=auto"
+ $grep -q $colors . <<< yes 2> /dev/null || colors=""
+
+ # Declare aliases
+ alias grep="command ${grep} ${colors}"
+ abbrev-alias rgrep="grep -r"
+ abbrev-alias egrep="grep -E"
+ abbrev-alias fgrep="grep -F"
+ # --color=auto doesn't work. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792135
+ (( $+commands[zgrep] )) && alias zgrep="GREP=${grep} command zgrep ${colors}"
+}
+
+# (( $+commands[emacsclient] * $+commands[git] )) && magit() {
+# local root=$(git rev-parse --show-toplevel)
+# [[ -n $root ]] || return
+# emacsclient -e "(progn
+# (select-frame-set-input-focus
+# (window-frame
+# (get-buffer-window
+# (magit-status \"${root}\"))))
+# (delete-other-windows))"
+# }
+
+(( $+commands[nix] )) && nixpkgs() {
+ cmd=$1
+ shift
+ nix run nixpkgs\#${cmd} -- "$@"
+}
+
+v() {
+ case $(file --brief --mime-type $1 2> /dev/null) in
+ image/svg+xml) ;;
+ image/*)
+ (( $+commands[nsxiv] )) && ${I3SOCK+i3-tabbed} nsxiv $1
+ return
+ ;;
+ video/*)
+ (( $+commands[mpv] )) && ${I3SOCK+i3-tabbed} mpv --no-fs $1
+ return
+ esac
+ if (( $+commands[bat] )); then
+ if (( ! $# )); then
+ gzip -cdfq | bat
+ else
+ for f in "$@"; do
+ gzip -cdfq -- $f | bat --file-name ${f%.gz}
+ done
+ fi
+ elif (( $+commands[less] )); then
+ gzip -cdfq -- "$@" | less -FX
+ elif (( $+commands[zmore] )); then
+ zmore "$@"
+ elif (( $+commands[more] )); then
+ gzip -cdfq -- "$@" | more
+ else
+ gzip -cdfq -- "$@"
+ fi
+}
+
+function clean() {}
home/common/shell/zsh/completion.zsh
@@ -0,0 +1,85 @@
+zstyle ':completion:*' menu select
+# Use caching to make completion for commands such as dpkg and apt usable.
+zstyle ':completion::complete:*' use-cache on
+zstyle ':completion::complete:*' cache-path "$ZSH_CACHE/zcompcache"
+
+# Case-insensitive (all), partial-word, and then substring completion.
+zstyle ':completion:*' matcher-list '' \
+ 'm:{a-z\-}={A-Z\_}' \
+ 'r:[^[:alpha:]]||[[:alpha:]]=** r:|=* m:{a-z\-}={A-Z\_}' \
+ 'r:[[:ascii:]]||[[:ascii:]]=** r:|=* m:{a-z\-}={A-Z\_}'
+
+# Group matches and describe.
+zstyle ':completion:*:*:*:*:*' menu select
+zstyle ':completion:*:matches' group 'yes'
+zstyle ':completion:*:options' description 'yes'
+zstyle ':completion:*:options' auto-description '%d'
+zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
+zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
+zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
+zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
+zstyle ':completion:*:default' list-prompt '%S%M matches%s'
+zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
+zstyle ':completion:*' group-name ''
+zstyle ':completion:*' verbose yes
+
+# Fuzzy match mistyped completions.
+zstyle ':completion:*' completer _complete _list _match _approximate
+zstyle ':completion:*:match:*' original only
+zstyle ':completion:*:approximate:*' max-errors 1 numeric
+
+# Increase the number of errors based on the length of the typed word.
+zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'
+
+# Don't complete unavailable commands.
+zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
+
+# Array completion element sorting.
+zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
+
+# Directories
+zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
+zstyle ':completion:*:*:cd:*' ignore-parents parent pwd
+zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
+zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
+zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
+zstyle ':completion:*' squeeze-slashes true
+zstyle ':completion:*' special-dirs true
+# Environmental Variables
+zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
+
+# Populate hostname completion.
+zstyle -e ':completion:*:hosts' hosts 'reply=(
+ ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
+ ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
+)'
+
+# Don't complete uninteresting users...
+zstyle ':completion:*:*:*:users' ignored-patterns \
+ adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
+ dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
+ hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
+ mailman mailnull mldonkey mysql nagios \
+ named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
+ operator pcap postfix postgres privoxy pulse pvm quagga radvd \
+ rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs '_*'
+
+# ... unless we really want to.
+zstyle '*' single-ignored show
+
+# Ignore multiple entries.
+zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
+zstyle ':completion:*:rm:*' file-patterns '*:all-files'
+
+# Man
+zstyle ':completion:*:manuals' separate-sections true
+zstyle ':completion:*:manuals.(^1*)' insert-sections true
+
+# SSH/SCP/RSYNC
+zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
+zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
+zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
+zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
+zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
+zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
+zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
home/common/shell/zsh/j
@@ -0,0 +1,30 @@
+local root=~/src/
+local res results args
+
+while getopts "np" opt; do
+ if [[ $opt = "?" ]]; then
+ print -r -- "$myname: unrecognized option: -$OPTARG" >&2
+ return 1
+ fi
+ eval "opt_$opt=\${OPTARG:--\$opt}"
+done
+(( OPTIND > 1 )) && shift $(( OPTIND - 1 ))
+
+local fnd=$1
+type -f zshz 2>/dev/null >/dev/null || opt_n=true
+
+if [[ -n ${fnd} ]];then
+
+ [[ -z ${opt_n} ]] && {
+ local zz=$(zshz -e ${fnd})
+ [[ -n ${zz} ]] && { echo "ZSHZ: ${zz}"; [[ -z ${opt_p} ]] && cd ${zz}; return;}
+ }
+
+ local results=($(fd -d 3 -t d . ${root}|egrep -i "${fnd}"))
+ [[ ${#results} == 1 ]] && { echo ${results}; [[ -z ${opt_p} ]] && cd ${results} ; return;}
+ [[ ${#results} == 0 ]] && { echo "No results found for ${fnd}"; return 1;}
+ args="-q ${fnd}"
+fi
+
+res=$(fd -d 3 -t d . ${root}|sed "s,${root},,"|fzf --height 50% --border ${args})
+[[ -n ${res} ]] && {echo ${root}${res}; [[ -z ${opt_p} ]] && cd ${root}${res} ; }
home/common/shell/zsh/prompt.zsh
@@ -0,0 +1,907 @@
+# Config for Powerlevel10k with lean prompt style. Type `p10k configure` to generate
+# your own config based on it.
+#
+# Tip: Looking for a nice color? Here's a one-liner to print colormap.
+#
+# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
+
+# Temporarily change options.
+'builtin' 'local' '-a' 'p10k_config_opts'
+[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
+[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
+[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
+'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
+
+() {
+ emulate -L zsh
+ setopt no_unset extended_glob
+ zmodload zsh/langinfo
+ if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
+ local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
+ fi
+
+ # Unset all configuration options. This allows you to apply configiguration changes without
+ # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
+ unset -m 'POWERLEVEL9K_*'
+
+ # The list of segments shown on the left. Fill it with the most important segments.
+ typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
+ # =========================[ Line #1 ]=========================
+ # os_icon # os identifier
+ status # exit code of the last command
+ context # user@hostname
+ dir # current directory
+ vcs # git status
+ go_version # go version (https://golang.org)
+ rust_version # rustc version (https://www.rust-lang.org)
+ background_jobs # presence of background jobs
+ direnv # direnv status (https://direnv.net/)
+ virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
+ in_nix_shell
+ docker_host
+ kubecontext # current kubernetes context (https://kubernetes.io/)
+ prompt_char # prompt symbol
+ )
+
+ # The list of segments shown on the right. Fill it with less important segments.
+ # Right prompt on the last prompt line (where you are typing your commands) gets
+ # automatically hidden when the input line reaches it. Right prompt above the
+ # last prompt line gets hidden if it would overlap with left prompt.
+ typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
+ # =========================[ Line #1 ]=========================
+ # command_execution_time # duration of the last command
+ #anaconda # conda environment (https://conda.io/)
+ # pyenv # python environment (https://github.com/pyenv/pyenv)
+ #nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
+ #nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
+ #nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
+ # node_version # node.js version
+ # dotnet_version # .NET version (https://dotnet.microsoft.com)
+ #rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
+ #rvm # ruby version from rvm (https://rvm.io)
+ # terraform # terraform workspace (https://www.terraform.io)
+ #aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
+ # aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
+ # azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
+ #nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
+ #ranger # ranger shell (https://github.com/ranger/ranger)
+ # vpn_ip # virtual private network indicator
+ # ram # free RAM
+ # load # CPU load
+ # time # current time
+ # =========================[ Line #2 ]=========================
+ #newline
+ # public_ip # public IP address
+ # proxy # system-wide http/https/ftp proxy
+ #battery # internal battery
+ # example # example user-defined segment (see prompt_example function below)
+ )
+
+ # Basic style options that define the overall look of your prompt. You probably don't want to
+ # change them.
+ typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace
+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space
+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol
+
+ # To disable default icons for all segments, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=''.
+ #
+ # To enable default icons for all segments, don't define POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
+ # or set it to '${P9K_VISUAL_IDENTIFIER}'.
+ #
+ # To remove spaces from all default icons, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
+ # to '${P9K_VISUAL_IDENTIFIER// }'. You'll know that you you need this option if you see extra
+ # spaces after icons.
+ #
+ # To enable default icons for one segment (e.g., dir), set
+ # POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'.
+ #
+ # To assign a specific icon to one segment (e.g., dir), set
+ # POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='⭐'.
+ #
+ # To assign a specific icon to a segment in a given state (e.g., dir in state NOT_WRITABLE),
+ # set POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'.
+ #
+ # Note: You can use $'\u2B50' instead of '⭐'. It's especially convenient when specifying
+ # icons that your text editor cannot render. Don't forget to put $ and use single quotes when
+ # defining icons via Unicode codepoints.
+ #
+ # Note: Many default icons cannot be displayed with system fonts. You'll need to install a
+ # capable font to use them. See POWERLEVEL9K_MODE below.
+ typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=
+
+ # This option makes a difference only when default icons are enabled for all or some prompt
+ # segments (see POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION above). LOCK_ICON can be printed as
+ # $'\uE0A2', $'\uE138' or $'\uF023' depending on POWERLEVEL9K_MODE. The correct value of this
+ # parameter depends on the provider of the font your terminal is using.
+ #
+ # Font Provider | POWERLEVEL9K_MODE
+ # ---------------------------------+-------------------
+ # Powerline | powerline
+ # Font Awesome | awesome-fontconfig
+ # Adobe Source Code Pro | awesome-fontconfig
+ # Source Code Pro | awesome-fontconfig
+ # Awesome-Terminal Fonts (regular) | awesome-fontconfig
+ # Awesome-Terminal Fonts (patched) | awesome-patched
+ # Nerd Fonts | nerdfont-complete
+ # Other | compatible
+ #
+ # If this looks overwhelming, either stick with a preinstalled system font and set
+ # POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from
+ # https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k
+ # and set POWERLEVEL9K_MODE=nerdfont-complete.
+ typeset -g POWERLEVEL9K_MODE=nerdfont-complete
+
+ # When set to true, icons appear before content on both sides of the prompt. When set
+ # to false, icons go after content. If empty or not set, icons go before content in the left
+ # prompt and after content in the right prompt.
+ #
+ # You can also override it for a specific segment:
+ #
+ # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false
+ #
+ # Or for a specific segment in specific state:
+ #
+ # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false
+ typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true
+
+ # Add an empty line before each prompt.
+ typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
+
+ # Connect left prompt lines with these symbols.
+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=
+ typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX=
+ typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX=
+ # Connect right prompt lines with these symbols.
+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=
+ typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=
+ typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=
+
+ # The left end of left prompt.
+ typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
+ # The right end of right prompt.
+ typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=
+
+ # Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll
+ # probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and
+ # POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below.
+ typeset -g POWERLEVEL9K_SHOW_RULER=false
+ typeset -g POWERLEVEL9K_RULER_CHAR='─' # reasonable alternative: '·'
+ typeset -g POWERLEVEL9K_RULER_FOREGROUND=240
+
+ # Filler between left and right prompt on the first prompt line. You can set it to '·' or '─'
+ # to make it easier to see the alignment between left and right prompt and to separate prompt
+ # from command output. It serves the same purpose as ruler (see above) without increasing
+ # the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false
+ # if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact
+ # prompt.
+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
+ if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
+ # The color of the filler.
+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=240
+ # Add a space between the end of left prompt and the filler.
+ typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' '
+ # Add a space between the filler and the start of right prompt.
+ typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' '
+ # Start filler from the edge of the screen if there are no left segments on the first line.
+ typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
+ # End filler on the edge of the screen if there are no right segments on the first line.
+ typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'
+ fi
+
+ #################################[ os_icon: os identifier ]##################################
+ # OS identifier color.
+ typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=
+ # Make the icon bold.
+ typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='%B${P9K_CONTENT}'
+
+ ################################[ prompt_char: prompt symbol ]################################
+ # Green prompt symbol if the last command succeeded.
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76
+ # Red prompt symbol if the last command failed.
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196
+ # Default prompt symbol.
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='$'
+ # Prompt symbol in command vi mode.
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
+ # Prompt symbol in visual vi mode.
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='Ⅴ'
+ # Prompt symbol in overwrite vi mode.
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=''
+
+ ##################################[ dir: current directory ]##################################
+ # Default current directory color.
+ typeset -g POWERLEVEL9K_DIR_FOREGROUND=31
+ # If directory is too long, shorten some of its segments to the shortest possible unique
+ # prefix. The shortened directory can be tab-completed to the original.
+ typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_from_right # truncate_to_unique
+ # typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
+ # Replace removed segment suffixes with this symbol.
+ typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
+ # Color of the shortened directory segments.
+ typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=103
+ # Color of the anchor directory segments. Anchor segments are never shortened. The first
+ # segment is always an anchor.
+ typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39
+ # Display anchor directory segments in bold.
+ typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
+ # Don't shorten directories that contain any of these files. They are anchors.
+ local anchor_files=(
+ .bzr
+ .citc
+ .git
+ .hg
+ .node-version
+ .python-version
+ .ruby-version
+ .shorten_folder_marker
+ .svn
+ .terraform
+ CVS
+ Cargo.toml
+ composer.json
+ go.mod
+ package.json
+ )
+ typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
+ # Don't shorten this many last directory segments. They are anchors.
+ typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
+ # Shorten directory if it's longer than this even if there is space for it. The value can
+ # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
+ # directory will be shortened only when prompt doesn't fit or when other parameters demand it
+ # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
+ typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
+ # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
+ # many columns for typing commands.
+ typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
+ # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
+ # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
+ typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
+ # If set to true, embed a hyperlink into the directory. Useful for quickly
+ # opening a directory in the file manager simply by clicking the link.
+ # Can also be handy when the directory is shortened, as it allows you to see
+ # the full directory that was used in previous commands.
+ typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
+
+ # Enable special styling for non-writable directories.
+ typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
+ # Show this icon when the current directory is not writable. POWERLEVEL9K_DIR_SHOW_WRITABLE
+ # above must be set to true for this parameter to have effect.
+ # typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ # Custom prefix.
+ # typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
+
+ # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons for different directories.
+ # It must be an array with 3 * N elements. Each triplet consists of:
+ #
+ # 1. A pattern against which the current directory is matched. Matching is done with
+ # extended_glob option enabled.
+ # 2. Directory class for the purpose of styling.
+ # 3. Icon.
+ #
+ # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. If there
+ # are no matches, the directory will have no icon.
+ #
+ # Example:
+ #
+ # typeset -g POWERLEVEL9K_DIR_CLASSES=(
+ # '~/work(/*)#' WORK '(╯°□°)╯︵ ┻━┻'
+ # '~(/*)#' HOME '⌂'
+ # '*' DEFAULT '')
+ #
+ # With these settings, the current directory in the prompt may look like this:
+ #
+ # (╯°□°)╯︵ ┻━┻ ~/work/projects/important/urgent
+ #
+ # Or like this:
+ #
+ # ⌂ ~/best/powerlevel10k
+ #
+ # You can also set different colors for directories of different classes. Remember to override
+ # FOREGROUND, SHORTENED_FOREGROUND and ANCHOR_FOREGROUND for every directory class that you wish
+ # to have its own color.
+ #
+ # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=31
+ # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=103
+ # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=39
+ #
+ # typeset -g POWERLEVEL9K_DIR_CLASSES=()
+
+ #####################################[ vcs: git status ]######################################
+ # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
+ typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
+ POWERLEVEL9K_VCS_BRANCH_ICON=${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}
+
+ # Untracked files icon. It's really a question mark, your font isn't broken.
+ # Change the value of this parameter to show a different icon.
+ typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
+ POWERLEVEL9K_VCS_UNTRACKED_ICON=${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}
+
+ # Formatter for Git status.
+ #
+ # Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
+ #
+ # You can edit the function to customize how Git status looks.
+ #
+ # VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
+ # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
+ function my_git_formatter() {
+ emulate -L zsh
+
+ if [[ -n $P9K_CONTENT ]]; then
+ # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
+ # gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
+ typeset -g my_git_format=$P9K_CONTENT
+ return
+ fi
+
+ if (( $1 )); then
+ # Styling for up-to-date Git status.
+ local meta='%f' # default foreground
+ local clean='%76F' # green foreground
+ local modified='%178F' # yellow foreground
+ local untracked='%39F' # blue foreground
+ local conflicted='%196F' # red foreground
+ else
+ # Styling for incomplete and stale Git status.
+ local meta='%244F' # grey foreground
+ local clean='%244F' # grey foreground
+ local modified='%244F' # grey foreground
+ local untracked='%244F' # grey foreground
+ local conflicted='%244F' # grey foreground
+ fi
+
+ local res
+ local where # branch name, tag or commit
+ if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
+ res+="${clean}${POWERLEVEL9K_VCS_BRANCH_ICON}"
+ where=${(V)VCS_STATUS_LOCAL_BRANCH}
+ elif [[ -n $VCS_STATUS_TAG ]]; then
+ res+="${meta}#"
+ where=${(V)VCS_STATUS_TAG}
+ else
+ res+="${meta}@"
+ where=${VCS_STATUS_COMMIT[1,8]}
+ fi
+
+ # If local branch name or tag is at most 32 characters long, show it in full.
+ # Otherwise show the first 12 … the last 12.
+ (( $#where > 32 )) && where[13,-13]="…"
+ res+="${clean}${where//\%/%%}" # escape %
+
+ # Show tracking branch name if it differs from local branch.
+ if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
+ res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" # escape %
+ fi
+
+ # ⇣42 if behind the remote.
+ (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
+ # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
+ (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
+ (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
+ # *42 if have stashes.
+ (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
+ # 'merge' if the repo is in an unusual state.
+ [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
+ # ~42 if have merge conflicts.
+ (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
+ # +42 if have staged changes.
+ (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
+ # !42 if have unstaged changes.
+ (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
+ # ?42 if have untracked files. It's really a question mark, your font isn't broken.
+ # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
+ # Remove the next line if you don't want to see untracked files at all.
+ (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
+
+ typeset -g my_git_format=$res
+ }
+ functions -M my_git_formatter 2>/dev/null
+
+ # Disable the default Git status formatting.
+ typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
+ # Install our own Git status formatter.
+ typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
+ typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}'
+ # Enable counters for staged, unstaged, etc.
+ typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
+
+ # Icon color.
+ typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76
+ typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # Custom prefix.
+ # typeset -g POWERLEVEL9K_VCS_PREFIX='%fon '
+
+ # Show status of repositories of these types. You can add svn and/or hg if you are
+ # using them. If you do, your prompt may become slow even when your current directory
+ # isn't in an svn or hg reposotiry.
+ typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
+
+ # These settings are used for respositories other than Git or when gitstatusd fails and
+ # Powerlevel10k has to fall back to using vcs_info.
+ typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76
+ typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76
+ typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178
+
+ ##########################[ status: exit code of the last command ]###########################
+ # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
+ # style them independently from the regular OK and ERROR state.
+ typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
+
+ # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as
+ # it will signify success by turning green.
+ typeset -g POWERLEVEL9K_STATUS_OK=false
+ typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=70
+ typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔'
+
+ # Status when some part of a pipe command fails but the overall exit status is zero. It may look
+ # like this: 1|0.
+ typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true
+ typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=70
+ typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔'
+
+ # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as
+ # it will signify error by turning red.
+ typeset -g POWERLEVEL9K_STATUS_ERROR=false
+ typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=160
+ typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘'
+
+ # Status when the last command was terminated by a signal.
+ typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true
+ typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=160
+ # Use terse signal names: "INT" instead of "SIGINT(2)".
+ typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false
+ typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘'
+
+ # Status when some part of a pipe command fails and the overall exit status is also non-zero.
+ # It may look like this: 1|0.
+ typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true
+ typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=160
+ typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘'
+
+ ###################[ command_execution_time: duration of the last command ]###################
+ # Show duration of the last command if takes longer than this many seconds.
+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
+ # Show this many fractional digits. Zero means round to seconds.
+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
+ # Execution time color.
+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=101
+ # Duration format: 1d 2h 3m 4s.
+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # Custom prefix.
+ # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook '
+
+ #######################[ background_jobs: presence of background jobs ]#######################
+ # Don't show the number of background jobs.
+ typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
+ # Background jobs color.
+ typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70
+ # Icon to show when there are background jobs.
+ typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⇶'
+
+ #######################[ direnv: direnv status (https://direnv.net/) ]########################
+ # Direnv color.
+ typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=178
+ # Icon to show when direnv is active.
+ typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
+
+ ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
+ # NordVPN connection indicator color.
+ typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=39
+ # Hide NordVPN connection indicator when not connected.
+ typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=
+ typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
+ # Ranger shell color.
+ typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ######################################[ ram: free RAM ]#######################################
+ # RAM color.
+ typeset -g POWERLEVEL9K_RAM_FOREGROUND=66
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ######################################[ load: CPU load ]######################################
+ # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
+ typeset -g POWERLEVEL9K_LOAD_WHICH=5
+ # Load color when load is under 50%.
+ typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=66
+ # Load color when load is between 50% and 70%.
+ typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=178
+ # Load color when load is over 70%.
+ typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=166
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ##################################[ context: user@hostname ]##################################
+ # Default context color.
+ typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180
+ # Default context format: %n is username, %m is hostname.
+ typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
+
+ # Context color when running with privileges.
+ typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
+ # Context format when running with privileges: bold user@hostname.
+ typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'
+
+ # Don't show context unless running with privileges or in SSH.
+ # Tip: Remove the next line to always show context.
+ typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
+
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # Custom prefix.
+ # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%fwith '
+
+ ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###
+ # Python virtual environment color.
+ typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=37
+ # Don't show Python version next to the virtual environment name.
+ typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
+ # Separate environment name from Python version only with a space.
+ typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #####################[ anaconda: conda environment (https://conda.io/) ]######################
+ # Anaconda environment color.
+ typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=37
+ # Don't show Python version next to the anaconda environment name.
+ typeset -g POWERLEVEL9K_ANACONDA_SHOW_PYTHON_VERSION=false
+ # Separate environment name from Python version only with a space.
+ typeset -g POWERLEVEL9K_ANACONDA_{LEFT,RIGHT}_DELIMITER=
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################
+ # Pyenv color.
+ typeset -g POWERLEVEL9K_PYENV_FOREGROUND=37
+ # Don't show the current Python version if it's the same as global.
+ typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
+ # Nodenv color.
+ typeset -g POWERLEVEL9K_NODENV_FOREGROUND=70
+ # Don't show node version if it's the same as global: $(nodenv version-name) == $(nodenv global).
+ typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
+ # Nvm color.
+ typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############
+ # Nodeenv color.
+ typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=70
+ # Don't show Node version next to the environment name.
+ typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false
+ # Separate environment name from Node version only with a space.
+ typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ##############################[ node_version: node.js version ]###############################
+ # Node version color.
+ typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=70
+ # Show node version only when in a directory tree containing package.json.
+ typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #######################[ go_version: go version (https://golang.org) ]########################
+ # Go version color.
+ typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=37
+ # Show go version only when in a go project subdirectory.
+ typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
+ # Rust version color.
+ typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=37
+ # Show rust version only when in a rust project subdirectory.
+ typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
+ # .NET version color.
+ typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134
+ # Show .NET version only when in a .NET project subdirectory.
+ typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
+ # Rbenv color.
+ typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168
+ # Hide ruby version if it doesn't come from one of these sources.
+ typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)
+ # If set to false, hide ruby version if it's the same as global:
+ # $(rbenv version-name) == $(rbenv global).
+ typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
+ # Rvm color.
+ typeset -g POWERLEVEL9K_RVM_FOREGROUND=168
+ # Don't show @gemset at the end.
+ typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
+ # Don't show ruby- at the front.
+ typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
+ # Kubernetes context classes for the purpose of using different colors, icons and expansions with
+ # different contexts.
+ #
+ # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element
+ # in each pair defines a pattern against which the current kubernetes context gets matched.
+ # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
+ # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,
+ # you'll see this value in your prompt. The second element of each pair in
+ # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
+ # first match wins.
+ #
+ # For example, given these settings:
+ #
+ # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
+ # '*prod*' PROD
+ # '*test*' TEST
+ # '*' DEFAULT)
+ #
+ # If your current kubernetes context is "deathray-testing/default", its class is TEST
+ # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
+ #
+ # You can define different colors, icons and content expansions for different classes:
+ #
+ # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=28
+ # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
+ typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
+ # '*prod*' PROD # These values are examples that are unlikely
+ # '*test*' TEST # to match your needs. Customize them as needed.
+ '*' DEFAULT)
+ typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=134
+
+ # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
+ # segment. Parameter expansions are very flexible and fast, too. See reference:
+ # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
+ #
+ # Within the expansion the following parameters are always available:
+ #
+ # - P9K_CONTENT The content that would've been displayed if there was no content
+ # expansion defined.
+ # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the
+ # output of `kubectl config get-contexts`.
+ # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the
+ # output of `kubectl config get-contexts`.
+ # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE
+ # in the output of `kubectl config get-contexts`. If there is no
+ # namespace, the parameter is set to "default".
+ #
+ # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
+ # the following extra parameters are available:
+ #
+ # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks".
+ # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID.
+ # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone.
+ # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster.
+ #
+ # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,
+ # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01":
+ #
+ # - P9K_KUBECONTEXT_CLOUD_NAME=gke
+ # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account
+ # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a
+ # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
+ #
+ # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01":
+ #
+ # - P9K_KUBECONTEXT_CLOUD_NAME=eks
+ # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
+ # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
+ # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
+ typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION='%F{13}${${${:-$KCS_PROFILE}:-$P9K_KUBECONTEXT_CLUSTER}}%f'
+ # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
+ # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
+ # POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
+ POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='/%F{3}${${:-$P9K_KUBECONTEXT_NAMESPACE}:-default}%f'
+ # Append the current context's namespace if it's not "default".
+ # POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
+
+ # Custom prefix.
+ # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat '
+
+ ################[ terraform: terraform workspace (https://www.terraform.io) ]#################
+ # Terraform color.
+ typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
+ # AWS profile color.
+ typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=208
+ # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
+ # in each pair defines a pattern against which the current AWS profile gets matched.
+ # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
+ # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
+ # you'll see this value in your prompt. The second element of each pair in
+ # POWERLEVEL9K_AWS_CLASSES defines the context class. Patterns are tried in order. The
+ # first match wins.
+ #
+ # For example, given these settings:
+ #
+ # typeset -g POWERLEVEL9K_AWS_CLASSES=(
+ # '*prod*' PROD
+ # '*test*' TEST
+ # '*' DEFAULT)
+ #
+ # If your current AWS profile is "company_test", its class is TEST
+ # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'.
+ #
+ # You can define different colors, icons and content expansions for different classes:
+ #
+ # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28
+ # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
+ typeset -g POWERLEVEL9K_AWS_CLASSES=(
+ # '*prod*' PROD # These values are examples that are unlikely
+ # '*test*' TEST # to match your needs. Customize them as needed.
+ '*' DEFAULT)
+ # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
+ # AWS Elastic Beanstalk environment color.
+ typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=70
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
+ # Azure account name color.
+ typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ###############################[ public_ip: public IP address ]###############################
+ # Public IP color.
+ typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=94
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ########################[ vpn_ip: virtual private network indicator ]#########################
+ # VPN IP color.
+ typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=81
+ # When on VPN, show just an icon without the IP address.
+ typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
+ # Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
+ # name of the interface.
+ typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
+ # Icon to show when on VPN.
+ typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
+
+ #########################[ proxy: system-wide http/https/ftp proxy ]##########################
+ # Proxy color.
+ typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ################################[ battery: internal battery ]#################################
+ # Show battery in red when it's below this level and not connected to power supply.
+ typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
+ typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=160
+ # Show battery in green when it's charging or fully charged.
+ typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=70
+ # Show battery in yellow when it's discharging.
+ typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=178
+ # Battery pictograms going from low to high level of charge.
+ typeset -g POWERLEVEL9K_BATTERY_STAGES=('%K{232}▁' '%K{232}▂' '%K{232}▃' '%K{232}▄' '%K{232}▅' '%K{232}▆' '%K{232}▇' '%K{232}█')
+ # Don't show the remaining time to charge/discharge.
+ typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
+
+ ####################################[ time: current time ]####################################
+ # Current time color.
+ typeset -g POWERLEVEL9K_TIME_FOREGROUND=66
+ # Format for the current time: 09:51:02. See `man 3 strftime`.
+ typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
+ # If set to true, time will update when you hit enter. This way prompts for the past
+ # commands will contain the start times of their commands as opposed to the default
+ # behavior where they contain the end times of their preceding commands.
+ typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # Custom prefix.
+ # typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '
+
+ function prompt_in_nix_shell() {
+ if test -n "${IN_NIX_SHELL}"; then
+ if test -n "${NIX_SHELL_PACKAGES}"; then
+ p10k segment -f yellow -i '🛡' -t "{ ${NIX_SHELL_PACKAGES} }"
+ else
+ p10k segment -f yellow -t "🛡"
+ fi
+ fi
+ }
+
+ function prompt_docker_host() {
+ if test -n "${DOCKER_HOST}"; then
+ p10k segment -f blue -i '🐋' -t "${DOCKER_HOST}"
+ fi
+ }
+ # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
+ # is to generate the prompt segment for display in instant prompt. See
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
+ #
+ # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
+ # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
+ # will replay these calls without actually calling instant_prompt_*. It is imperative that
+ # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this
+ # rule is not observed, the content of instant prompt will be incorrect.
+
+ function instant_prompt_in_nix_shell() {
+ prompt_in_nix_shell
+ }
+
+ function instant_prompt_docker_host() {
+ prompt_docker_host
+ }
+
+ # User-defined prompt segments can be customized the same way as built-in segments.
+ # typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=208
+ # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
+ # when accepting a command line. Supported values:
+ #
+ # - off: Don't change prompt when accepting a command line.
+ # - always: Trim down prompt when accepting a command line.
+ # - same-dir: Trim down prompt when accepting a command line unless this is the first command
+ # typed after changing current working directory.
+ typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
+
+ # Instant prompt mode.
+ #
+ # - off: Disable instant prompt. Choose this if you've tried instant prompt and found
+ # it incompatible with your zsh configuration files.
+ # - quiet: Enable instant prompt and don't print warnings when detecting console output
+ # during zsh initialization. Choose this if you've read and understood
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
+ # - verbose: Enable instant prompt and print a warning when detecting console output during
+ # zsh initialization. Choose this if you've never tried instant prompt, haven't
+ # seen the warning, or if you are unsure what this all means.
+ typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose
+
+ # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.
+ # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload
+ # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
+ # really need it.
+ typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
+
+ # If p10k is already loaded, reload configuration.
+ # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
+ #(( ! $+functions[p10k] )) || p10k reload
+}
+
+(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
+'builtin' 'unset' 'p10k_config_opts'
home/common/shell/atuin.nix
@@ -0,0 +1,46 @@
+{ pkgs, ... }:
+{
+ programs.atuin = {
+ enable = true;
+ enableZshIntegration = true;
+ flags = [ "--disable-up-arrow" ];
+ settings = {
+ auto_sync = true;
+ sync_frequency = "10m";
+ sync_address = "http://sakhalin.sbr.pm:8888";
+ search_mode = "skim";
+ filter_mode = "global";
+ enter_accept = false;
+ prefers_reduced_motion = true;
+ common_prefix = [ "sudo" ];
+ ignored_commands = [
+ "cd"
+ "fg"
+ "ls"
+ "rm"
+ "vi"
+ "vim"
+ "p"
+ "d"
+ "ll"
+ "j"
+ "g"
+ ":"
+ "mv"
+ "cat"
+ "echo"
+ ];
+ # history_filter = [
+ # "^curl"
+ # "^wget"
+ # "^monolith"
+ # "^sherlock"
+ # "^yt-dlp"
+ # "^yt-dl"
+ # "^gallery-dl"
+ # "^archivebox"
+ # "^fanficfare"
+ # ];
+ };
+ };
+}
home/common/shell/default.nix
@@ -0,0 +1,32 @@
+{ pkgs, ... }:
+{
+ imports = [
+ ./atuin.nix
+ ./direnv.nix
+ ./git.nix
+ ./htop.nix
+ ./tmux.nix
+ ./xdg.nix
+ ./zsh.nix
+ ];
+
+ programs = {
+ broot = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+ eza.enable = true;
+ fd.enable = true;
+ git.enable = true;
+ jq.enable = true;
+ };
+
+ home.packages = with pkgs; [
+ age
+ enchive
+ mosh
+ ripgrep
+
+ # ugrep
+ ];
+}
home/common/shell/direnv.nix
@@ -0,0 +1,14 @@
+{ pkgs, ... }:
+
+{
+ programs.direnv = {
+ enable = true;
+ enableZshIntegration = true;
+ stdlib = ''
+ mkdir -p $HOME/.cache/direnv/layouts
+ pwd_hash=$(echo -n $PWD | shasum | cut -d ' ' -f 1)
+ direnv_layout_dir=$HOME/.cache/direnv/layouts/$pwd_hash
+ source ${pkgs.nix-direnv}/share/nix-direnv/direnvrc
+ '';
+ };
+}
home/common/shell/fzf.nix
@@ -0,0 +1,13 @@
+_: {
+ programs.fzf = {
+ enable = true;
+ enableZshIntegration = true;
+ defaultOptions = [ "--bind=ctrl-j:accept" ];
+ changeDirWidgetOptions = [ "--preview 'tree -C {} | head -200'" ];
+ fileWidgetCommand = "rg --files";
+ fileWidgetOptions = [
+ "--preview 'bat -n --color=always {}'"
+ "--bind 'ctrl-/:change-preview-window(down|hidden|)'"
+ ];
+ };
+}
home/common/shell/git.nix
@@ -0,0 +1,242 @@
+{ config, lib, pkgs, ... }:
+let
+ redhat_folders = [
+ "src/github.com/containers"
+ "src/github.com/google"
+ "src/github.com/knative"
+ "src/github.com/kubernetes"
+ "src/github.com/openshift"
+ "src/github.com/openshift-knative"
+ "src/github.com/openshift-pipelines"
+ "src/github.com/operator-framework"
+ "src/github.com/redhat-developer"
+ "src/github.com/tektoncd"
+ "src/gitlab.cee.redhat.com"
+ "src/gitlab.corp.redhat.com"
+ "src/k8s.io"
+ "src/osp"
+ "src/pkg.devel.redhat.com"
+ "src/tektoncd"
+ "src/backstage"
+ "src/knative.dev"
+ "src/knative-sandbox"
+ ];
+in
+{
+ xdg.configFile."git/allowed_signers".text = ''
+ '';
+ home.packages = with pkgs; [
+ git-lfs
+ gh
+ codeberg-cli
+ mr
+ delta
+ difftastic
+ ];
+ programs.git = {
+ enable = true;
+ package = pkgs.git;
+
+ userName = "Vincent Demeester";
+ userEmail = "vincent@sbr.pm";
+
+ includes = [ ] ++ lib.lists.forEach redhat_folders (x: {
+ condition = "gitdir:${config.home.homeDirectory}/${x}/**";
+ contents.users.emal = "vdemeest@redhat.com";
+ });
+
+ signing = {
+ # key = "6EB699A3";
+ # FIXME: This should change depending on the host (could be different yubikey, …)
+ key = "${pkgs.writeText "yubikey5-c1" "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGHMa4rHuBbQQYv+8jvlkFCD2VYRGA4+5fnZAhLx8iDirzfEPqHB60UJWcDeixnJCUlpJjzFbS4crNOXhfCTCTE="}";
+ signByDefault = false;
+ };
+
+ aliases = {
+ b = "branch - -color - v";
+ br = "branch";
+ ca = "commit --amend";
+ ci = "commit --signoff";
+ co = "checkout";
+ conflicts = "!git ls-files --unmerged | cut -c51- | sort -u | xargs $EDITOR";
+ dft = "difftool";
+ lg = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative";
+ lga = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative --branches --remotes";
+ lol = "log --pretty=oneline --abbrev-commit --graph --decorate";
+ ls-ignored = "ls-files --exclude-standard --ignored --others";
+ resolve = "!git ls-files --unmerged | cut -c51- | sort -u | xargs git add";
+ st = "status";
+ su = "submodule update --init --recursive";
+ unstage = "reset HEAD";
+ w = "status -sb";
+ wdiff = "diff --color-words";
+ kdiff = "difftool --tool=kitty --no-symlinks --dir-diff";
+ };
+ attributes = [
+ "*.org diff=org"
+ ];
+ extraConfig = {
+ core = {
+ pager = "${pkgs.delta}/bin/delta";
+ abbrev = 12;
+ # pager = "${pkgs.delta}/bin/delta --syntax-theme GitHub";
+ # editor = "${pkgs.emacs}/bin/emacsclient -t";
+ };
+ gpg = {
+ format = "ssh";
+ ssh = {
+ defaultKeyCommand = "sh -c 'echo key::$(ssh-add -L | head -n1)'";
+ allowedSignersFile = "${config.xdg.configHome}/git/allowed_signers";
+ };
+ };
+ commit = {
+ gpgSign = true;
+ };
+ tag = {
+ gpgSign = true;
+ };
+ init = {
+ defaultBranch = "main";
+ };
+ color = {
+ status = "auto";
+ diff = "auto";
+ branch = "auto";
+ interactive = "auto";
+ ui = "auto";
+ sh = "auto";
+ };
+ "color.branch" = {
+ current = "cyan reverse";
+ local = "cyan";
+ remote = "green";
+ };
+ "color.diff" = {
+ current = "white reverse";
+ frag = "magenta reverse";
+ old = "red";
+ new = "green";
+ };
+ "color.status" = {
+ added = "green";
+ changed = "yellow";
+ untracked = "red";
+ };
+ # Either use this *or* git maintenance
+ # fetch = {
+ # writeCommitGraph = true;
+ # };
+ diff = {
+ algorithm = "histogram";
+ colormoved = "default";
+ colormovedws = "allow-indentation-change";
+ # external = "difft";
+ # tool = "difftastic";
+ };
+ "diff.org" = {
+ xfuncname = "\"^\\\\*+.*\"";
+ };
+ difftool = {
+ prompt = false;
+ trustExitCode = true;
+ };
+ "difftool.difftastic" = {
+ cmd = "difft \"$LOCAL\" \"$REMOTE\"";
+ };
+ "difftool.kitty" = {
+ cmd = "kitten diff $LOCAL $REMOTE";
+ };
+ pager = {
+ difftool = true;
+ };
+ pretty = {
+ fixes = "Fixes: %h (\"%s\")";
+ };
+ forge = {
+ remote = "upstream";
+ };
+ rerere = {
+ enabled = true;
+ };
+ hub = {
+ protocol = true;
+ };
+ pull = {
+ rebase = true;
+ };
+ push = {
+ default = "upstream";
+ recurseSubmodules = "check";
+ };
+ rebase = {
+ autosquash = true;
+ };
+ status = {
+ short = true;
+ branch = true;
+ };
+ branch = {
+ sort = "-committerdate";
+ };
+ advice = {
+ statusHints = false;
+ pushNonFastForward = false;
+ };
+ http = {
+ # sslCAinfo = "${ca-bundle_crt}";
+ sslverify = true;
+ };
+ delta = {
+ syntax-theme = "GitHub";
+ features = "decorations";
+ };
+
+ "delta \"decorations\"" = {
+ commit-decoration-style = "blue ol";
+ commit-style = "raw";
+ file-style = "omit";
+ hunk-header-decoration-style = "blue box";
+ hunk-header-file-style = "red";
+ hunk-header-line-number-style = "#067a00";
+ hunk-header-style = "file line-number syntax";
+ navigate = true;
+ };
+
+ credential = {
+ "https://github.com" = {
+ helper = "!${pkgs.gh}/bin/gh auth git-credential";
+ };
+ "https://gist.github.com" = {
+ helper = "!${pkgs.gh}/bin/gh auth git-credential";
+ };
+ };
+ github.user = "vdemeester";
+ "filter \"lfs\"" = {
+ clean = "${pkgs.git-lfs}/bin/git-lfs clean -- %f";
+ smudge = "${pkgs.git-lfs}/bin/git-lfs smudge --skip -- %f";
+ required = true;
+ };
+ "url \"git@github.com:\"".insteadOf = "git://github.com/";
+ };
+
+ ignores = [
+ "*.elc"
+ "*.vo"
+ "*.aux"
+ "*.v.d"
+ "*.o"
+ "*.a"
+ "*.la"
+ "*.so"
+ "*.dylib"
+ "*.pyc"
+ "*.pyo"
+ ".idea"
+ "*.iml"
+ "*~"
+ "#*#"
+ ".makefile"
+ ".clean"
+ ];
+ };
+}
home/common/shell/htop.nix
@@ -0,0 +1,21 @@
+{ config, ... }:
+{
+ programs.htop = {
+ enable = true;
+ settings = {
+ delay = 10;
+ } // (with config.lib.htop; leftMeters [
+ (bar "AllCPUs2")
+ (bar "Memory")
+ (bar "Swap")
+ ]) // (with config.lib.htop; rightMeters [
+ (text "Clock")
+ (text "Hostname")
+ (text "Tasks")
+ (text "LoadAverage")
+ (text "Uptime")
+ (text "Battery")
+ (text "Systemd")
+ ]);
+ };
+}
home/common/shell/tmux.nix
@@ -0,0 +1,20 @@
+{ config, pkgs, ... }:
+
+{
+ programs.tmux = {
+ enable = true;
+ #sensibleOnTop = true;
+ #aggressiveResize = true;
+ clock24 = true;
+ escapeTime = 0;
+ newSession = true;
+ #plugins = with pkgs.tmuxPlugins; [ prefix-highlight ];
+ #secureSocket = false;
+ terminal = "tmux-256color";
+ #historyLimit = 30000;
+ extraConfig = ''
+ source-file ${config.xdg.configHome}/tmux/tmux.conf
+ '';
+ };
+ xdg.configFile."tmux/tmux.conf".source = ./tmux/tmux.conf;
+}
home/common/shell/xdg.nix
@@ -0,0 +1,32 @@
+{ config, lib, ... }:
+let
+ desktopDirectory = config.home.homeDirectory + "/desktop";
+in
+{
+ xdg = {
+ enable = true;
+
+ configHome = config.home.homeDirectory + "/.config";
+ cacheHome = config.home.homeDirectory + "/.local/cache";
+ dataHome = config.home.homeDirectory + "/.local/share";
+ stateHome = config.home.homeDirectory + "/.local/state";
+
+ userDirs = {
+ enable = true;
+ createDirectories = lib.mkDefault true;
+
+ desktop = desktopDirectory;
+ documents = desktopDirectory + "documents";
+ download = desktopDirectory + "/downloads";
+ music = desktopDirectory + "/music";
+ pictures = desktopDirectory + "/pictures";
+ publicShare = desktopDirectory + "/www";
+ templates = desktopDirectory + "/documents/templates";
+ videos = desktopDirectory + "/videos";
+
+ extraConfig = {
+ XDG_SCREENSHOTS_DIR = "${desktopDirectory}/pictures/screenshots";
+ };
+ };
+ };
+}
home/common/shell/zsh.nix
@@ -0,0 +1,164 @@
+{ config, pkgs, ... }: {
+ home.packages = with pkgs; [
+ nix-zsh-completions
+ ];
+
+ programs.zsh = {
+ enable = true;
+ enableCompletion = true;
+ autosuggestion.enable = true;
+ autocd = true;
+ dotDir = "${config.xdg.configHome}/zsh";
+ defaultKeymap = "emacs";
+ history = {
+ expireDuplicatesFirst = true;
+ extended = true;
+ ignoreDups = true;
+ path = "${config.xdg.dataHome}/zsh_history";
+ save = 10000;
+ share = true;
+ };
+ envExtra = ''
+ export PATH=$HOME/bin:$PATH
+ export LESSHISTFILE="${config.xdg.dataHome}/less_history"
+ export WEBKIT_DISABLE_COMPOSITING_MODE=1;
+ if [ -d $HOME/.krew/bin ]; then
+ export PATH=$HOME/.krew/bin:$PATH
+ fi
+ # TODO Move somewhere else
+ export TLDR_CACHE_DIR="$XDG_CACHE_HOME"/tldr
+ '';
+ # TODO Extract this to files.
+ initExtra = ''
+ # c.f. https://wiki.gnupg.org/AgentForwarding
+ # gpgconf --create-socketdir &!
+ path+="$HOME/${config.programs.zsh.dotDir}/functions"
+ fpath+="$HOME/.nix-profile/share/zsh/site-functions"
+ fpath+="$HOME/${config.programs.zsh.dotDir}/functions"
+ for func ($HOME/${config.programs.zsh.dotDir}/functions) autoload -U $func/*(x:t)
+ autoload -Uz select-word-style; select-word-style bash
+ if [ -e /home/vincent/.nix-profile/etc/profile.d/nix.sh ]; then . /home/vincent/.nix-profile/etc/profile.d/nix.sh; fi
+ #if [ -n "$INSIDE_EMACS" ]; then
+ # chpwd() { print -P "\033AnSiTc %d" }
+ # print -P "\033AnSiTu %n"
+ # print -P "\033AnSiTc %d"
+ #fi
+ if [[ "$TERM" == "dumb" || "$TERM" == "emacs" ]]
+ then
+ TERM=eterm-color
+ unsetopt zle
+ unsetopt prompt_cr
+ unsetopt prompt_subst
+ unfunction precmd
+ unfunction preexec
+ PS1='$ '
+ return
+ fi
+ # eval "$(${config.programs.atuin.package}/bin/atuin init zsh)"
+ # make sure navigation using emacs keybindings works on all non-alphanumerics
+ # syntax highlighting
+ source $HOME/${config.programs.zsh.dotDir}/plugins/zsh-nix-shell/nix-shell.plugin.zsh
+ source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+ ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red')
+ ZSH_HIGHLIGHT_PATTERNS+=('rm -fR *' 'fg=white,bold,bg=red')
+ ZSH_HIGHLIGHT_PATTERNS+=('rm -fr *' 'fg=white,bold,bg=red')
+ source $HOME/${config.programs.zsh.dotDir}/completion.zsh
+ source $HOME/${config.programs.zsh.dotDir}/plugins/powerlevel10k/powerlevel10k.zsh-theme
+ source $HOME/${config.programs.zsh.dotDir}/prompt.zsh
+ source $HOME/${config.programs.zsh.dotDir}/plugins/kubectl-config-switcher/kubectl-config-switcher.plugin.zsh
+ source $HOME/${config.programs.zsh.dotDir}/auto-expanding-aliases.zsh
+ setopt HIST_IGNORE_SPACE
+ alias -g L="|less"
+ alias -g EEL=' 2>&1 | less'
+ alias -g GB='`git rev-parse --abbrev-ref HEAD`'
+ alias -g GR='`git rev-parse --show-toplevel`'
+ alias -s {ape,avi,flv,m4a,mkv,mov,mp3,mp4,mpeg,mpg,ogg,ogm,wav,webm}=mpv
+ alias -s org=emacs
+ (( $+commands[jq] )) && alias -g MJ="| jq -C '.'" || alias -g MJ="| ${pkgs.python3}/bin/python -mjson.tool"
+ (( $+functions[zshz] )) && compdef _zshz j
+ [[ -n $INSIDE_EMACS ]] && \
+ function ff () {
+ print "\e]51;Efind-file $(readlink -f $1)\e\\"
+ }
+
+ export _Z_DATA="${config.xdg.dataHome}/z"
+
+
+ [ -n "$EAT_SHELL_INTEGRATION_DIR" ] && \
+ source "$EAT_SHELL_INTEGRATION_DIR/zsh"
+ '';
+ loginExtra = ''
+ if [[ -z $DISPLAY && $TTY = /dev/tty1 ]]; then
+ exec dbus-run-session sway
+ fi
+ '';
+ profileExtra = ''
+ if [ -e /home/vincent/.nix-profile/etc/profile.d/nix.sh ]; then . /home/vincent/.nix-profile/etc/profile.d/nix.sh; fi
+ '';
+ sessionVariables = { RPROMPT = ""; };
+
+ shellAliases = {
+ mkdir = ''mkdir --parents --verbose'';
+ rm = ''rm --interactive'';
+ cp = ''cp --interactive'';
+ mv = ''mv --interactive'';
+ gcd = ''cd (git root)'';
+ # ls = ''exa'';
+ ll = ''ls -l'';
+ la = ''ls -a'';
+ l = ''ls -lah'';
+ # t = ''exa --tree --level=2'';
+ map = ''xargs -n1'';
+ k = ''kubectl'';
+ wget = ''wget -c --hsts-file=${config.xdg.dataHome}/wget-hsts'';
+ };
+
+ plugins = [
+ {
+ name = "kubectl-config-switcher";
+ src = pkgs.fetchFromGitHub {
+ owner = "chmouel";
+ repo = "kubectl-config-switcher";
+ rev = "5679aa70383cee93fc15351dd4895c29c90b78a5";
+ sha256 = "sha256-Aifa5ms2p/l0FkZE8Tep8QiDWUdfFfdKrTIbJNurxw4=";
+ };
+ }
+ {
+ name = "zsh-z";
+ src = pkgs.fetchFromGitHub {
+ owner = "agkozak";
+ repo = "zsh-z";
+ rev = "aaafebcd97424c570ee247e2aeb3da30444299cd";
+ sha256 = "sha256-9Wr4uZLk2CvINJilg4o72x0NEAl043lP30D3YnHk+ZA=";
+ };
+ }
+ {
+ name = "async";
+ src = pkgs.fetchFromGitHub {
+ owner = "mafredri";
+ repo = "zsh-async";
+ rev = "v1.8.5";
+ sha256 = "sha256-mpXT3Hoz0ptVOgFMBCuJa0EPkqP4wZLvr81+1uHDlCc=";
+ };
+ }
+ {
+ name = "powerlevel10k";
+ src = pkgs.fetchFromGitHub {
+ owner = "romkatv";
+ repo = "powerlevel10k";
+ rev = "v1.20.0";
+ sha256 = "sha256-ES5vJXHjAKw/VHjWs8Au/3R+/aotSbY7PWnWAMzCR8E=";
+ };
+ }
+ {
+ name = "zsh-nix-shell";
+ src = pkgs.fetchFromGitHub {
+ owner = "chisui";
+ repo = "zsh-nix-shell";
+ rev = "v0.8.0";
+ sha256 = "sha256-Z6EYQdasvpl1P78poj9efnnLj7QQg13Me8x1Ryyw+dM=";
+ };
+ }
+ ];
+ };
+}
home/default.nix
@@ -0,0 +1,54 @@
+{ desktop
+, hostname
+, lib
+, pkgs
+, outputs
+, stateVersion
+, username
+, inputs
+, ...
+}: {
+ imports = [
+ ./common/shell
+ ]
+ ++ lib.optional (builtins.isString desktop) ./common/desktop
+ ++ lib.optional
+ (builtins.pathExists (
+ ./. + "/common/users/${username}"
+ )) ./common/users/${username};
+
+ home = {
+ inherit username stateVersion;
+ homeDirectory = "/home/${username}";
+ };
+
+ nixpkgs = {
+ overlays = [
+
+ # FIXME remove those
+ # (import ./nix/overlays).tekton
+ (import ../nix/overlays/sbr.nix)
+ # Our own flake exports (from overlays and pkgs dir)
+ outputs.overlays.additions
+ outputs.overlays.modifications
+ outputs.overlays.unstable-packages
+
+ # And from other flakes
+ inputs.emacs-overlay.overlay
+ inputs.chapeau-rouge.overlays.openshift
+ inputs.chick-group.overlays.default
+ inputs.agenix.overlays.default
+
+ # Migrate to "modifications"
+ (_: prev: {
+ inherit (inputs.buildkit-tekton.packages.${prev.system}) tkn-local;
+ inherit (inputs.dagger.packages.${prev.system}) dagger;
+ })
+ ];
+ config = {
+ allowUnfree = true;
+ # Workaround for https://github.com/nix-community/home-manager/issues/2942
+ allowUnfreePredicate = _: true;
+ };
+ };
+}
nix/overlays/default.nix
@@ -12,7 +12,7 @@
# When applied, the unstable nixpkgs set (declared in the flake inputs) will
# be accessible through 'pkgs.unstable'
unstable-packages = final: _prev: {
- master = import inputs.master {
+ master = import inputs.nixpkgs-master {
inherit (final) system;
config.allowUnfree = true;
overlays = [
@@ -23,7 +23,7 @@
})
];
};
- unstable = import inputs.unstable {
+ unstable = import inputs.nixpkgs {
inherit (final) system;
config.allowUnfree = true;
overlays = [
systems/common/users/vincent.nix
@@ -2,6 +2,10 @@
, lib
, config
, desktop
+, hostname
+, outputs
+, stateVersion
+, inputs
, ...
}:
let
@@ -62,7 +66,11 @@ in
# '';
# Do I user home-manager nixosModule *or* home-manager on its own
- # home-manager.users.vincent = …
+ home-manager.users.vincent =
+ (import ../../../home/default.nix {
+ inherit pkgs lib hostname desktop outputs inputs stateVersion;
+ username = "vincent";
+ });
# This is a workaround for not seemingly being able to set $EDITOR in home-manager
environment.sessionVariables = {
EDITOR = "emacs";
flake.nix
@@ -57,6 +57,7 @@
];
in
{
+ # Standalone home configurations
homeConfigurations = {
# headless machine
"vincent@aion" = libx.mkHome {