Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/dependency.py
blob: 3fc7de55616e02b9c2bbca3e36a2d2f9a0b411f8 (plain)
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
import os

class AbstractDependency:
	def __init__(self, name):
		self._name = name
	
	def get_name(self):
		return self._name
	
	def check(self):
		return False

class LibDependency(AbstractDependency):
	def __init__(self, name, module):
		AbstractDependency.__init__(self, name)
		self._module = module
	
	def check(self):
		pid = os.fork()
		if not pid:
			os.execvp('pkg-config', [ 'pkg-config', '--exists', self._module ])
		return os.wait()[1] == 0

def get_installed(dependencies):
	installed = []
	for dep in dependencies:
		if dep.check():
			installed.append(dep.get_name())
	return installed