question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Add ability to inject CommandLine into Commands

See original GitHub issue

This would be super handy for implementing commands such as git. The parent command git simply prints this:

usage: git [--version] [--help] [-C <path>] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone      Clone a repository into a new directory
   init       Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add        Add file contents to the index
   mv         Move or rename a file, a directory, or a symlink
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index

examine the history and state (see also: git help revisions)
   bisect     Use binary search to find the commit that introduced a bug
   grep       Print lines matching a pattern
   log        Show commit logs
   show       Show various types of objects
   status     Show the working tree status

grow, mark and tweak your common history
   branch     List, create, or delete branches
   checkout   Switch branches or restore working tree files
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   merge      Join two or more development histories together
   rebase     Reapply commits on top of another base tip
   tag        Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch      Download objects and refs from another repository
   pull       Fetch from and integrate with another repository or a local branch
   push       Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.

If there are additional configurations performed in CommandLine, then these need to be reconstructed in the parent command. Allowing for injection of the CommandLine instance would help here.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:6 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
remkopcommented, Jun 19, 2018

FYI: I ran into a use case that requires access to the picocli command model from the application, so this will be available from picocli 3.2.

The use case has to do with JLine completion candidates (#393, also in v3.2). Some completion candidates need to be looked up dynamically from some resource that is only available at runtime. Access to the CommandSpec is needed to update the option’s ArgSpec.completionCandidates after the lookup.

0reactions
bobtiernay-oktacommented, Apr 27, 2018

Please do, thanks!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Command Injection - OWASP Foundation
Command injection is an attack in which the goal is execution of arbitrary commands on the host operating system via a vulnerable application....
Read more >
Command Injection
This bug also gave attackers the ability to invoke cmd.com , the command interpreter, and execute any commands on the server. After Microsoft ......
Read more >
How to bind arguments to handlers in System.CommandLine
The process of parsing arguments and providing them to command handler ... CommandLine has the ability to bind many argument types built in....
Read more >
What Is Command Injection? | Examples, Methods & Prevention
Command injection is a cyber attack that involves executing arbitrary commands on a host operating system (OS). Learn more.
Read more >
A Guide to Command Injection - Examples, Testing, Prevention
Learn how you can prevent command injections, resulting in an entire takeover of the webserver. Prevent attacks before they happen.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found