ranger.core.runner
index
../../ranger/core/runner.py

This module is an abstract layer over subprocess.Popen
 
It gives you highlevel control about how processes are run.
 
Example:
run = Runner(logfunc=print)
run('sleep 2', wait=True)         # waits until the process exists
run(['ls', '--help'], flags='p')  # pipes output to pager
run()                             # prints an error message
 
List of allowed flags:
s: silent mode. output will be discarded.
f: fork the process.
p: redirect output to the pager
c: run only the current file (not handled here)
w: wait for enter-press afterwards
r: run application with root privilege (requires sudo)
t: run application in a new terminal window
(An uppercase key negates the respective lower case flag)

 
Modules
       
os
sys

 
Classes
       
builtins.object
Context
Runner

 
class Context(builtins.object)
    A context object contains data on how to run a process.
 
The attributes are:
action -- a string with a command or a list of arguments for
    the Popen call.
app -- the name of the app function. ("vim" for app_vim.)
    app is used to get an action if the user didn't specify one.
mode -- a number, mainly used in determining the action in app_xyz()
flags -- a string with flags which change the way programs are run
files -- a list containing files, mainly used in app_xyz
file -- an arbitrary file from that list (or None)
fm -- the filemanager instance
wait -- boolean, wait for the end or execute programs in parallel?
popen_kws -- keyword arguments which are directly passed to Popen
 
  Methods defined here:
__init__(self, **keywords)
__iter__(self)
Iterate over file paths
squash_flags(self)
Remove duplicates and lowercase counterparts of uppercase flags

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)
filepaths

 
class Runner(builtins.object)
     Methods defined here:
__call__(self, action=None, try_app_first=False, app='default', files=None, mode=0, flags='', wait=True, **popen_kws)
Run the application in the way specified by the options.
 
Returns False if nothing can be done, None if there was an error,
otherwise the process object returned by Popen().
 
This function tries to find an action if none is defined.
__init__(self, ui=None, logfunc=None, fm=None)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Functions
       
press_enter()
Wait for an ENTER-press

 
Data
        ALLOWED_FLAGS = 'cfrtCFRT'
PIPE = -1