2 The B{0install download} command-line interface.
5 # Copyright (C) 2011, Thomas Leonard
6 # See the README file for details, or visit http://0install.net.
10 from zeroinstall
import _
11 from zeroinstall
.cmd
import UsageError
, select
12 from zeroinstall
.injector
import model
16 def add_options(parser
):
17 select
.add_options(parser
)
18 parser
.add_option("", "--show", help=_("show where components are installed"), action
='store_true')
20 def handle(config
, options
, args
):
24 app
= config
.app_mgr
.lookup_app(args
[0], missing_ok
= True)
26 sels
= app
.get_selections()
28 r
= app
.get_requirements()
29 do_select
= r
.parse_update_options(options
)
30 iface_uri
= sels
.interface
32 iface_uri
= model
.canonical_iface_uri(args
[0])
35 if do_select
or options
.gui
:
36 sels
= select
.get_selections(config
, options
, iface_uri
,
37 select_only
= False, download_only
= True, test_callback
= None)
39 sys
.exit(1) # Aborted by user
41 dl
= app
.download_selections(sels
)
43 tasks
.wait_for_blocker(dl
)
49 select
.show_human(sels
, config
.stores
)
50 if app
is not None and do_select
:
51 print(_("(use '0install update' to save the new parameters)"))