Skip to content

Commit 882fde4

Browse files
committed
fopen: add flag -q to suppress stdout from external command
pass twice to also suppress stderr
1 parent de4e2dd commit 882fde4

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

stig/commands/base/file.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
import asyncio
1313

1414
from subprocess import Popen, DEVNULL, PIPE
15-
from threading import Thread
16-
from time import sleep
1715

1816
from . import _mixin as mixin
1917
from .. import CmdError, CommandMeta
@@ -183,18 +181,21 @@ class FOpenCmdbase(metaclass=CommandMeta):
183181
'fileopen "that torrent" *.mkv mpv'
184182
'fileopen "that torrent" *.mkv mpv --fullscreen',)
185183
argspecs = (
184+
{'names': ('--quiet', '-q'),
185+
'description': 'Suppress stdout from the external command. Pass twice to also suppress stderr',
186+
'action': 'count', 'default': 0},
186187
make_X_FILTER_spec('TORRENT', or_focused=True, nargs='?'),
187188
make_X_FILTER_spec('FILE', or_focused=True, nargs='?'),
188-
{"names": ('COMMAND',),
189-
'description': "Command to use to open files. Default: xdg-open",
189+
{'names': ('COMMAND',),
190+
'description': 'Command to use to open files. Default: xdg-open',
190191
'nargs': '?'
191192
},
192-
{"names": ('OPTS',),
193+
{'names': ('OPTS',),
193194
'description': "Options for the external command.",
194195
'nargs': 'REMAINDER'
195196
},
196197
)
197-
async def run(self, TORRENT_FILTER, FILE_FILTER, COMMAND, OPTS):
198+
async def run(self, quiet, TORRENT_FILTER, FILE_FILTER, COMMAND, OPTS):
198199
default_command = 'xdg-open'
199200
if COMMAND is None:
200201
command = default_command
@@ -244,7 +245,11 @@ def closepipes(proc):
244245

245246
# TODO separate options for stdout/stderr
246247
stdoutlogger = lambda s: self.info(command + ": " + s)
248+
if quiet >= 1:
249+
stdoutlogger = lambda s: None
247250
stderrlogger = lambda s: self.error(command + ": " + s)
251+
if quiet >= 2:
252+
stderrlogger = lambda s: None
248253
loop = asyncio.get_running_loop()
249254
try:
250255
if command == default_command:

stig/commands/tui/file.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ class FOpenCmd(base.FOpenCmdbase, mixin.make_request, mixin.select_torrents, mix
3535
# When files are selected in the tui, the two first arguments, the torrent
3636
# and the file(s) need to be filled in. That is, `fopen mpv` should mean
3737
# `fopen torrent file mpv`
38-
async def run(self, COMMAND, TORRENT_FILTER, FILE_FILTER, OPTS):
39-
await base.FOpenCmdbase.run(self, TORRENT_FILTER=COMMAND, FILE_FILTER=FILE_FILTER, COMMAND=TORRENT_FILTER, OPTS=OPTS)
38+
async def run(self, quiet, COMMAND, TORRENT_FILTER, FILE_FILTER, OPTS):
39+
await base.FOpenCmdbase.run(self, quiet, TORRENT_FILTER=COMMAND, FILE_FILTER=FILE_FILTER, COMMAND=TORRENT_FILTER, OPTS=OPTS)

0 commit comments

Comments
 (0)