示例#1
0
def test_call():
    """
    test the call function
    """
    assert call("echo test", nerf=True) == (None, "nerfed", "nerfed")
    assert call("echo test", verbose=True)[0] == 0
    assert call("echo test 1>&2", verbose=True)[0] == 0
示例#2
0
文件: dodo.py 项目: andrewkrug/subhub
 def running():
     pid = None
     try:
         pid = call(f'lsof -i:{CFG.DYNALITE_PORT} -t')[1].strip()
     except CalledProcessError:
         return None
     try:
         args = call(f'ps -p {pid} -o args=')[1].strip()
     except CalledProcessError:
         return None
     if cmd in args:
         return pid
     return None
示例#3
0
def check_reqs():
    '''
    check requirements
    '''
    installed = call('python3 -m pip freeze')[1].strip().split('\n')
    installed = [tuple(item.split('==')) for item  in installed if '==' in item]
    required = open('requirements.txt').read().strip().split('\n')
    required = [tuple(item.split('==')) if '==' in item else (item, None) for item in required]
    @lru_cache(3)
    def check():
        def match_one(iname, iver, rname, rver=None):
            return (iname == rname and parse_version(iver) >= parse_version(rver or iver))
        def match_any(installed, rname, rver):
            return any([match_one(iname, iver, rname, rver) for iname, iver in installed])
        return [(rname, rver) for rname, rver in required if not match_any(installed, rname, rver)]
    def report(rname, rver):
        version = f'or at version {rver}' if rver else ''
        return f'echo "-> {rname} is not installed {version}"'
    return {
        'name': 'reqs',
        'task_dep': [
            'check:noroot',
        ],
        'actions': [
            report(rname, rver) for rname, rver in check()
        ] + [
            'echo "consider running \'./dodo.py\' or \'sudo pip install -r requirements.txt\'"',
            'false',
        ] if len(check()) else [],
        'uptodate': [
            lambda: len(check()) == 0,
        ],
    }
示例#4
0
 def running():
     mutex.acquire()
     pid = None
     try:
         pid = call(f'lsof -i:{CFG.DYNALITE_PORT} -t')[1].strip()
     except CalledProcessError:
         return None
     finally:
         mutex.release()
     mutex.acquire()
     try:
         args = call(f'ps -p {pid} -o args=')[1].strip()
     except CalledProcessError:
         return None
     finally:
         mutex.release()
     if cmd in args:
         return pid
     return None
示例#5
0
文件: dodo.py 项目: andrewkrug/subhub
def check_hash(program):
    try:
        call(f'hash {program}')
        return True
    except CalledProcessError:
        return False
示例#6
0
文件: dodo.py 项目: andrewkrug/subhub
 def creds_check():
     try:
         call('aws sts get-caller-identity')
         return True
     except CalledProcessError:
         return False
示例#7
0
 def uptodate():
     try:
         call('aws sts get-caller-identity')
         return True
     except CalledProcessError:
         return False
示例#8
0
 def uptodate():
     try:
         call('npm outdated')
         return False
     except CalledProcessError:
         return True