@ 260802.2

200426.1 · 36c995dad7a8bd843a3e6d5fdfc8c1deffe770ee

initial commit

This brings over mostly everything from my old $HOME-only repository. I remove some unused scripts. This commit does not include work-related stuff, which will be encrypted and added in a subsequent commit.

This also does not include my SSH configuration. There's nothing particularly sensitive in it, but it seems prudent to encrypt that too.

reading declarations

Changes to .zsh-complete/_cargo. All files

.zsh-complete/_cargo

new file mode 100644@@ -0,0 +1,502 @@+#compdef cargo++# Source: https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/cargo/_cargo++typeset -A opt_args+autoload -U regexp-replace++_cargo() {++_arguments \+    '(- 1 *)'{-h,--help}'[show help message]' \+    '(- 1 *)'{-V,--version}'[show version information]' \+    '(- 1 *)'--list'[list installed commands]' \+    '(- 1 *)'--explain'[Run `rustc --explain CODE`]' \+    '(- 1 *)'{-v,--verbose}'[use verbose output]' \+    '(- 1 *)'--color'[colorization option]' \+    '(- 1 *)'--frozen'[Require Cargo.lock and cache are up to date]' \+    '(- 1 *)'--locked'[Require Cargo.lock is up to date]' \+    '1: :_cargo_cmds' \+    '*:: :->args'++case $state in+    args)+        case $words[1] in+            bench)+                _arguments \+                    '--features=[space separated feature list]' \+                    '--all-features[enable all available features]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \+                    "${command_scope_spec[@]}" \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '--no-default-features[do not build the default features]' \+                    '--no-run[compile but do not run]' \+                    '(-p,--package)'{-p=,--package=}'[package to run benchmarks for]:packages:_get_package_names' \+                    '--target=[target triple]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            build)+                _arguments \+                    '--features=[space separated feature list]' \+                    '--all-features[enable all available features]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \+                    "${command_scope_spec[@]}" \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '--no-default-features[do not build the default features]' \+                    '(-p,--package)'{-p=,--package=}'[package to build]:packages:_get_package_names' \+                    '--release=[build in release mode]' \+                    '--target=[target triple]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            clean)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '(-p,--package)'{-p=,--package=}'[package to clean]:packages:_get_package_names' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--release[whether or not to clean release artifacts]' \+                    '--target=[target triple(default:all)]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            doc)+                _arguments \+                    '--features=[space separated feature list]' \+                    '--all-features[enable all available features]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '--no-deps[do not build docs for dependencies]' \+                    '--no-default-features[do not build the default features]' \+                    '--open[open docs in browser after the build]' \+                    '(-p, --package)'{-p,--package}'=[package to document]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--release[build artifacts in release mode, with optimizations]' \+                    '--target=[build for the target triple]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            fetch)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            generate-lockfile)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            git-checkout)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    'q(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--reference=[REF]' \+                    '--url=[URL]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            help)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '*: :_cargo_cmds' \+                    ;;++            init)+                _arguments \+                    '--bin[use binary template]' \+                    '--vcs:initialize a new repo with a given VCS:(git hg none)' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--name=[set the resulting package name]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            install)+                _arguments \+                    '--bin=[only install the specified binary]' \+                    '--branch=[branch to use when installing from git]' \+                    '--color=:colorization option:(auto always never)' \+                    '--debug[build in debug mode instead of release mode]' \+                    '--example[install the specified example instead of binaries]' \+                    '--features=[space separated feature list]' \+                    '--all-features[enable all available features]' \+                    '--git=[URL from which to install the crate]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \+                    '--no-default-features[do not build the default features]' \+                    '--path=[local filesystem path to crate to install]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--rev=[specific commit to use when installing from git]' \+                    '--root=[directory to install packages into]' \+                    '--tag=[tag to use when installing from git]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--vers=[version to install from crates.io]' \+                    ;;++            locate-project)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    ;;++            login)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--host=[Host to set the token for]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            metadata)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    "--no-deps[output information only about the root package and don't fetch dependencies]" \+                    '--no-default-features[do not include the default feature]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '--features=[space separated feature list]' \+                    '--all-features[enable all available features]' \+                    '--format-version=[format version(default: 1)]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            new)+                _arguments \+                    '--bin[use binary template]' \+                    '--vcs:initialize a new repo with a given VCS:(git hg none)' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--name=[set the resulting package name]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            owner)+                _arguments \+                    '(-a, --add)'{-a,--add}'[add owner LOGIN]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--index[registry index]' \+                    '(-l, --list)'{-l,--list}'[list owners of a crate]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-r, --remove)'{-r,--remove}'[remove owner LOGIN]' \+                    '--token[API token to use when authenticating]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            package)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-l, --list)'{-l,--list}'[print files included in a package without making one]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '--no-metadata[ignore warnings about a lack of human-usable metadata]' \+                    '--no-verify[do not build to verify contents]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            pkgid)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            publish)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--host=[Host to set the token for]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '--no-verify[Do not verify tarball until before publish]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--token[token to use when uploading]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            read-manifest)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            run)+                _arguments \+                    '--example=[name of the bin target]' \+                    '--features=[space separated feature list]' \+                    '--all-features[enable all available features]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '--bin=[name of the bin target]' \+                    '--no-default-features[do not build the default features]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--release=[build in release mode]' \+                    '--target=[target triple]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    '*: :_normal' \+                    ;;++            rustc)+                _arguments \+                    '--color=:colorization option:(auto always never)' \+                    '--features=[features to compile for the package]' \+                    '--all-features[enable all available features]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-j, --jobs)'{-j,--jobs}'=[number of parallel jobs, defaults to # of CPUs]' \+                    '--manifest-path=[path to the manifest to fetch dependencies for]' \+                    '--no-default-features[do not compile default features for the package]' \+                    '(-p, --package)'{-p,--package}'=[profile to compile for]' \+                    '--profile=[profile to build the selected target for]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--release[build artifacts in release mode, with optimizations]' \+                    '--target=[target triple which compiles will be for]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    "${command_scope_spec[@]}" \+                    ;;++            rustdoc)+                _arguments \+                    '--color=:colorization option:(auto always never)' \+                    '--features=[space-separated list of features to also build]' \+                    '--all-features[enable all available features]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-j, --jobs)'{-j,--jobs}'=[number of parallel jobs, defaults to # of CPUs]' \+                    '--manifest-path=[path to the manifest to document]' \+                    '--no-default-features[do not build the `default` feature]' \+                    '--open[open the docs in a browser after the operation]' \+                    '(-p, --package)'{-p,--package}'=[package to document]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--release[build artifacts in release mode, with optimizations]' \+                    '--target=[build for the target triple]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    "${command_scope_spec[@]}" \+                    ;;++            search)+                _arguments \+                    '--color=:colorization option:(auto always never)' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--host=[host of a registry to search in]' \+                    '--limit=[limit the number of results]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    ;;++            test)+                _arguments \+                    '--features=[space separated feature list]' \+                    '--all-features[enable all available features]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '--test=[test name]: :_test_names' \+                    '--no-default-features[do not build the default features]' \+                    '--no-fail-fast[run all tests regardless of failure]' \+                    '--no-run[compile but do not run]' \+                    '(-p,--package)'{-p=,--package=}'[package to run tests for]:packages:_get_package_names' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--release[build artifacts in release mode, with optimizations]' \+                    '--target=[target triple]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    '1: :_test_names' \+                    ;;++            uninstall)+                _arguments \+                    '--bin=[only uninstall the binary NAME]' \+                    '--color=:colorization option:(auto always never)' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-q, --quiet)'{-q,--quiet}'[less output printed to stdout]' \+                    '--root=[directory to uninstall packages from]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    ;;++            update)+                _arguments \+                    '--aggressive=[force dependency update]' \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '(-p,--package)'{-p=,--package=}'[package to update]:packages:__get_package_names' \+                    '--precise=[update single dependency to PRECISE]: :' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            verify-project)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--manifest-path=[path to manifest]: :_files -/' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            version)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    ;;++            yank)+                _arguments \+                    '(-h, --help)'{-h,--help}'[show help message]' \+                    '--index[registry index]' \+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \+                    '--token[API token to use when authenticating]' \+                    '--undo[undo a yank, putting a version back into the index]' \+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \+                    '--color=:colorization option:(auto always never)' \+                    '--vers[yank version]' \+                    ;;+        esac+        ;;+esac+}++_cargo_cmds(){+local -a commands;commands=(+'bench:execute all benchmarks of a local package'+'build:compile the current project'+'clean:remove generated artifacts'+'doc:build package documentation'+'fetch:fetch package dependencies'+'generate-lockfile:create lockfile'+'git-checkout:git checkout'+'help:get help for commands'+'init:create new project in current directory'+'install:install a Rust binary'+'locate-project:print "Cargo.toml" location'+'login:login to remote server'+'metadata:the metadata for a project in json'+'new:create a new project'+'owner:manage the owners of a crate on the registry'+'package:assemble local package into a distributable tarball'+'pkgid:print a fully qualified package specification'+'publish:upload package to the registry'+'read-manifest:print manifest in JSON format'+'run:run the main binary of the local package'+'rustc:compile a package and all of its dependencies'+'rustdoc:build documentation for a package'+'search:search packages on crates.io'+'test:execute all unit and tests of a local package'+'uninstall:remove a Rust binary'+'update:update dependencies'+'verify-project:check Cargo.toml'+'version:show version information'+'yank:remove pushed file from index'+)+_describe 'command' commands++}+++#FIXME: Disabled until fixed+#gets package names from the manifest file+_get_package_names()+{+}++#TODO:see if it makes sense to have 'locate-project' to have non-json output.+#strips package name from json stuff+_locate_manifest(){+local manifest=`cargo locate-project 2>/dev/null`+regexp-replace manifest '\{"root":"|"\}' ''+echo $manifest+}++# Extracts the values of "name" from the array given in $1 and shows them as+# command line options for completion+_get_names_from_array()+{+    local -a filelist;+    local manifest=$(_locate_manifest)+    if [[ -z $manifest ]]; then+        return 0+    fi++    local last_line+    local -a names;+    local in_block=false+    local block_name=$1+    names=()+    while read line+    do+        if [[ $last_line == "[[$block_name]]" ]]; then+            in_block=true+        else+            if [[ $last_line =~ '.*\[\[.*' ]]; then+                in_block=false+            fi+        fi++        if [[ $in_block == true ]]; then+            if [[ $line =~ '.*name.*=' ]]; then+                regexp-replace line '^.*name *= *|"' ""+                names+=$line+            fi+        fi++        last_line=$line+    done < $manifest+    _describe $block_name names++}++#Gets the test names from the manifest file+_test_names()+{+    _get_names_from_array "test"+}++#Gets the bench names from the manifest file+_benchmark_names()+{+    _get_names_from_array "bench"+}++# These flags are mutally exclusive specifiers for the scope of a command; as+# they are used in multiple places without change, they are expanded into the+# appropriate command's `_arguments` where appropriate.+set command_scope_spec+command_scope_spec=(+    '(--bin --example --test --lib)--bench=[benchmark name]: :_benchmark_names'+    '(--bench --bin --test --lib)--example=[example name]'+    '(--bench --example --test --lib)--bin=[binary name]'+    '(--bench --bin --example --test)--lib=[library name]'+    '(--bench --bin --example --lib)--test=[test name]'+)+++_cargo