Viewing file: sl-modem.py (1.57 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# ubuntu-drivers-common custom detect plugin for sl-modem # # (C) 2012 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com>
import os import re import logging import subprocess
modem_re = re.compile(r'^\s*\d+\s*\[Modem\s*\]') modem_as_subdevice_re = re.compile(r'^card [0-9].*[mM]odem')
pkg = 'sl-modem-daemon'
def detect(apt_cache): # Check in /proc/asound/cards try: with open('/proc/asound/cards') as fd: for line in fd: if modem_re.match(line): return [pkg] except IOError as e: logging.debug('could not open /proc/asound/cards: %s', e)
# Check aplay -l try: env = os.environ.copy() try: del env['LANGUAGE'] except KeyError: pass env['LC_ALL'] = 'C' try: aplay = subprocess.Popen( ['aplay', '-l'], env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) (aplay_out, aplay_err) = aplay.communicate() if aplay.returncode != 0: logging.error('aplay -l failed with %i: %s' % (aplay.returncode, aplay_err)) return None except FileNotFoundError: logging.error('aplay command not found') return None
except OSError: logging.debug('could not open aplay -l. Skipping sl-modem detection') return None
for row in aplay_out.splitlines(): if modem_as_subdevice_re.match(row): return [pkg]
return None
|