From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3730 invoked by alias); 26 May 2018 15:07:14 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 42827 Received: (qmail 20939 invoked by uid 1010); 26 May 2018 15:07:14 -0000 X-Qmail-Scanner-Diagnostics: from mail-wr0-f196.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.128.196):SA:0(-3.7/5.0):. Processed in 1.66225 secs); 26 May 2018 15:07:14 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: doron.behar@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=nP2LO7TPwdo7fh/ccgSNET54etk9o5rHKG3C2IJqz0g=; b=HNe5G3dhui384Ey6pQuCoDAvJD0ioVMb2dqZUlSmZqDtQxH7CfqORgWE71Q+DFnLfw sWNxpwTqIH42LjsVD17SPr2rxKWHsh0b8dWkYQrvBBG3vJ5ZOQgTth8mQrUWLIKmUERb 8qk2dl3SIzdZ3/Qxwkz6h1+AvceluZ/5CP+78+NeFVs4vKB1cWhPFxmGaHwIpMlCfLPd o7VP4nzPda432HYVAUecERwmWTS/IYVoJnXzAzYDc8tTfTn0HvrOxsKoMkplzA1tM+P5 Qnd3y0tCUsQGuvR8/XiQwIA8RssnzNvYB9FoZg0LkB5CbtoSShDLaSURo4LbrYOXcN2c 26Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=nP2LO7TPwdo7fh/ccgSNET54etk9o5rHKG3C2IJqz0g=; b=DO7smb+DIpQ1BwBWHUNrwggracCDda3YEVtMUUgbYQaKGQvG5Rh29zEq5fASxge4di bkW4AWa8TXotucoxZCKtJ1sDZuVvT/3eJyvi5wj+sxPnI66D1K8phehdUYl+X25q/g68 g6wwp+kj7glhIO/EpZ8FKQ2/heLYin8KxKkWSHHXFlVc2/hEakfF4fGy2COZr9bxp8sL JerSas32bWRAhRkrx2FYJuemjgYWoQYH3Ba+uF7A1FpAf1nZ0mng0tz+ZabQGK6VnBRl 3GYJbiyLY8D8RABBHhzLTLwecmS49gdonln68TYhuznz3QP22Mo3Su0p5+FA91fX0Qml 8H7w== X-Gm-Message-State: ALKqPwfSwXu+MhqwU6VqFFWtyZtGXH/Y7/eWUl9BbMQk+GyJyPDgSHO3 pjgBB/n32wTeX51BicY8oN4EGGt8 X-Google-Smtp-Source: ADUXVKJkWV+ww6s1YKmz9AR24D1W6T/0j5dm3qtlF3uHMjneeaG4yKfuyf+tYySiyzImTmPS24lWSw== X-Received: by 2002:adf:9e8c:: with SMTP id a12-v6mr890277wrf.170.1527347228486; Sat, 26 May 2018 08:07:08 -0700 (PDT) From: doron.behar@gmail.com To: zsh-workers@zsh.org Subject: [PATCH 01/25] Add variables for all commands and options. Date: Sat, 26 May 2018 18:06:10 +0300 Message-Id: <20180526150634.15683-2-doron.behar@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180526150634.15683-1-doron.behar@gmail.com> References: <20180526150634.15683-1-doron.behar@gmail.com> From: Doron Behar --- Completion/Unix/Command/_luarocks | 178 ++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 Completion/Unix/Command/_luarocks diff --git a/Completion/Unix/Command/_luarocks b/Completion/Unix/Command/_luarocks new file mode 100644 index 000000000..753fdb381 --- /dev/null +++ b/Completion/Unix/Command/_luarocks @@ -0,0 +1,178 @@ +#compdef luarocks + +local general_options=( + '(--server --only-server)--server=[Fetch rocks/rockspecs from this server]:HOST:_hosts' + '(--server --only-server)--only-server=[Fetch rocks/rockspecs from this server only]:HOST:_hosts' + '--only-sources=[Restrict downloads to paths matching the given URL]:URL:_urls' + '--tree=[Which tree to operate on]:TREE:' + '--local[Use the tree in the user'"'"'s home directory]' + '--verbose[Display verbose output of commands executed]' + '--timeout=[Timeout on network operations]:SECONDS:{_message "timeout (seconds)"}' +) +# SYNOPSIS: /usr/bin/luarocks [--server= | --only-server=] [--tree=] [VAR=VALUE]... [] +local commands=( + 'build[Build/compile a rock]' + 'config[Query information about the LuaRocks configuration]' + 'doc[Show documentation for an installed rock]' + 'download[Download a specific rock file from a rocks server]' + 'help[Help on commands]' + 'install[Install a rock]' + 'lint[Check syntax of a rockspec]' + 'list[List currently installed rocks]' + 'make[Compile package in current directory using a rockspec]' + 'new_version[Auto-write a rockspec for a new version of a rock]' + 'pack[Create a rock, packing sources or binaries]' + 'path[Return the currently configured package path]' + 'purge[Remove all installed rocks from a tree]' + 'remove[Uninstall a rock]' + 'search[Query the LuaRocks servers]' + 'show[Show information about an installed rock]' + 'unpack[Unpack the contents of a rock]' + 'upload[Upload a rockspec to the public rocks repository]' + 'write_rockspect[Write a template for a rockspec file]' +) + +# `build` command receives as an argument a .rockspec file, or external rock and afterwards a version +local make_command_options=( + '--pack-binary-rock[Produce a .rock file with the contents of compilation inside the current directory instead of installing it]' + '--keep[Do not remove previously installed versions of the rock after building a new one]' + '--branch=[Override the `source.branch` field in the loaded rockspec]:NAME:{_message "branch name"}' +) +local option_deps_mode='--deps-mode=[How to handle dependencies. Four modes are supported:MODE:_luarocks_build_deps_mode' +local build_command_options=( + "${make_command_options[@]}" + '--only-deps[Installs only the dependencies of the rock]' + $option_deps_mode +) +_luarocks_build_deps_mode(){ + local modes=( + 'all:use all trees from the rocks_trees list for finding dependencies' + 'one:use only the current tree (possibly set with --tree)' + 'order:use trees based on order (use the current tree and all trees below it on the rocks_trees list)' + 'none:ignore dependencies altogether' + ) + _describe 'dependencies mode' modes +} + +# `config` command sets a flag in the format VAR=VALUE +local config_command_options=( + '--lua-incdir[Path to Lua header files]' + '--lua-libdir[Path to Lua library files]' + '--lua-ver[Lua version (in major.minor format)]' + '--system-config[Location of the system config file]' + '--user-config[Location of the user config file]' + '--rock-trees[Rocks trees in useFirst the user tree, then the system tree]' +) + +# `doc` command ... TODO: what kind of argument it receives +local doc_command_options=( + '--home[Open the home page of project]' + '--list[List documentation files only]' +) + +# `download` command receives an argument of an external only rockspec +local download_command_options=( + '--all[Download all files if there are multiple matches]' + '--source[Download .src.rock if available]' + '--rockspec[Download .rockspec if available]' + '--arch=[Download rock for a specific architecture]:ARCH:_luarocks_architecture' +) +_luarocks_architecture(){ +} + +# `help` command receives an argument of an internal command + +# `install` command receives the same argument as the build command and it accepts the same options as well + +# `lint` command receives an argument of a rockspec file + +# `list` command receives only options +local list_command_options=( + '--outdated[List only rocks for which there is a higher version available in the rocks server]' + '--porcelain[Produce machine-friendly output]' +) + +# `make` command receives an argument of a rockspec file +# it's options were already described above. + +# `new_version` command receives an argument a .rockspec file, or external rock and afterwards a version and optionally afterwards a URL +local new_version_command_options=( + '--tag=[if no version is specified, this option'"'"'s argument is used instead]:TAG:__git_tag' +) + +# `pack` command receives as an argument a .rockspec file, or external rock and afterwards a version + +# `path` command receives only options +local path_command_options=( + '--bin[Adds the system path to the output]' + '--append[Appends the paths to the existing paths]' + '--lr-path[Exports the Lua path (not formatted as shell command)]' + '--lr-cpath[Exports the Lua cpath (not formatted as shell command)]' + '--lr-bin[Exports the system path (not formatted as shell command)]' +) + +# `purge` command receives only options, --tree is mandatory, --force can be used only in conjunction with --old-versions +local option_force='--force[Force removing old versions when]' +local purge_command_options=( + '--old-versions[Keep the highest-numbered version of each rock and remove the other ones]' + $option_force +) + + +# `remove` command receives as an argument a name of a locally installed rock +local option_force_fast='--force-fast[works like --force but doesn'"'"'t reports forced removals]' +local remove_command_options=( + $option_deps_mode + $option_force + $option_force_fast +) + +# `search` command receives as an argument only a string as a search query +local search_command_options=( + '--source[Return only rockspecs and source rocks]' + '--binary[Return only pure Lua and binary rocks (rocks that can be used with the "install" command without requiring a C toolchain)]' + '--all[List all contents of the server that are suitable to this platform, do not filter by name]' +) + +# `show` command receives as an argument only an installed rock +local show_command_options=( + '--home[home page of project]' + '--modules[all modules provided by this package as used by require()]' + '--deps[packages this package depends on]' + '--rockspec[the full path of the rockspec file]' + '--mversion[the package version]' + '--rock-tree[local tree where rock is installed]' + '--rock-dir[data directory of the installed rock]' +) + +# `unpack` command receives as an argument a rock package or an external rock and afterwards a version +local unpack_command_options=( + '--force[Unpack files even if the output directory already exists]' +) + +# `upload` command receives as an argument a rockspec file with .src.rock extension +local upload_command_options=( + '--skip-pack[Do not pack and send source rock]' + '--api-key=[Give it an API key]:KEY:{_message "api key"}' + '--force[Replace existing rockspec if the same revision of a module already exists]' +) + +# `write_rockspec` command receives as an argument a name and a version with optionally a URL/PATH + +local write_rockspec_command_options=( + '--output=[Write the rockspec with the given filename]:FILE:_files' + '--license=[A license string, ]:LICENSE:{_message -e "write a license string such as "MIT/X11" or "GNU GPL v3"}' + '--summary=[A short one-line description summary]:SUMMARY_TEXT:{_message -e "write a short summary of the rock"}' + '--detailed=[A longer description string]:DETAILED_TEXT:{_message -e "write a detailed description of the rock"}' + '--homepage=[Project homepage]:URL:_luarocks_write_rockspec_homepage' + '--lua-version=[Supported Lua versions]:LUA_VER:_luarocks_version' + '--rockspec-format=[Rockspec format version, such as "1.0" or "1.1"]:VER: ' + '--tag=[Tag to use. Will attempt to extract version number from it]:TAG:__git_tag' + '--lib=[A comma-separated list of libraries that C files need to link to]:_luarocks_write_rockspec_lib' +) +_luarocks_write_rockspec_lib(){ +} +# TODO +_luarocks_version(){ + _values -s , +} -- 2.17.0