| Home | Trees | Indices | Help |
|
|---|
|
|
1 """
2 A simple non-interactive policy.
3
4 This module provides a simple policy that will select, download and run a suitable set of
5 implementations. It is not interactive. This is the policy used when you run B{0launch -c}, and
6 is also the policy used to run the injector's GUI.
7
8 @deprecated: The interesting functionality has moved into the L{policy.Policy} base-class.
9 """
10
11 # Copyright (C) 2006, Thomas Leonard
12 # See the README file for details, or visit http://0install.net.
13
14 import os
15 from logging import debug, info, warn
16
17 from zeroinstall.support import tasks
18 from zeroinstall.injector import model, policy, run
19 from zeroinstall.injector.handler import Handler
20 from zeroinstall import NeedDownload
21
23 __slots__ = ['download_only']
24
25 - def __init__(self, interface_uri, download_only = False, dry_run = False, src = False, handler = None):
26 """@param handler: (new in 0.30) handler to use, or None to create a L{Handler}"""
27 handler = handler or Handler()
28 if dry_run:
29 info("Note: dry_run is deprecated. Pass it to the handler instead!")
30 handler.dry_run = True
31 policy.Policy.__init__(self, interface_uri, handler, src = src)
32 self.download_only = download_only
33
35 downloaded = self.download_uncached_implementations()
36 if downloaded:
37 self.handler.wait_for_blocker(downloaded)
38 if not self.download_only:
39 run.execute(self, prog_args, dry_run = self.handler.dry_run, main = main, wrapper = wrapper)
40 else:
41 info("Downloads done (download-only mode)")
42
44 refreshed = self.solve_with_downloads(refresh)
45
46 self.handler.wait_for_blocker(refreshed)
47
48 if not self.solver.ready:
49 raise model.SafeException("Can't find all required implementations:\n" +
50 '\n'.join(["- %s -> %s" % (iface, self.solver.selections[iface])
51 for iface in self.solver.selections]))
52 self.execute(prog_args, main = main)
53
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sat Jun 21 21:21:16 2008 | http://epydoc.sourceforge.net |