From 359eefe1ab5f3d10a12fb19980459cc4aa42ef08 Mon Sep 17 00:00:00 2001 From: wishfort36 <42300264+wishfort36@users.noreply.github.com> Date: Sun, 12 Aug 2018 21:21:01 +0200 Subject: [PATCH] Expose $QUTE_COUNT to userscripts --- doc/help/commands.asciidoc | 3 +++ qutebrowser/browser/commands.py | 10 +++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/help/commands.asciidoc b/doc/help/commands.asciidoc index 6daff3bcc..04cf5f318 100644 --- a/doc/help/commands.asciidoc +++ b/doc/help/commands.asciidoc @@ -1200,6 +1200,9 @@ Spawn a command in a shell. * +*-o*+, +*--output*+: Whether the output should be shown in a new tab. * +*-d*+, +*--detach*+: Whether the command should be detached from qutebrowser. +==== count +Given to userscripts as $QUTE_COUNT. + ==== note * This command does not split arguments after the last argument and handles quotes literally. diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 6578e4bb7..5c0e41e77 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -1173,8 +1173,9 @@ class CommandDispatcher: @cmdutils.register(instance='command-dispatcher', scope='window', maxsplit=0, no_replace_variables=True) + @cmdutils.argument('count', count=True) def spawn(self, cmdline, userscript=False, verbose=False, - output=False, detach=False): + output=False, detach=False, count=None): """Spawn a command in a shell. Args: @@ -1188,6 +1189,7 @@ class CommandDispatcher: output: Whether the output should be shown in a new tab. detach: Whether the command should be detached from qutebrowser. cmdline: The commandline to execute. + count: Given to userscripts as $QUTE_COUNT. """ cmdutils.check_exclusive((userscript, detach), 'ud') try: @@ -1211,7 +1213,7 @@ class CommandDispatcher: if userscript: def _selection_callback(s): try: - runner = self._run_userscript(s, cmd, args, verbose) + runner = self._run_userscript(s, cmd, args, verbose, count) runner.finished.connect(_on_proc_finished) except cmdexc.CommandError as e: message.error(str(e)) @@ -1238,17 +1240,19 @@ class CommandDispatcher: """Open main startpage in current tab.""" self.openurl(config.val.url.start_pages[0]) - def _run_userscript(self, selection, cmd, args, verbose): + def _run_userscript(self, selection, cmd, args, verbose, count): """Run a userscript given as argument. Args: cmd: The userscript to run. args: Arguments to pass to the userscript. verbose: Show notifications when the command started/exited. + count: Exposed to the userscript. """ env = { 'QUTE_MODE': 'command', 'QUTE_SELECTED_TEXT': selection, + 'QUTE_COUNT': str(count), # must be a string } idx = self._current_index()