WIP: Requirements object
[zeroinstall.git] / zeroinstall / injector / requirements.py
blobff2f9e614801a8f98952e03457a1f88f0c2e1caf
1 """
2 Holds information about what the user asked for (which program, version constraints, etc).
3 """
5 # Copyright (C) 2011, Thomas Leonard
6 # See the README file for details, or visit http://0install.net.
8 from zeroinstall import _
10 class Requirements(object):
11 """
12 Holds information about what the user asked for (which program, version constraints, etc).
13 """
14 __slots__ = [
15 'interface_uri',
16 'command',
17 'source',
18 'before', 'not_before',
19 'os', 'cpu',
20 'message',
23 def __init__(self, interface_uri):
24 self.interface_uri = interface_uri
25 self.command = 'run'
26 self.source = False
27 self.before = self.not_before = None
28 self.os = self.cpu = None
29 self.message = None
31 def get_as_options(self):
32 gui_args = []
33 if self.not_before:
34 gui_args.insert(0, self.not_before)
35 gui_args.insert(0, '--not-before')
36 if self.before:
37 gui_args.insert(0, self.before)
38 gui_args.insert(0, '--before')
39 if self.source:
40 gui_args.insert(0, '--source')
41 if self.message:
42 gui_args.insert(0, self.message)
43 gui_args.insert(0, '--message')
44 if self.cpu:
45 gui_args.insert(0, self.cpu)
46 gui_args.insert(0, '--cpu')
47 if self.os:
48 gui_args.insert(0, self.os)
49 gui_args.insert(0, '--os')
50 if self.command is not None:
51 gui_args.append('--command')
52 gui_args.append(self.command)
54 return gui_args