Merge pull request #4445 from GlenRSmith/master

Add `pipenv scripts` command to list scripts in Pipfile
This commit is contained in:
Frost Ming
2020-09-10 10:09:13 +08:00
committed by GitHub
5 changed files with 48 additions and 0 deletions
+2
View File
@@ -191,6 +191,8 @@ Fish is the best shell. You should use it.
lock Generates Pipfile.lock.
open View a given module in your editor.
run Spawns a command installed into the virtualenv.
scripts Displays the shortcuts in the (optional) [scripts] section of
Pipfile.
shell Spawns a shell within the virtualenv.
sync Installs all packages specified in Pipfile.lock.
uninstall Un-installs a provided package and removes it from Pipfile.
+9
View File
@@ -428,6 +428,15 @@ For example:
$ pipenv run echospam "indeed"
I am really a very silly example indeed
You can then display the names and commands of your shortcuts by running ``pipenv scripts`` in your terminal.
::
$ pipenv scripts
command script
echospam echo I am really a very silly example
☤ Support for Environment Variables
-----------------------------------
+2
View File
@@ -0,0 +1,2 @@
Add a new command ``pipenv scripts`` to display shortcuts from Pipfile.
+21
View File
@@ -716,5 +716,26 @@ def clean(ctx, state, dry_run=False, bare=False, user=False):
system=state.system)
@cli.command(
short_help="Lists scripts in current environment config.",
context_settings=subcommand_context_no_interspersion,
)
@common_options
@argument("args", nargs=-1)
@pass_state
def scripts(state, args):
"""Lists scripts in current environment config."""
from ..core import project
if not project:
echo(u"project not found", err=True)
exit(1)
scripts = project.parsed_pipfile.get('scripts', {})
rpt = u"command\tscript\n"
for k, v in scripts.items():
rpt += u"{0}\t{1}".format(k, v)
echo(rpt)
return 0
if __name__ == "__main__":
cli()
+14
View File
@@ -197,6 +197,20 @@ def test_bare_output(PipenvInstance):
assert p.pipenv('').out
@pytest.mark.cli
def test_scripts(PipenvInstance):
with PipenvInstance() as p:
with open(p.pipfile_path, "w") as f:
contents = """
[scripts]
pyver = "which python"
""".strip()
f.write(contents)
c = p.pipenv('scripts')
assert 'pyver' in c.out
assert 'which python' in c.out
@pytest.mark.cli
def test_help(PipenvInstance):
with PipenvInstance() as p: