/usr/share/ubuntu-drivers-common/detect/sl-modem.py is in ubuntu-drivers-common 1:0.4.17.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | # 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('^\s*\d+\s*\[Modem\s*\]')
modem_as_subdevice_re = re.compile('^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 f:
for l in f:
if modem_re.match(l):
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'
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 OSError:
logging.exception('could not open aplay -l')
return None
for row in aplay_out.splitlines():
if modem_as_subdevice_re.match(row):
return [pkg]
return None
|