- I think it would be better if one for commands only, one for the spec handling core logic so people won't be confused by the core logic inside the commands folder (cleaner I guess) - Regen docs
107 lines
6.9 KiB
Go
107 lines
6.9 KiB
Go
package runner
|
||
|
||
import (
|
||
"github.com/versenilvis/iris/spec"
|
||
)
|
||
|
||
func init() {
|
||
spec.Register(&spec.Spec{
|
||
Name: "gem",
|
||
Description: "Use HTTP proxy for remote operations",
|
||
Subcommands: []spec.Subcommand{
|
||
{Name: "help", Description: "Help about any command"},
|
||
{Name: "install", Description: "Install a gem into the local repository"},
|
||
{Name: "PLATFORM", Description: "The platform of gem"},
|
||
{Name: "cert", Description: "Manage RubyGems certificates and signing settings"},
|
||
{Name: "CERT", Description: "The trusted certificate"},
|
||
{Name: "FILTER", Description: "The filter"},
|
||
{Name: "EMAIL_ADDR", Description: "The email address"},
|
||
{Name: "KEY", Description: "The key"},
|
||
{Name: "ALGORITHM", Description: "The algorithm"},
|
||
{Name: "NUMBER_OF_DAYS", Description: "The number of days"},
|
||
{Name: "check", Description: "Check a gem repository for added or missing files"},
|
||
{Name: "VERSION", Description: "The version of the gem"},
|
||
{Name: "cleanup", Description: "Clean up old versions of installed gems"},
|
||
{Name: "GEMNAME", Description: "Name of gem to cleanup"},
|
||
{Name: "contents", Description: "Display the contents of the installed gems"},
|
||
{Name: "dependency", Description: "Show the dependencies of an installed gem"},
|
||
{Name: "REGEXP", Description: "Show dependencies for gems whose names start with REGEXP"},
|
||
{Name: "environment", Description: "Display information about the RubyGems environment"},
|
||
{Name: "home", Description: "Display the path where gems are installed. Aliases: gemhome, gemdir, GEM_HOME"},
|
||
{Name: "path", Description: "Display path used to search for gems. Aliases: gempath, GEM_PATH"},
|
||
{Name: "version", Description: "Display the gem format version"},
|
||
{Name: "remotesources", Description: "Display the remote gem servers"},
|
||
{Name: "platform", Description: "Display the supported gem platforms"},
|
||
{Name: "fetch", Description: "Download a gem and place it in the current directory"},
|
||
{Name: "COUNT", Description: "The threshold"},
|
||
{Name: "URL", Description: "The URL"},
|
||
{Name: "generate_index", Description: "Generates the index files for a gem server directory"},
|
||
{Name: "info", Description: "Show information for the given gem"},
|
||
{Name: "lock", Description: "Generate a lockdown list of gems"},
|
||
{Name: "GEMNAME-VERSION", Description: "Name and the version of gem to lock, ex: rails-1.0.0"},
|
||
{Name: "mirror", Description: "Mirror all gem files (requires rubygems-mirror)"},
|
||
{Name: "open", Description: "Open gem sources in editor"},
|
||
{Name: "COMMAND", Description: "The prepends command to gem path"},
|
||
{Name: "query", Description: "Query gem information in local or remote repositories"},
|
||
{Name: "rdoc", Description: "Generates RDoc for pre-installed gems"},
|
||
{Name: "search", Description: "Display remote gems whose name matches REGEXP"},
|
||
{Name: "signin", Description: "Sign in to any gemcutter-compatible host. It defaults to https://rubygems.org"},
|
||
{Name: "HOST", Description: "The host"},
|
||
{Name: "CODE", Description: "The GEM host otp code"},
|
||
{Name: "signout", Description: "Sign out from all the current sessions"},
|
||
{Name: "sources", Description: "Manage the sources and cache file RubyGems uses to search for gems"},
|
||
{Name: "SOURCE_URI", Description: "The source URI"},
|
||
{Name: "specification", Description: "Display gem specification (in yaml)"},
|
||
{Name: "GEMFILE", Description: "Name of gem to show the gemspec for"},
|
||
{Name: "FIELD", Description: "Name of gemspec field to show"},
|
||
{Name: "stale", Description: "List gems along with access times"},
|
||
{Name: "unpack", Description: "Unpack an installed gem to the current directory"},
|
||
{Name: "yank", Description: "Remove a pushed gem from the index"},
|
||
{Name: "GEM", Description: "Name of gem"},
|
||
{Name: "uninstall", Description: "Uninstall gems from the local repository"},
|
||
},
|
||
Options: []spec.Option{
|
||
{Name: "-p", Description: "Use HTTP proxy for remote operations"},
|
||
{Name: "--no-http-proxy", Description: "Do not use HTTP proxy for remote operations"},
|
||
{Name: "-l", Description: "Restrict operations to the LOCAL domain"},
|
||
{Name: "-r", Description: "Restrict operations to the REMOTE domain"},
|
||
{Name: "-b", Description: "Allow LOCAL and REMOTE operations"},
|
||
{Name: "-B", Description: "Threshold for switching to bulk synchronization (default 1000)"},
|
||
{Name: "--clear-sources", Description: "Clear the gem sources"},
|
||
{Name: "-s", Description: "Append URL to list of remote gem sources"},
|
||
{Name: "-i", Description: "Check for installed gem"},
|
||
{Name: "-I", Description: "Check for not installed gem"},
|
||
{Name: "-v", Description: "Specify version of gem to list for use with --installed"},
|
||
{Name: "-a", Description: "Display all gem versions"},
|
||
{Name: "-e", Description: "Name of gem(s) to query on matches the provided STRING"},
|
||
{Name: "--prerelease", Description: "Allow prerelease versions of a gem"},
|
||
{Name: "--no-prerelease", Description: "Do not allow prerelease versions of a gem"},
|
||
{Name: "--versions", Description: "Display only gem names"},
|
||
{Name: "--no-versions", Description: "Display not only gem names"},
|
||
{Name: "--host", Description: "Use another gemcutter-compatible host (e.g. https://rubygems.org)"},
|
||
{Name: "-k", Description: "Use the given API key"},
|
||
{Name: "--otp", Description: "The GEM host otp code"},
|
||
{Name: "--platform", Description: "Specify the platform of gem to install"},
|
||
{Name: "-C", Description: "Signing certificate for --sign"},
|
||
{Name: "-K", Description: "Key for --sign or --build"},
|
||
{Name: "-A", Description: "Select which key algorithm to use for --build"},
|
||
{Name: "-d", Description: "Days before the certificate expires"},
|
||
{Name: "-R", Description: "Re-signs the certificate from -C with the key from -K"},
|
||
{Name: "--no-alien", Description: "Report 'managed' or rogue files in the gem repository"},
|
||
{Name: "--doctor", Description: "Clean up uninstalled gems and broken specifications"},
|
||
{Name: "--no-doctor", Description: "Do not clean up uninstalled gems and broken specifications"},
|
||
{Name: "--dry-run", Description: "Do not remove files, only report what would be removed"},
|
||
{Name: "--no-dry-run", Description: "Remove files"},
|
||
{Name: "--gems", Description: "Check installed gems for problems"},
|
||
{Name: "--no-gems", Description: "Check not installed gems for problems"},
|
||
{Name: "-n", Description: "Do not uninstall gems"},
|
||
{Name: "-D", Description: "Check development dependencies while uninstalling (default: true)"},
|
||
{Name: "--no-check-development", Description: "Do not check development dependencies while uninstalling"},
|
||
{Name: "--user-install", Description: "Cleanup in user’s home directory instead of GEM_HOME"},
|
||
{Name: "--no-user-install", Description: "Cleanup in GEM_HOME instead of user’s home directory"},
|
||
{Name: "--all", Description: "Contents for all gems"},
|
||
{Name: "--no-lib-only", Description: "Not only return files in the Gem’s lib_dirs"},
|
||
},
|
||
})
|
||
}
|