Delete: doc/DIRSnVARS
[bitbake.git] / bin / oeinstall
1 #!/usr/bin/python
2
3 import sys, os, string, oe
4 from oe import *
5
6 __version__ = 1.0
7 cfg_oe = data.init()
8
9 def usage():
10         print "Usage: oeinstall [options ...]"
11         print "Installs specified files of supported types into a root filesystem."
12         print "Supported types: tar.gz, ipk, deb, rpm"
13         print ""
14         print "  %s\t\t%s" % ("-r [arg], --root [arg]", "root directory (default=${IMAGE_ROOTFS})")
15         print "  %s\t\t%s" % ("-f [arg], --files [arg]", "files to install (default=${INSTALL_FILES})")
16         print "  %s\t\t%s" % ("-v, --version", "output version information and exit")
17         sys.exit(0)
18
19 def version():
20         print "OpenEmbedded Build Infrastructure Core version %s" % oe.__version__
21         print "OEInstall version %s" % __version__
22
23 def getopthash(l):
24         h = {}
25         for (opt, val) in l:
26                 h[opt] = val
27         return h
28
29 import getopt
30 try:
31         (opts, args) = getopt.getopt(sys.argv[1:], 'vr:f:', [ 'version', 'root=', 'files=' ])
32 except getopt.GetoptError:
33         usage()
34
35 # handle opts
36 opthash = getopthash(opts)
37
38 if opthash.has_key('--version') or opthash.has_key('-v'):
39         version()
40         sys.exit(0)
41
42 try:
43         cfg_oe = parse.handle("conf/oe.conf", cfg_oe)
44 except IOError:
45         fatal("Unable to open oe.conf")
46
47 # sanity check
48 if cfg_oe is None:
49         fatal("Unable to open/parse conf/oe.conf")
50         usage(1)
51
52 rootfs = data.getVar('IMAGE_ROOTFS', cfg_oe, 1)
53
54 if opthash.has_key('--root'):
55         rootfs = opthash['--root']
56 if opthash.has_key('-r'):
57         rootfs = opthash['-r']
58
59 if not rootfs:
60         oe.fatal("root filesystem not specified")
61
62 data.setVar('IMAGE_ROOTFS', rootfs, cfg_oe)
63
64 files = string.split(data.getVar('INSTALL_FILES', cfg_oe, 1) or "")
65
66 if opthash.has_key('--files'):
67         files = opthash['--files'].split()
68 if opthash.has_key('-f'):
69         files = opthash['-f'].split()
70
71 if not files:
72         oe.fatal("install files not specified")
73
74 data.setVar('INSTALL_FILES', files, cfg_oe)
75
76 # grab OEDIR
77 topdir = data.getVar('TOPDIR', cfg_oe, 1) or os.getcwd()
78 oedir = data.getVar('OEDIR', cfg_oe, 1) or topdir
79 mkdirhier(oedir)
80
81 for f in files:
82         oe.note("file is %s" % f)