-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
move ReactiveQueue definition #122
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
gogonzo
approved these changes
Jan 24, 2023
gogonzo
reviewed
Jan 24, 2023
gogonzo
reviewed
Jan 24, 2023
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=([0]="0") BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_VERSINFO=([0]="2" [1]="10") BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=([0]="5" [1]="0" [2]="17" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") BASH_VERSION='5.0.17(1)-release' CDC_JOINED_DC=rm2msemea01.emea.roche.com CDC_JOINED_DOMAIN=emea.roche.com CDC_JOINED_SITE=ADS-DE-Mannheim CDC_JOINED_ZONE=CN=EMEA_RLC-Clients-Global,OU=Zones,DC=emea,DC=roche,DC=com CDC_LOCALHOST=rbauwprlc0039.emea.roche.com CDC_PREW2KHOST=rbauwprlc0039 CHROME_DESKTOP=rstudio.desktop CLICOLOR_FORCE=1 COLUMNS=162 DA_SESSION_ID_AUTH=efbfa33c-0520-014e-a473-589e552e3909 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/756679/bus DEFAULT_XDG_CONFIG_DIRS=/etc/xdg DEFAULT_XDG_DATA_DIRS=/usr/local/share/:/usr/share/ DESKTOP_SESSION=ubuntu DIRSTACK=() DISPLAY=:0 EDITOR=vi EUID=756679 GDK_BACKEND=x11 GDMSESSION=ubuntu GIO_LAUNCHED_DESKTOP_FILE=/usr/share/applications/rstudio.desktop GIO_LAUNCHED_DESKTOP_FILE_PID=102377 GITHUB_PAT=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 GIT_ASKPASS=rpostback-askpass GJS_DEBUG_OUTPUT=stderr GJS_DEBUG_TOPICS='JS ERROR;JS LOG' GNOME_DESKTOP_SESSION_ID=this-is-deprecated GNOME_SHELL_SESSION_MODE=ubuntu GPG_AGENT_INFO=/run/user/756679/gnupg/S.gpg-agent:0:1 GROUPS=() GTK_MODULES=gail:atk-bridge HISTCONTROL=ignoreboth HISTFILE=/home/users/chlebowa/.bash_history HISTFILESIZE=2000 HISTSIZE=1000 HOME=/home/users/chlebowa HOSTNAME=rbauwprlc0039 HOSTTYPE=x86_64 IFS=$' \t\n' IM_CONFIG_PHASE=1 INVOCATION_ID=eebbe79dd96a417cb0907271a3cc408f JOURNAL_STREAM=8:64417 LANG=en_US.UTF-8 LD_LIBRARY_PATH=/usr/lib/R/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/default-java/lib/server LESSCLOSE='/usr/bin/lesspipe %s %s' LESSOPEN='| /usr/bin/lesspipe %s' LINES=27 LN_S='ln -s' LOGNAME=chlebowa LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:' MACHTYPE=x86_64-pc-linux-gnu MAILCHECK=60 MAKE=make MANAGERPID=2987 MPLENGINE=tkAgg OPTERR=1 OPTIND=1 ORIGINAL_XDG_CURRENT_DESKTOP=ubuntu:GNOME OSTYPE=linux-gnu PAGER=/usr/bin/pager PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/rstudio/resources/app/bin/quarto/bin:/usr/lib/rstudio/resources/app/bin/postback/postback:/usr/bin:/usr/bin:/usr/bin:/usr/bin PIPESTATUS=([0]="0") PPID=50876 PROMPT_COMMAND='echo -ne "\033]0;${PWD/#${HOME}/~}\007"' PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' PS2='> ' PS4='+ ' PWD=/home/users/chlebowa/NEST/teal.transform PYTHONIOENCODING=utf-8 QT_ACCESSIBILITY=1 QT_IM_MODULE=ibus RENV_DEFAULT_R_ENVIRON='<NA>' RENV_DEFAULT_R_ENVIRON_USER='<NA>' RENV_DEFAULT_R_LIBS='<NA>' RENV_DEFAULT_R_LIBS_SITE=/usr/local/lib/R/site-library/:/usr/lib/R/site-library:/usr/lib/R/library RENV_DEFAULT_R_LIBS_USER=/home/users/chlebowa/R/x86_64-pc-linux-gnu-library/4.2 RENV_DEFAULT_R_PROFILE='<NA>' RENV_DEFAULT_R_PROFILE_USER='<NA>' RENV_PROJECT=/home/users/chlebowa/NEST RETICULATE_MINICONDA_PYTHON_ENVPATH=/home/users/chlebowa/NEST/renv/python/r-reticulate RETICULATE_PYTHON_FALLBACK=/usr/bin/python3 RMARKDOWN_MATHJAX_PATH=/usr/lib/rstudio/resources/app/resources/mathjax-27 RSTUDIO=1 RSTUDIO_CHILD_PROCESS_PANE=terminal RSTUDIO_CLI_HYPERLINKS=true RSTUDIO_CONSOLE_COLOR=256 RSTUDIO_CONSOLE_WIDTH=140 RSTUDIO_PANDOC=/usr/lib/rstudio/resources/app/bin/quarto/bin/tools RSTUDIO_PROGRAM_MODE=desktop RSTUDIO_PROJ_NAME=teal.transform RSTUDIO_SESSION_ID=cc68ed66 RSTUDIO_SESSION_PID=155799 RSTUDIO_SESSION_PORT=12063 RSTUDIO_TERM=53038751 RSTUDIO_TERMINAL_HOOKS=/usr/lib/rstudio/resources/app/resources/terminal/hooks RSTUDIO_USER_IDENTITY=chlebowa RSTUDIO_WINUTILS=bin/winutils RS_RPOSTBACK_PATH=/usr/lib/rstudio/resources/app/bin/rpostback RS_SHARED_SECRET=ea58ccd9-d7ed-40cd-8c99-92b38059625d R_ARCH= R_BROWSER=xdg-open R_BZIPCMD=/bin/bzip2 R_CLI_HAS_HYPERLINK_IDE_HELP=true R_CLI_HAS_HYPERLINK_IDE_RUN=true R_CLI_HAS_HYPERLINK_IDE_VIGNETTE=true R_DOC_DIR=/usr/share/R/doc R_GZIPCMD='/bin/gzip -n' R_HOME=/usr/lib/R R_INCLUDE_DIR=/usr/share/R/include R_LIBS_SITE=/usr/local/lib/R/site-library/:/usr/lib/R/site-library:/usr/lib/R/library R_LIBS_USER=/home/users/chlebowa/NEST/renv/library/R-4.2/x86_64-pc-linux-gnu:/home/users/chlebowa/NEST/renv/sandbox/R-4.2/x86_64-pc-linux-gnu/9a444a72 R_PAPERSIZE=letter R_PAPERSIZE_USER=a4 R_PDFVIEWER=/usr/bin/xdg-open R_PLATFORM=x86_64-pc-linux-gnu R_PRINTCMD=/usr/bin/lpr R_RD4PDF=times,inconsolata,hyper R_RUNTIME= R_SESSION_TMPDIR=/tmp/RtmpRtytG0 R_SHARE_DIR=/usr/share/R/share R_STRIP_SHARED_LIB='strip --strip-unneeded' R_STRIP_STATIC_LIB='strip --strip-debug' R_SYSTEM_ABI=linux,gcc,gxx,gfortran,gfortran R_TEXI2DVICMD=/usr/bin/texi2dvi R_UNZIPCMD=/usr/bin/unzip R_ZIPCMD=/usr/bin/zip SED=/bin/sed SESSION_MANAGER=local/rbauwprlc0039:@/tmp/.ICE-unix/3308,unix/rbauwprlc0039:/tmp/.ICE-unix/3308 SHELL=/bin/bash SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor SHLVL=4 SSH_AGENT_PID=3270 SSH_AUTH_SOCK=/run/user/756679/keyring/ssh TAR=/bin/tar TERM=xterm-256color UID=756679 USER=chlebowa USERNAME=chlebowa USER_PRINCIPAL_NAME=chlebowa@EMEA.ROCHE.COM WINDOWPATH=2 XAUTHORITY=/run/user/756679/gdm/Xauthority XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg XDG_CURRENT_DESKTOP=Unity XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop XDG_MENU_PREFIX=gnome- XDG_RUNTIME_DIR=/run/user/756679 XDG_SESSION_CLASS=user XDG_SESSION_DESKTOP=ubuntu XDG_SESSION_TYPE=x11 XMODIFIERS=@im=ibus _=E7360431 _REALHOME=/home/users/chlebowa _R_CHECK_COMPILATION_FLAGS_KNOWN_='-Wformat -Werror=format-security -Wdate-time' __git_printf_supports_v=yes _backup_glob='@(#*#|*@(~|.@(bak|orig|rej|swp|dpkg*|rpm@(orig|new|save))))' _xspecs=([lokalize]="!*.po" [acroread]="!*.[pf]df" [lbzcat]="!*.?(t)bz?(2)" [mpg321]="!*.mp3" [bzcat]="!*.?(t)bz?(2)" [oocalc]="!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)" [tex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [unlzma]="!*.@(tlz|lzma)" [sxemacs]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [aviplay]="!*.@(avi|asf|wmv)" [lbunzip2]="!*.?(t)bz?(2)" [dragon]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [freeamp]="!*.@(mp3|og[ag]|pls|m3u)" [rgvim]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [ooimpress]="!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)" [gqmpeg]="!*.@(mp3|og[ag]|pls|m3u)" [texi2html]="!*.texi*" [hbpp]="!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])" [lowriter]="!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)" [qiv]="!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|svg)" [xanim]="!*.@(mpg|mpeg|avi|mov|qt)" [ps2pdfwr]="!*.@(?(e)ps|pdf)" [harbour]="!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])" [jadetex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [lodraw]="!*.@(sxd|std|sda|sdd|?(f)odg|otg)" [dvitype]="!*.dvi" [lobase]="!*.odb" [rpm2cpio]="!*.[rs]pm" [xine]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [lualatex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [localc]="!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)" [hbrun]="!*.[Hh][Rr][Bb]" [amaya]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [gv]="!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))" [unpigz]="!*.@(Z|[gGdz]z|t[ag]z)" [mozilla]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [epdfview]="!*.pdf" [dvips]="!*.dvi" [pdfunite]="!*.pdf" [ps2pdf14]="!*.@(?(e)ps|pdf)" [kid3]="!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)" [vi]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [ps2pdf]="!*.@(?(e)ps|pdf)" [gpdf]="!*.[pf]df" [lilypond]="!*.ly" [texi2dvi]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [modplug123]="!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)" [znew]="*.Z" [ps2pdf13]="!*.@(?(e)ps|pdf)" [ps2pdf12]="!*.@(?(e)ps|pdf)" [kwrite]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [latex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [kate]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [pbzcat]="!*.?(t)bz?(2)" [poedit]="!*.po" [view]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [kid3-qt]="!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)" [luatex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [bunzip2]="!*.?(t)bz?(2)" [dvipdfm]="!*.dvi" [kbabel]="!*.po" [ly2dvi]="!*.ly" [oodraw]="!*.@(sxd|std|sda|sdd|?(f)odg|otg)" [bzme]="!*.@(zip|z|gz|tgz)" [rgview]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [pdftex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [xemacs]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [zathura]="!*.@(cb[rz7t]|djv?(u)|?(e)ps|pdf)" [unxz]="!*.@(?(t)xz|tlz|lzma)" [rvim]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [madplay]="!*.mp3" [xetex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [gvim]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [kaffeine]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [dviselect]="!*.dvi" [kpdf]="!*.@(?(e)ps|pdf)" [bibtex]="!*.aux" [realplay]="!*.@(rm?(j)|ra?(m)|smi?(l))" [mpg123]="!*.mp3" [netscape]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [lzegrep]="!*.@(tlz|lzma)" [gview]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [kdvi]="!*.@(dvi|DVI)?(.@(gz|Z|bz2))" [xv]="!*.@(gif|jp?(e)g?(2)|j2[ck]|jp[2f]|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|?(e)ps)" [lzfgrep]="!*.@(tlz|lzma)" [playmidi]="!*.@(mid?(i)|cmf)" [lzless]="!*.@(tlz|lzma)" [elinks]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [timidity]="!*.@(mid?(i)|rmi|rcp|[gr]36|g18|mod|xm|it|x3m|s[3t]m|kar)" [xdvi]="!*.@(dvi|DVI)?(.@(gz|Z|bz2))" [xfig]="!*.fig" [xpdf]="!*.@(pdf|fdf)?(.@(gz|GZ|bz2|BZ2|Z))" [lomath]="!*.@(sxm|smf|mml|odf)" [lzcat]="!*.@(tlz|lzma)" [compress]="*.Z" [pdfjadetex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [kghostview]="!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))" [zcat]="!*.@(Z|[gGd]z|t[ag]z)" [pbunzip2]="!*.?(t)bz?(2)" [oobase]="!*.odb" [cdiff]="!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))" [gtranslator]="!*.po" [lynx]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [emacs]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [zipinfo]="!*.@(zip|[egjswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|epub|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl)" [xelatex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [uncompress]="!*.Z" [xzcat]="!*.@(?(t)xz|tlz|lzma)" [unzip]="!*.@(zip|[egjswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|epub|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl)" [rview]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [ogg123]="!*.@(og[ag]|m3u|flac|spx)" [lrunzip]="!*.lrz" [lzgrep]="!*.@(tlz|lzma)" [slitex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [vim]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [ggv]="!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))" [ee]="!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)" [oomath]="!*.@(sxm|smf|mml|odf)" [aaxine]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [dvipdfmx]="!*.dvi" [advi]="!*.dvi" [gunzip]="!*.@(Z|[gGd]z|t[ag]z)" [makeinfo]="!*.texi*" [gharbour]="!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])" [okular]="!*.@(okular|@(?(e|x)ps|?(E|X)PS|[pf]df|[PF]DF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb?(2)|FB?(2)|mobi|MOBI|g3|G3|chm|CHM)?(.?(gz|GZ|bz2|BZ2|xz|XZ)))" [galeon]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [pdflatex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [lzmore]="!*.@(tlz|lzma)" [portecle]="!@(*.@(ks|jks|jceks|p12|pfx|bks|ubr|gkr|cer|crt|cert|p7b|pkipath|pem|p10|csr|crl)|cacerts)" [oowriter]="!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)" [loimpress]="!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)" [epiphany]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [modplugplay]="!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)" [dvipdf]="!*.dvi" [dillo]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [fbxine]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" ) snap_bin_path=/snap/bin snap_xdg_path=/var/lib/snapd/desktop __expand_tilde_by_ref () { if [[ ${!1} == \~* ]]; then eval $1=$(printf ~%q "${!1#\~}"); fi } __get_cword_at_cursor_by_ref () { local cword words=(); __reassemble_comp_words_by_ref "$1" words cword; local i cur index=$COMP_POINT lead=${COMP_LINE:0:$COMP_POINT}; if [[ $index -gt 0 && ( -n $lead && -n ${lead//[[:space:]]} ) ]]; then cur=$COMP_LINE; for ((i = 0; i <= cword; ++i )) do while [[ ${#cur} -ge ${#words[i]} && "${cur:0:${#words[i]}}" != "${words[i]}" ]]; do cur="${cur:1}"; [[ $index -gt 0 ]] && ((index--)); done; if [[ $i -lt $cword ]]; then local old_size=${#cur}; cur="${cur#"${words[i]}"}"; local new_size=${#cur}; (( index -= old_size - new_size )); fi; done; [[ -n $cur && ! -n ${cur//[[:space:]]} ]] && cur=; [[ $index -lt 0 ]] && index=0; fi; local "$2" "$3" "$4" && _upvars -a${#words[@]} $2 "${words[@]}" -v $3 "$cword" -v $4 "${cur:0:$index}" } __git_eread () { test -r "$1" && IFS=' ' read "$2" < "$1" } __git_ps1 () { local exit=$?; local pcmode=no; local detached=no; local ps1pc_start='\u@\h:\w '; local ps1pc_end='\$ '; local printf_format=' (%s)'; case "$#" in 2 | 3) pcmode=yes; ps1pc_start="$1"; ps1pc_end="$2"; printf_format="${3:-$printf_format}"; PS1="$ps1pc_start$ps1pc_end" ;; 0 | 1) printf_format="${1:-$printf_format}" ;; *) return $exit ;; esac; local ps1_expanded=yes; [ -z "${ZSH_VERSION-}" ] || [[ -o PROMPT_SUBST ]] || ps1_expanded=no; [ -z "${BASH_VERSION-}" ] || shopt -q promptvars || ps1_expanded=no; local repo_info rev_parse_exit_code; repo_info="$(git rev-parse --git-dir --is-inside-git-dir --is-bare-repository --is-inside-work-tree --short HEAD 2>/dev/null)"; rev_parse_exit_code="$?"; if [ -z "$repo_info" ]; then return $exit; fi; local short_sha=""; if [ "$rev_parse_exit_code" = "0" ]; then short_sha="${repo_info##* }"; repo_info="${repo_info% *}"; fi; local inside_worktree="${repo_info##* }"; repo_info="${repo_info% *}"; local bare_repo="${repo_info##* }"; repo_info="${repo_info% *}"; local inside_gitdir="${repo_info##* }"; local g="${repo_info% *}"; if [ "true" = "$inside_worktree" ] && [ -n "${GIT_PS1_HIDE_IF_PWD_IGNORED-}" ] && [ "$(git config --bool bash.hideIfPwdIgnored)" != "false" ] && git check-ignore -q .; then return $exit; fi; local r=""; local b=""; local step=""; local total=""; if [ -d "$g/rebase-merge" ]; then __git_eread "$g/rebase-merge/head-name" b; __git_eread "$g/rebase-merge/msgnum" step; __git_eread "$g/rebase-merge/end" total; if [ -f "$g/rebase-merge/interactive" ]; then r="|REBASE-i"; else r="|REBASE-m"; fi; else if [ -d "$g/rebase-apply" ]; then __git_eread "$g/rebase-apply/next" step; __git_eread "$g/rebase-apply/last" total; if [ -f "$g/rebase-apply/rebasing" ]; then __git_eread "$g/rebase-apply/head-name" b; r="|REBASE"; else if [ -f "$g/rebase-apply/applying" ]; then r="|AM"; else r="|AM/REBASE"; fi; fi; else if [ -f "$g/MERGE_HEAD" ]; then r="|MERGING"; else if __git_sequencer_status; then :; else if [ -f "$g/BISECT_LOG" ]; then r="|BISECTING"; fi; fi; fi; fi; if [ -n "$b" ]; then :; else if [ -h "$g/HEAD" ]; then b="$(git symbolic-ref HEAD 2>/dev/null)"; else local head=""; if ! __git_eread "$g/HEAD" head; then return $exit; fi; b="${head#ref: }"; if [ "$head" = "$b" ]; then detached=yes; b="$( case "${GIT_PS1_DESCRIBE_STYLE-}" in (contains) git describe --contains HEAD ;; (branch) git describe --contains --all HEAD ;; (tag) git describe --tags HEAD ;; (describe) git describe HEAD ;; (* | default) git describe --tags --exact-match HEAD ;; esac 2>/dev/null)" || b="$short_sha..."; b="($b)"; fi; fi; fi; fi; if [ -n "$step" ] && [ -n "$total" ]; then r="$r $step/$total"; fi; local w=""; local i=""; local s=""; local u=""; local c=""; local p=""; if [ "true" = "$inside_gitdir" ]; then if [ "true" = "$bare_repo" ]; then c="BARE:"; else b="GIT_DIR!"; fi; else if [ "true" = "$inside_worktree" ]; then if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] && [ "$(git config --bool bash.showDirtyState)" != "false" ]; then git diff --no-ext-diff --quiet || w="*"; git diff --no-ext-diff --cached --quiet || i="+"; if [ -z "$short_sha" ] && [ -z "$i" ]; then i="#"; fi; fi; if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] && git rev-parse --verify --quiet refs/stash > /dev/null; then s="$"; fi; if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] && [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] && git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' > /dev/null 2> /dev/null; then u="%${ZSH_VERSION+%}"; fi; if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then __git_ps1_show_upstream; fi; fi; fi; local z="${GIT_PS1_STATESEPARATOR-" "}"; if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then __git_ps1_colorize_gitstring; fi; b=${b##refs/heads/}; if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then __git_ps1_branch_name=$b; b="\${__git_ps1_branch_name}"; fi; local f="$w$i$s$u"; local gitstring="$c$b${f:+$z$f}$r$p"; if [ $pcmode = yes ]; then if [ "${__git_printf_supports_v-}" != yes ]; then gitstring=$(printf -- "$printf_format" "$gitstring"); else printf -v gitstring -- "$printf_format" "$gitstring"; fi; PS1="$ps1pc_start$gitstring$ps1pc_end"; else printf -- "$printf_format" "$gitstring"; fi; return $exit } __git_ps1_colorize_gitstring () { if [[ -n ${ZSH_VERSION-} ]]; then local c_red='%F{red}'; local c_green='%F{green}'; local c_lblue='%F{blue}'; local c_clear='%f'; else local c_red='\[\e[31m\]'; local c_green='\[\e[32m\]'; local c_lblue='\[\e[1;34m\]'; local c_clear='\[\e[0m\]'; fi; local bad_color=$c_red; local ok_color=$c_green; local flags_color="$c_lblue"; local branch_color=""; if [ $detached = no ]; then branch_color="$ok_color"; else branch_color="$bad_color"; fi; c="$branch_color$c"; z="$c_clear$z"; if [ "$w" = "*" ]; then w="$bad_color$w"; fi; if [ -n "$i" ]; then i="$ok_color$i"; fi; if [ -n "$s" ]; then s="$flags_color$s"; fi; if [ -n "$u" ]; then u="$bad_color$u"; fi; r="$c_clear$r" } __git_ps1_show_upstream () { local key value; local svn_remote svn_url_pattern count n; local upstream=git legacy="" verbose="" name=""; svn_remote=(); local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"; while read -r key value; do case "$key" in bash.showupstream) GIT_PS1_SHOWUPSTREAM="$value"; if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then p=""; return; fi ;; svn-remote.*.url) svn_remote[$((${#svn_remote[@]} + 1))]="$value"; svn_url_pattern="$svn_url_pattern\\|$value"; upstream=svn+git ;; esac; done <<< "$output"; for option in ${GIT_PS1_SHOWUPSTREAM}; do case "$option" in git | svn) upstream="$option" ;; verbose) verbose=1 ;; legacy) legacy=1 ;; name) name=1 ;; esac; done; case "$upstream" in git) upstream="@{upstream}" ;; svn*) local -a svn_upstream; svn_upstream=($(git log --first-parent -1 --grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null)); if [[ 0 -ne ${#svn_upstream[@]} ]]; then svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}; svn_upstream=${svn_upstream%@*}; local n_stop="${#svn_remote[@]}"; for ((n=1; n <= n_stop; n++)) do svn_upstream=${svn_upstream#${svn_remote[$n]}}; done; if [[ -z "$svn_upstream" ]]; then upstream=${GIT_SVN_ID:-git-svn}; else upstream=${svn_upstream#/}; fi; else if [[ "svn+git" = "$upstream" ]]; then upstream="@{upstream}"; fi; fi ;; esac; if [[ -z "$legacy" ]]; then count="$(git rev-list --count --left-right "$upstream"...HEAD 2>/dev/null)"; else local commits; if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"; then local commit behind=0 ahead=0; for commit in $commits; do case "$commit" in "<"*) ((behind++)) ;; *) ((ahead++)) ;; esac; done; count="$behind $ahead"; else count=""; fi; fi; if [[ -z "$verbose" ]]; then case "$count" in "") p="" ;; "0 0") p="=" ;; "0 "*) p=">" ;; *" 0") p="<" ;; *) p="<>" ;; esac; else case "$count" in "") p="" ;; "0 0") p=" u=" ;; "0 "*) p=" u+${count#0 }" ;; *" 0") p=" u-${count% 0}" ;; *) p=" u+${count#* }-${count% *}" ;; esac; if [[ -n "$count" && -n "$name" ]]; then __git_ps1_upstream_name=$(git rev-parse --abbrev-ref "$upstream" 2>/dev/null); if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then p="$p \${__git_ps1_upstream_name}"; else p="$p ${__git_ps1_upstream_name}"; unset __git_ps1_upstream_name; fi; fi; fi } __git_sequencer_status () { local todo; if test -f "$g/CHERRY_PICK_HEAD"; then r="|CHERRY-PICKING"; return 0; else if test -f "$g/REVERT_HEAD"; then r="|REVERTING"; return 0; else if __git_eread "$g/sequencer/todo" todo; then case "$todo" in p[\ \ ] | pick[\ \ ]*) r="|CHERRY-PICKING"; return 0 ;; revert[\ \ ]*) r="|REVERTING"; return 0 ;; esac; fi; fi; fi; return 1 } __load_completion () { local -a dirs=(${BASH_COMPLETION_USER_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion}/completions); local OIFS=$IFS IFS=: dir cmd="${1##*/}" compfile; [[ -n $cmd ]] || return 1; for dir in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share}; do dirs+=($dir/bash-completion/completions); done; IFS=$OIFS; if [[ $BASH_SOURCE == */* ]]; then dirs+=("${BASH_SOURCE%/*}/completions"); else dirs+=(./completions); fi; for dir in "${dirs[@]}"; do [[ -d "$dir" ]] || continue; for compfile in "$cmd" "$cmd.bash" "_$cmd"; do compfile="$dir/$compfile"; [[ -f "$compfile" ]] && . "$compfile" &> /dev/null && return 0; done; done; [[ -n "${_xspecs[$cmd]}" ]] && complete -F _filedir_xspec "$cmd" && return 0; return 1 } __ltrim_colon_completions () { if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then local colon_word=${1%"${1##*:}"}; local i=${#COMPREPLY[*]}; while [[ $((--i)) -ge 0 ]]; do COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"}; done; fi } __parse_options () { local option option2 i IFS=' ,/|'; option=; local -a array=($1); for i in "${array[@]}"; do case "$i" in ---*) break ;; --?*) option=$i; break ;; -?*) [[ -n $option ]] || option=$i ;; *) break ;; esac; done; [[ -n $option ]] || return 0; IFS=' '; if [[ $option =~ (\[((no|dont)-?)\]). ]]; then option2=${option/"${BASH_REMATCH[1]}"/}; option2=${option2%%[<{().[]*}; printf '%s\n' "${option2/=*/=}"; option=${option/"${BASH_REMATCH[1]}"/"${BASH_REMATCH[2]}"}; fi; option=${option%%[<{().[]*}; printf '%s\n' "${option/=*/=}" } __reassemble_comp_words_by_ref () { local exclude i j line ref; if [[ -n $1 ]]; then exclude="${1//[^$COMP_WORDBREAKS]}"; fi; printf -v "$3" %s "$COMP_CWORD"; if [[ -n $exclude ]]; then line=$COMP_LINE; for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)) do while [[ $i -gt 0 && ${COMP_WORDS[$i]} == +([$exclude]) ]]; do [[ $line != [[:blank:]]* ]] && (( j >= 2 )) && ((j--)); ref="$2[$j]"; printf -v "$ref" %s "${!ref}${COMP_WORDS[i]}"; [[ $i == $COMP_CWORD ]] && printf -v "$3" %s "$j"; line=${line#*"${COMP_WORDS[$i]}"}; [[ $line == [[:blank:]]* ]] && ((j++)); (( $i < ${#COMP_WORDS[@]} - 1)) && ((i++)) || break 2; done; ref="$2[$j]"; printf -v "$ref" %s "${!ref}${COMP_WORDS[i]}"; line=${line#*"${COMP_WORDS[i]}"}; [[ $i == $COMP_CWORD ]] && printf -v "$3" %s "$j"; done; [[ $i == $COMP_CWORD ]] && printf -v "$3" %s "$j"; else for i in "${!COMP_WORDS[@]}"; do printf -v "$2[i]" %s "${COMP_WORDS[i]}"; done; fi } _allowed_groups () { if _complete_as_root; then local IFS=' '; COMPREPLY=($(compgen -g -- "$1")); else local IFS=' '; COMPREPLY=($(compgen -W "$(id -Gn 2>/dev/null || groups 2>/dev/null)" -- "$1")); fi } _allowed_users () { if _complete_as_root; then local IFS=' '; COMPREPLY=($(compgen -u -- "${1:-$cur}")); else local IFS=' '; COMPREPLY=($(compgen -W "$(id -un 2>/dev/null || whoami 2>/dev/null)" -- "${1:-$cur}")); fi } _apport-bug () { local cur dashoptions prev param; COMPREPLY=(); cur=`_get_cword`; prev=${COMP_WORDS[COMP_CWORD-1]}; dashoptions='-h --help --save -v --version --tag -w --window'; case "$prev" in ubuntu-bug | apport-bug) case "$cur" in -*) COMPREPLY=($( compgen -W "$dashoptions" -- $cur )) ;; *) _apport_parameterless ;; esac ;; --save) COMPREPLY=($( compgen -o default -G "$cur*" )) ;; -w | --window) dashoptions="--save --tag"; COMPREPLY=($( compgen -W "$dashoptions" -- $cur )) ;; -h | --help | -v | --version | --tag) return 0 ;; *) dashoptions="--tag"; if ! [[ "${COMP_WORDS[*]}" =~ .*--save.* ]]; then dashoptions="--save $dashoptions"; fi; if ! [[ "${COMP_WORDS[*]}" =~ .*--window.* || "${COMP_WORDS[*]}" =~ .*\ -w\ .* ]]; then dashoptions="-w --window $dashoptions"; fi; case "$cur" in -*) COMPREPLY=($( compgen -W "$dashoptions" -- $cur )) ;; *) _apport_parameterless ;; esac ;; esac } _apport-cli () { local cur dashoptions prev param; COMPREPLY=(); cur=`_get_cword`; prev=${COMP_WORDS[COMP_CWORD-1]}; dashoptions='-h --help -f --file-bug -u --update-bug -s --symptom \ -c --crash-file --save -v --version --tag -w --window'; case "$prev" in apport-cli) case "$cur" in -*) COMPREPLY=($( compgen -W "$dashoptions" -- $cur )) ;; *) _apport_parameterless ;; esac ;; -f | --file-bug) param="-P --pid -p --package -s --symptom"; COMPREPLY=($( compgen -W "$param $(_apport_symptoms)" -- $cur)) ;; -s | --symptom) COMPREPLY=($( compgen -W "$(_apport_symptoms)" -- $cur)) ;; --save) COMPREPLY=($( compgen -o default -G "$cur*" )) ;; -c | --crash-file) COMPREPLY=($( compgen -G "${cur}*.apport" compgen -G "${cur}*.crash" )) ;; -w | --window) dashoptions="--save --tag"; COMPREPLY=($( compgen -W "$dashoptions" -- $cur )) ;; -h | --help | -v | --version | --tag) return 0 ;; *) dashoptions='--tag'; if ! [[ "${COMP_WORDS[*]}" =~ .*--save.* ]]; then dashoptions="--save $dashoptions"; fi; if ! [[ "${COMP_WORDS[*]}" =~ .*--window.* || "${COMP_WORDS[*]}" =~ .*\ -w\ .* ]]; then dashoptions="-w --window $dashoptions"; fi; if ! [[ "${COMP_WORDS[*]}" =~ .*--symptom.* || "${COMP_WORDS[*]}" =~ .*\ -s\ .* ]]; then dashoptions="-s --symptom $dashoptions"; fi; if ! [[ "${COMP_WORDS[*]}" =~ .*--update.* || "${COMP_WORDS[*]}" =~ .*\ -u\ .* ]]; then dashoptions="-u --update $dashoptions"; fi; if ! [[ "${COMP_WORDS[*]}" =~ .*--file-bug.* || "${COMP_WORDS[*]}" =~ .*\ -f\ .* ]]; then dashoptions="-f --file-bug $dashoptions"; fi; if ! [[ "${COMP_WORDS[*]}" =~ .*--crash-file.* || "${COMP_WORDS[*]}" =~ .*\ -c\ .* ]]; then dashoptions="-c --crash-file $dashoptions"; fi; case "$cur" in -*) COMPREPLY=($( compgen -W "$dashoptions" -- $cur )) ;; *) _apport_parameterless ;; esac ;; esac } _apport-collect () { local cur prev; COMPREPLY=(); cur=`_get_cword`; prev=${COMP_WORDS[COMP_CWORD-1]}; case "$prev" in apport-collect) COMPREPLY=($( compgen -W "-p --package --tag" -- $cur)) ;; -p | --package) COMPREPLY=($( apt-cache pkgnames $cur 2> /dev/null )) ;; --tag) return 0 ;; *) if [[ "${COMP_WORDS[*]}" =~ .*\ -p.* || "${COMP_WORDS[*]}" =~ .*--package.* ]]; then COMPREPLY=($( compgen -W "--tag" -- $cur)); else COMPREPLY=($( compgen -W "-p --package --tag" -- $cur)); fi ;; esac } _apport-unpack () { local cur prev; COMPREPLY=(); cur=`_get_cword`; prev=${COMP_WORDS[COMP_CWORD-1]}; case "$prev" in apport-unpack) COMPREPLY=($( compgen -G "${cur}*.apport" compgen -G "${cur}*.crash" )) ;; esac } _apport_parameterless () { local param; param="$dashoptions $( apt-cache pkgnames $cur 2> /dev/null ) $( command ps axo pid | sed 1d ) $( _apport_symptoms ) $( compgen -G "${cur}*" )"; COMPREPLY=($( compgen -W "$param" -- $cur)) } _apport_symptoms () { local syms; if [ -r /usr/share/apport/symptoms ]; then for FILE in $(ls /usr/share/apport/symptoms); do if [[ ! "$FILE" =~ ^_.* && -n $(egrep "^def run\s*\(.*\):" /usr/share/apport/symptoms/$FILE) ]]; then syms="$syms ${FILE%.py}"; fi; done; fi; echo $syms } _available_interfaces () { local PATH=$PATH:/sbin; COMPREPLY=($({ if [[ ${1:-} == -w ]]; then iwconfig elif [[ ${1:-} == -a ]]; then ifconfig || ip link show up else ifconfig -a || ip link show fi } 2>/dev/null | awk '/^[^ \t]/ { if ($1 ~ /^[0-9]+:/) { print $2 } else { print $1 } }')); COMPREPLY=($(compgen -W '${COMPREPLY[@]/%[[:punct:]]/}' -- "$cur")) } _cd () { local cur prev words cword; _init_completion || return; local IFS=' ' i j k; compopt -o filenames; if [[ -z "${CDPATH:-}" || "$cur" == ?(.)?(.)/* ]]; then _filedir -d; return; fi; local -r mark_dirs=$(_rl_enabled mark-directories && echo y); local -r mark_symdirs=$(_rl_enabled mark-symlinked-directories && echo y); for i in ${CDPATH//:/' '}; do k="${#COMPREPLY[@]}"; for j in $(compgen -d -- $i/$cur); do if [[ ( -n $mark_symdirs && -h $j || -n $mark_dirs && ! -h $j ) && ! -d ${j#$i/} ]]; then j+="/"; fi; COMPREPLY[k++]=${j#$i/}; done; done; _filedir -d; if [[ ${#COMPREPLY[@]} -eq 1 ]]; then i=${COMPREPLY[0]}; if [[ "$i" == "$cur" && $i != "*/" ]]; then COMPREPLY[0]="${i}/"; fi; fi; return } _cd_devices () { COMPREPLY+=($(compgen -f -d -X "!*/?([amrs])cd*" -- "${cur:-/dev/}")) } _command () { local offset i; offset=1; for ((i=1; i <= COMP_CWORD; i++ )) do if [[ "${COMP_WORDS[i]}" != -* ]]; then offset=$i; break; fi; done; _command_offset $offset } _command_offset () { local word_offset=$1 i j; for ((i=0; i < $word_offset; i++ )) do for ((j=0; j <= ${#COMP_LINE}; j++ )) do [[ "$COMP_LINE" == "${COMP_WORDS[i]}"* ]] && break; COMP_LINE=${COMP_LINE:1}; ((COMP_POINT--)); done; COMP_LINE=${COMP_LINE#"${COMP_WORDS[i]}"}; ((COMP_POINT-=${#COMP_WORDS[i]})); done; for ((i=0; i <= COMP_CWORD - $word_offset; i++ )) do COMP_WORDS[i]=${COMP_WORDS[i+$word_offset]}; done; for ((i; i <= COMP_CWORD; i++ )) do unset 'COMP_WORDS[i]'; done; ((COMP_CWORD -= $word_offset)); COMPREPLY=(); local cur; _get_comp_words_by_ref cur; if [[ $COMP_CWORD -eq 0 ]]; then local IFS=' '; compopt -o filenames; COMPREPLY=($(compgen -d -c -- "$cur")); else local cmd=${COMP_WORDS[0]} compcmd=${COMP_WORDS[0]}; local cspec=$(complete -p $cmd 2>/dev/null); if [[ ! -n $cspec && $cmd == */* ]]; then cspec=$(complete -p ${cmd##*/} 2>/dev/null); [[ -n $cspec ]] && compcmd=${cmd##*/}; fi; if [[ ! -n $cspec ]]; then compcmd=${cmd##*/}; _completion_loader $compcmd; cspec=$(complete -p $compcmd 2>/dev/null); fi; if [[ -n $cspec ]]; then if [[ ${cspec#* -F } != $cspec ]]; then local func=${cspec#*-F }; func=${func%% *}; if [[ ${#COMP_WORDS[@]} -ge 2 ]]; then $func $cmd "${COMP_WORDS[${#COMP_WORDS[@]}-1]}" "${COMP_WORDS[${#COMP_WORDS[@]}-2]}"; else $func $cmd "${COMP_WORDS[${#COMP_WORDS[@]}-1]}"; fi; local opt; while [[ $cspec == *" -o "* ]]; do cspec=${cspec#*-o }; opt=${cspec%% *}; compopt -o $opt; cspec=${cspec#$opt}; done; else cspec=${cspec#complete}; cspec=${cspec%%$compcmd}; COMPREPLY=($(eval compgen "$cspec" -- '$cur')); fi; else if [[ ${#COMPREPLY[@]} -eq 0 ]]; then _minimal; fi; fi; fi } _complete_as_root () { [[ $EUID -eq 0 || -n ${root_command:-} ]] } _completion_loader () { local cmd="${1:-_EmptycmD_}"; __load_completion "$cmd" && return 124; complete -F _minimal -- "$cmd" && return 124 } _configured_interfaces () { if [[ -f /etc/debian_version ]]; then COMPREPLY=($(compgen -W "$(command sed -ne 's|^iface \([^ ]\{1,\}\).*$|\1|p' /etc/network/interfaces /etc/network/interfaces.d/* 2>/dev/null)" -- "$cur")); else if [[ -f /etc/SuSE-release ]]; then COMPREPLY=($(compgen -W "$(printf '%s\n' /etc/sysconfig/network/ifcfg-* | command sed -ne 's|.*ifcfg-\([^*].*\)$|\1|p')" -- "$cur")); else if [[ -f /etc/pld-release ]]; then COMPREPLY=($(compgen -W "$(command ls -B /etc/sysconfig/interfaces | command sed -ne 's|.*ifcfg-\([^*].*\)$|\1|p')" -- "$cur")); else COMPREPLY=($(compgen -W "$(printf '%s\n' /etc/sysconfig/network-scripts/ifcfg-* | command sed -ne 's|.*ifcfg-\([^*].*\)$|\1|p')" -- "$cur")); fi; fi; fi } _count_args () { local i cword words; __reassemble_comp_words_by_ref "$1" words cword; args=1; for ((i=1; i < cword; i++ )) do if [[ ${words[i]} != -* && ${words[i-1]} != $2 || ${words[i]} == $3 ]]; then (( args++ )); fi; done } _dvd_devices () { COMPREPLY+=($(compgen -f -d -X "!*/?(r)dvd*" -- "${cur:-/dev/}")) } _expand () { if [[ "$cur" == \~*/* ]]; then __expand_tilde_by_ref cur; else if [[ "$cur" == \~* ]]; then _tilde "$cur" || eval COMPREPLY[0]=$(printf ~%q "${COMPREPLY[0]#\~}"); return ${#COMPREPLY[@]}; fi; fi } _filedir () { local IFS=' '; _tilde "$cur" || return; local -a toks; local reset; if [[ "$1" == -d ]]; then reset=$(shopt -po noglob); set -o noglob; toks=($(compgen -d -- "$cur")); IFS=' '; $reset; IFS=' '; else local quoted; _quote_readline_by_ref "$cur" quoted; local xspec=${1:+"!*.@($1|${1^^})"} plusdirs=(); local opts=(-f -X "$xspec"); [[ -n $xspec ]] && plusdirs=(-o plusdirs); [[ -n ${COMP_FILEDIR_FALLBACK-} ]] || opts+=("${plusdirs[@]}"); reset=$(shopt -po noglob); set -o noglob; toks+=($(compgen "${opts[@]}" -- $quoted)); IFS=' '; $reset; IFS=' '; [[ -n ${COMP_FILEDIR_FALLBACK:-} && -n "$1" && ${#toks[@]} -lt 1 ]] && { reset=$(shopt -po noglob); set -o noglob; toks+=($(compgen -f "${plusdirs[@]}" -- $quoted)); IFS=' '; $reset; IFS=' ' }; fi; if [[ ${#toks[@]} -ne 0 ]]; then compopt -o filenames 2> /dev/null; COMPREPLY+=("${toks[@]}"); fi } _filedir_xspec () { local cur prev words cword; _init_completion || return; _tilde "$cur" || return; local IFS=' ' xspec=${_xspecs[${1##*/}]} tmp; local -a toks; toks=($( compgen -d -- "$(quote_readline "$cur")" | { while read -r tmp; do printf '%s\n' $tmp done } )); eval xspec="${xspec}"; local matchop=!; if [[ $xspec == !* ]]; then xspec=${xspec#!}; matchop=@; fi; xspec="$matchop($xspec|${xspec^^})"; toks+=($( eval compgen -f -X "'!$xspec'" -- "\$(quote_readline "\$cur")" | { while read -r tmp; do [[ -n $tmp ]] && printf '%s\n' $tmp done } )); [[ -n ${COMP_FILEDIR_FALLBACK:-} && ${#toks[@]} -lt 1 ]] && { local reset=$(shopt -po noglob); set -o noglob; toks+=($(compgen -f -- "$(quote_readline "$cur")")); IFS=' '; $reset; IFS=' ' }; if [[ ${#toks[@]} -ne 0 ]]; then compopt -o filenames; COMPREPLY=("${toks[@]}"); fi } _fstypes () { local fss; if [[ -e /proc/filesystems ]]; then fss="$(cut -d' ' -f2 /proc/filesystems) $(awk '! /\*/ { print $NF }' /etc/filesystems 2>/dev/null)"; else fss="$(awk '/^[ \t]*[^#]/ { print $3 }' /etc/fstab 2>/dev/null) $(awk '/^[ \t]*[^#]/ { print $3 }' /etc/mnttab 2>/dev/null) $(awk '/^[ \t]*[^#]/ { print $4 }' /etc/vfstab 2>/dev/null) $(awk '{ print $1 }' /etc/dfs/fstypes 2>/dev/null) $([[ -d /etc/fs ]] && command ls /etc/fs)"; fi; [[ -n $fss ]] && COMPREPLY+=($(compgen -W "$fss" -- "$cur")) } _get_comp_words_by_ref () { local exclude flag i OPTIND=1; local cur cword words=(); local upargs=() upvars=() vcur vcword vprev vwords; while getopts "c:i:n:p:w:" flag "$@"; do case $flag in c) vcur=$OPTARG ;; i) vcword=$OPTARG ;; n) exclude=$OPTARG ;; p) vprev=$OPTARG ;; w) vwords=$OPTARG ;; esac; done; while [[ $# -ge $OPTIND ]]; do case ${!OPTIND} in cur) vcur=cur ;; prev) vprev=prev ;; cword) vcword=cword ;; words) vwords=words ;; *) echo "bash_completion: $FUNCNAME: \`${!OPTIND}':" "unknown argument" 1>&2; return 1 ;; esac; (( OPTIND += 1 )); done; __get_cword_at_cursor_by_ref "$exclude" words cword cur; [[ -n $vcur ]] && { upvars+=("$vcur"); upargs+=(-v $vcur "$cur") }; [[ -n $vcword ]] && { upvars+=("$vcword"); upargs+=(-v $vcword "$cword") }; [[ -n $vprev && $cword -ge 1 ]] && { upvars+=("$vprev"); upargs+=(-v $vprev "${words[cword - 1]}") }; [[ -n $vwords ]] && { upvars+=("$vwords"); upargs+=(-a${#words[@]} $vwords "${words[@]}") }; (( ${#upvars[@]} )) && local "${upvars[@]}" && _upvars "${upargs[@]}" } _get_cword () { local LC_CTYPE=C; local cword words; __reassemble_comp_words_by_ref "$1" words cword; if [[ -n ${2//[^0-9]/} ]]; then printf "%s" "${words[cword-$2]}"; else if [[ "${#words[cword]}" -eq 0 || "$COMP_POINT" == "${#COMP_LINE}" ]]; then printf "%s" "${words[cword]}"; else local i; local cur="$COMP_LINE"; local index="$COMP_POINT"; for ((i = 0; i <= cword; ++i )) do while [[ "${#cur}" -ge ${#words[i]} && "${cur:0:${#words[i]}}" != "${words[i]}" ]]; do cur="${cur:1}"; [[ $index -gt 0 ]] && ((index--)); done; if [[ "$i" -lt "$cword" ]]; then local old_size="${#cur}"; cur="${cur#${words[i]}}"; local new_size="${#cur}"; (( index -= old_size - new_size )); fi; done; if [[ "${words[cword]:0:${#cur}}" != "$cur" ]]; then printf "%s" "${words[cword]}"; else printf "%s" "${cur:0:$index}"; fi; fi; fi } _get_first_arg () { local i; arg=; for ((i=1; i < COMP_CWORD; i++ )) do if [[ "${COMP_WORDS[i]}" != -* ]]; then arg=${COMP_WORDS[i]}; break; fi; done } _get_pword () { if [[ $COMP_CWORD -ge 1 ]]; then _get_cword "${@:-}" 1; fi } _gids () { if type getent &> /dev/null; then COMPREPLY=($(compgen -W '$(getent group | cut -d: -f3)' -- "$cur")); else if type perl &> /dev/null; then COMPREPLY=($(compgen -W '$(perl -e '"'"'while (($gid) = (getgrent)[2]) { print $gid . "\n" }'"'"')' -- "$cur")); else COMPREPLY=($(compgen -W '$(cut -d: -f3 /etc/group)' -- "$cur")); fi; fi } _have () { PATH=$PATH:/usr/sbin:/sbin:/usr/local/sbin type $1 &> /dev/null } _included_ssh_config_files () { [[ $# -lt 1 ]] && echo "bash_completion: $FUNCNAME: missing mandatory argument CONFIG" 1>&2; local configfile i f; configfile=$1; local included=($(command sed -ne 's/^[[:blank:]]*[Ii][Nn][Cc][Ll][Uu][Dd][Ee][[:blank:]]\{1,\}\([^#%]*\)\(#.*\)\{0,1\}$/\1/p' "${configfile}")); for i in "${included[@]}"; do if ! [[ "$i" =~ ^\~.*|^\/.* ]]; then if [[ "$configfile" =~ ^\/etc\/ssh.* ]]; then i="/etc/ssh/$i"; else i="$HOME/.ssh/$i"; fi; fi; __expand_tilde_by_ref i; for f in ${i}; do if [ -r $f ]; then config+=("$f"); _included_ssh_config_files $f; fi; done; done } _init_completion () { local exclude="" flag outx errx inx OPTIND=1; while getopts "n:e:o:i:s" flag "$@"; do case $flag in n) exclude+=$OPTARG ;; e) errx=$OPTARG ;; o) outx=$OPTARG ;; i) inx=$OPTARG ;; s) split=false; exclude+== ;; esac; done; COMPREPLY=(); local redir="@(?([0-9])<|?([0-9&])>?(>)|>&)"; _get_comp_words_by_ref -n "$exclude<>&" cur prev words cword; _variables && return 1; if [[ $cur == $redir* || $prev == $redir ]]; then local xspec; case $cur in 2'>'*) xspec=$errx ;; *'>'*) xspec=$outx ;; *'<'*) xspec=$inx ;; *) case $prev in 2'>'*) xspec=$errx ;; *'>'*) xspec=$outx ;; *'<'*) xspec=$inx ;; esac ;; esac; cur="${cur##$redir}"; _filedir $xspec; return 1; fi; local i skip; for ((i=1; i < ${#words[@]}; 1)) do if [[ ${words[i]} == $redir* ]]; then [[ ${words[i]} == $redir ]] && skip=2 || skip=1; words=("${words[@]:0:i}" "${words[@]:i+skip}"); [[ $i -le $cword ]] && (( cword -= skip )); else (( i++ )); fi; done; [[ $cword -le 0 ]] && return 1; prev=${words[cword-1]}; [[ -n ${split-} ]] && _split_longopt && split=true; return 0 } _installed_modules () { COMPREPLY=($(compgen -W "$(PATH="$PATH:/sbin" lsmod | awk '{if (NR != 1) print $1}')" -- "$1")) } _ip_addresses () { local n; case $1 in -a) n='6\?' ;; -6) n='6' ;; esac; local PATH=$PATH:/sbin; local addrs=$({ LC_ALL=C ifconfig -a || ip addr show; } 2>/dev/null | command sed -e 's/[[:space:]]addr:/ /' -ne "s|.*inet${n}[[:space:]]\{1,\}\([^[:space:]/]*\).*|\1|p"); COMPREPLY+=($(compgen -W "$addrs" -- "$cur")) } _kernel_versions () { COMPREPLY=($(compgen -W '$(command ls /lib/modules)' -- "$cur")) } _known_hosts () { local cur prev words cword; _init_completion -n : || return; local options; [[ "$1" == -a || "$2" == -a ]] && options=-a; [[ "$1" == -c || "$2" == -c ]] && options+=" -c"; _known_hosts_real $options -- "$cur" } _known_hosts_real () { local configfile flag prefix OIFS=$IFS; local cur user suffix aliases i host ipv4 ipv6; local -a kh tmpkh khd config; local OPTIND=1; while getopts "ac46F:p:" flag "$@"; do case $flag in a) aliases='yes' ;; c) suffix=':' ;; F) configfile=$OPTARG ;; p) prefix=$OPTARG ;; 4) ipv4=1 ;; 6) ipv6=1 ;; esac; done; [[ $# -lt $OPTIND ]] && echo "bash_completion: $FUNCNAME: missing mandatory argument CWORD" 1>&2; cur=${!OPTIND}; (( OPTIND += 1 )); [[ $# -ge $OPTIND ]] && echo "bash_completion: $FUNCNAME($*): unprocessed arguments:" $(while [[ $# -ge $OPTIND ]]; do printf '%s\n' ${!OPTIND}; shift; done) 1>&2; [[ $cur == *@* ]] && user=${cur%@*}@ && cur=${cur#*@}; kh=(); if [[ -n $configfile ]]; then [[ -r $configfile ]] && config+=("$configfile"); else for i in /etc/ssh/ssh_config ~/.ssh/config ~/.ssh2/config; do [[ -r $i ]] && config+=("$i"); done; fi; for i in "${config[@]}"; do _included_ssh_config_files "$i"; done; if [[ ${#config[@]} -gt 0 ]]; then local IFS=' ' j; tmpkh=($(awk 'sub("^[ \t]*([Gg][Ll][Oo][Bb][Aa][Ll]|[Uu][Ss][Ee][Rr])[Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee][ \t]+", "") { print $0 }' "${config[@]}" | sort -u)); IFS=$OIFS; for i in "${tmpkh[@]}"; do while [[ $i =~ ^([^\"]*)\"([^\"]*)\"(.*)$ ]]; do i=${BASH_REMATCH[1]}${BASH_REMATCH[3]}; j=${BASH_REMATCH[2]}; __expand_tilde_by_ref j; [[ -r $j ]] && kh+=("$j"); done; for j in $i; do __expand_tilde_by_ref j; [[ -r $j ]] && kh+=("$j"); done; done; fi; if [[ -z $configfile ]]; then for i in /etc/ssh/ssh_known_hosts /etc/ssh/ssh_known_hosts2 /etc/known_hosts /etc/known_hosts2 ~/.ssh/known_hosts ~/.ssh/known_hosts2; do [[ -r $i ]] && kh+=("$i"); done; for i in /etc/ssh2/knownhosts ~/.ssh2/hostkeys; do [[ -d $i ]] && khd+=("$i"/*pub); done; fi; if [[ ${#kh[@]} -gt 0 || ${#khd[@]} -gt 0 ]]; then if [[ ${#kh[@]} -gt 0 ]]; then for i in "${kh[@]}"; do while read -ra tmpkh; do set -- "${tmpkh[@]}"; [[ $1 == [\|\#]* ]] && continue; [[ $1 == @* ]] && shift; local IFS=,; for host in $1; do [[ $host == *[*?]* ]] && continue; host="${host#[}"; host="${host%]?(:+([0-9]))}"; COMPREPLY+=($host); done; IFS=$OIFS; done < "$i"; done; COMPREPLY=($(compgen -W '${COMPREPLY[@]}' -- "$cur")); fi; if [[ ${#khd[@]} -gt 0 ]]; then for i in "${khd[@]}"; do if [[ "$i" == *key_22_$cur*.pub && -r "$i" ]]; then host=${i/#*key_22_/}; host=${host/%.pub/}; COMPREPLY+=($host); fi; done; fi; for ((i=0; i < ${#COMPREPLY[@]}; i++ )) do COMPREPLY[i]=$prefix$user${COMPREPLY[i]}$suffix; done; fi; if [[ ${#config[@]} -gt 0 && -n "$aliases" ]]; then local hosts=$(command sed -ne 's/^[[:blank:]]*[Hh][Oo][Ss][Tt][[:blank:]]\{1,\}\([^#*?%]*\)\(#.*\)\{0,1\}$/\1/p' "${config[@]}"); COMPREPLY+=($(compgen -P "$prefix$user" -S "$suffix" -W "$hosts" -- "$cur")); fi; if [[ -n ${COMP_KNOWN_HOSTS_WITH_AVAHI:-} ]] && type avahi-browse &> /dev/null; then COMPREPLY+=($(compgen -P "$prefix$user" -S "$suffix" -W "$(avahi-browse -cpr _workstation._tcp 2>/dev/null | awk -F';' '/^=/ { print $7 }' | sort -u)" -- "$cur")); fi; COMPREPLY+=($(compgen -W "$(ruptime 2>/dev/null | awk '!/^ruptime:/ { print $1 }')" -- "$cur")); if [[ -n ${COMP_KNOWN_HOSTS_WITH_HOSTFILE-1} ]]; then COMPREPLY+=($(compgen -A hostname -P "$prefix$user" -S "$suffix" -- "$cur")); fi; if [[ -n $ipv4 ]]; then COMPREPLY=("${COMPREPLY[@]/*:*$suffix/}"); fi; if [[ -n $ipv6 ]]; then COMPREPLY=("${COMPREPLY[@]/+([0-9]).+([0-9]).+([0-9]).+([0-9])$suffix/}"); fi; if [[ -n $ipv4 || -n $ipv6 ]]; then for i in "${!COMPREPLY[@]}"; do [[ -n ${COMPREPLY[i]} ]] || unset -v COMPREPLY[i]; done; fi; __ltrim_colon_completions "$prefix$user$cur" } _longopt () { local cur prev words cword split; _init_completion -s || return; case "${prev,,}" in --help | --usage | --version) return ;; --!(no-*)dir*) _filedir -d; return ;; --!(no-*)@(file|path)*) _filedir; return ;; --+([-a-z0-9_])) local argtype=$(LC_ALL=C $1 --help 2>&1 | command sed -ne "s|.*$prev\[\{0,1\}=[<[]\{0,1\}\([-A-Za-z0-9_]\{1,\}\).*|\1|p"); case ${argtype,,} in *dir*) _filedir -d; return ;; *file* | *path*) _filedir; return ;; esac ;; esac; $split && return; if [[ "$cur" == -* ]]; then COMPREPLY=($(compgen -W "$(LC_ALL=C $1 --help 2>&1 | while read -r line; do [[ $line =~ --[-A-Za-z0-9]+=? ]] && printf '%s\n' ${BASH_REMATCH[0]} done)" -- "$cur")); [[ $COMPREPLY == *= ]] && compopt -o nospace; else if [[ "$1" == *@(rmdir|chroot) ]]; then _filedir -d; else [[ "$1" == *mkdir ]] && compopt -o nospace; _filedir; fi; fi } _mac_addresses () { local re='\([A-Fa-f0-9]\{2\}:\)\{5\}[A-Fa-f0-9]\{2\}'; local PATH="$PATH:/sbin:/usr/sbin"; COMPREPLY+=($( { LC_ALL=C ifconfig -a || ip link show; } 2>/dev/null | command sed -ne "s/.*[[:space:]]HWaddr[[:space:]]\{1,\}\($re\)[[:space:]].*/\1/p" -ne "s/.*[[:space:]]HWaddr[[:space:]]\{1,\}\($re\)[[:space:]]*$/\1/p" -ne "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]].*|\2|p" -ne "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]]*$|\2|p" )); COMPREPLY+=($({ arp -an || ip neigh show; } 2>/dev/null | command sed -ne "s/.*[[:space:]]\($re\)[[:space:]].*/\1/p" -ne "s/.*[[:space:]]\($re\)[[:space:]]*$/\1/p")); COMPREPLY+=($(command sed -ne "s/^[[:space:]]*\($re\)[[:space:]].*/\1/p" /etc/ethers 2>/dev/null)); COMPREPLY=($(compgen -W '${COMPREPLY[@]}' -- "$cur")); __ltrim_colon_completions "$cur" } _minimal () { local cur prev words cword split; _init_completion -s || return; $split && return; _filedir } _modules () { local modpath; modpath=/lib/modules/$1; COMPREPLY=($(compgen -W "$(command ls -RL $modpath 2>/dev/null | command sed -ne 's/^\(.*\)\.k\{0,1\}o\(\.[gx]z\)\{0,1\}$/\1/p')" -- "$cur")) } _ncpus () { local var=NPROCESSORS_ONLN; [[ $OSTYPE == *linux* ]] && var=_$var; local n=$(getconf $var 2>/dev/null); printf %s ${n:-1} } _parse_help () { eval local cmd=$(quote "$1"); local line; { case $cmd in -) cat ;; *) LC_ALL=C "$(dequote "$cmd")" ${2:---help} 2>&1 ;; esac } | while read -r line; do [[ $line == *([[:blank:]])-* ]] || continue; while [[ $line =~ ((^|[^-])-[A-Za-z0-9?][[:space:]]+)\[?[A-Z0-9]+([,_-]+[A-Z0-9]+)?(\.\.+)?\]? ]]; do line=${line/"${BASH_REMATCH[0]}"/"${BASH_REMATCH[1]}"}; done; __parse_options "${line// or /, }"; done } _parse_usage () { eval local cmd=$(quote "$1"); local line match option i char; { case $cmd in -) cat ;; *) LC_ALL=C "$(dequote "$cmd")" ${2:---usage} 2>&1 ;; esac } | while read -r line; do while [[ $line =~ \[[[:space:]]*(-[^]]+)[[:space:]]*\] ]]; do match=${BASH_REMATCH[0]}; option=${BASH_REMATCH[1]}; case $option in -?(\[)+([a-zA-Z0-9?])) for ((i=1; i < ${#option}; i++ )) do char=${option:i:1}; [[ $char != '[' ]] && printf '%s\n' -$char; done ;; *) __parse_options "$option" ;; esac; line=${line#*"$match"}; done; done } _pci_ids () { COMPREPLY+=($(compgen -W "$(PATH="$PATH:/sbin" lspci -n | awk '{print $3}')" -- "$cur")) } _pgids () { COMPREPLY=($(compgen -W '$(command ps axo pgid=)' -- "$cur")) } _pids () { COMPREPLY=($(compgen -W '$(command ps axo pid=)' -- "$cur")) } _pnames () { local -a procs; if [[ "$1" == -s ]]; then procs=($(command ps axo comm | command sed -e 1d)); else local line i=-1 OIFS=$IFS; IFS=' '; local -a psout=($(command ps axo command=)); IFS=$OIFS; for line in "${psout[@]}"; do if [[ $i -eq -1 ]]; then if [[ $line =~ ^(.*[[:space:]])COMMAND([[:space:]]|$) ]]; then i=${#BASH_REMATCH[1]}; else break; fi; else line=${line:$i}; line=${line%% *}; procs+=($line); fi; done; if [[ $i -eq -1 ]]; then for line in "${psout[@]}"; do if [[ $line =~ ^[[(](.+)[])]$ ]]; then procs+=(${BASH_REMATCH[1]}); else line=${line%% *}; line=${line##@(*/|-)}; procs+=($line); fi; done; fi; fi; COMPREPLY=($(compgen -X "<defunct>" -W '${procs[@]}' -- "$cur" )) } _quote_readline_by_ref () { if [ -z "$1" ]; then printf -v $2 %s "$1"; else if [[ $1 == \'* ]]; then printf -v $2 %s "${1:1}"; else if [[ $1 == \~* ]]; then printf -v $2 \~%q "${1:1}"; else printf -v $2 %q "$1"; fi; fi; fi; [[ ${!2} == \$* ]] && eval $2=${!2} } _realcommand () { type -P "$1" > /dev/null && { if type -p realpath > /dev/null; then realpath "$(type -P "$1")"; else if type -p greadlink > /dev/null; then greadlink -f "$(type -P "$1")"; else if type -p readlink > /dev/null; then readlink -f "$(type -P "$1")"; else type -P "$1"; fi; fi; fi } } _rl_enabled () { [[ "$(bind -v)" == *$1+([[:space:]])on* ]] } _root_command () { local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin; local root_command=$1; _command } _service () { local cur prev words cword; _init_completion || return; [[ $cword -gt 2 ]] && return; if [[ $cword -eq 1 && $prev == ?(*/)service ]]; then _services; [[ -e /etc/mandrake-release ]] && _xinetd_services; else local sysvdirs; _sysvdirs; COMPREPLY=($(compgen -W '`command sed -e "y/…
Code Coverage Summary
Diff against main
Results for commit: edc72d2 Minimum allowed coverage is ♻️ This comment has been updated with latest results |
gogonzo
approved these changes
Jan 25, 2023
donyunardi
added a commit
that referenced
this pull request
Jan 30, 2023
Related with #122 `expect_no_error` is being used in our unit test and this is a new function from testthat 3.1.5 Therefore, I'm updating the version dependency in DESCRIPTION
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
sister to this PR
Adds class definition for
Queue
andReactiveQueue
as well as unit tests.