summaryrefslogtreecommitdiffstats
path: root/liveusb-creator
blob: 24cd2cd413e72cb96ab55e4c176da86efacf1938 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/python -tt
# coding: utf-8
#
# Copyright © 2008-2013  Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use, modify,
# copy, or redistribute it subject to the terms and conditions of the GNU
# General Public License v.2.  This program is distributed in the hope that it
# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the
# implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.  You should have
# received a copy of the GNU General Public License along with this program; if
# not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
# Floor, Boston, MA 02110-1301, USA. Any Red Hat trademarks that are
# incorporated in the source code or documentation are not subject to the GNU
# General Public License and may only be used or replicated with the express
# permission of Red Hat, Inc.
#
# Author(s): Luke Macken <lmacken@redhat.com>

import os
import sys

from liveusb import _

__version__ = '3.11.8'

def parse_args():
    from optparse import OptionParser
    parser = OptionParser(version=__version__)
    parser.add_option('-c', '--console', dest='console', action='store_true',
                      help='Use console mode instead of the GUI')
    parser.add_option('-f', '--force', dest='force', action='store',
                      type='string', help='Force the use of a given drive',
                      metavar='DRIVE')
    parser.add_option('-s', '--safe', dest='safe', action='store_true',
                      help='Use the "safe, slow and stupid" bootloader')
    parser.add_option('-n', '--noverify', dest='noverify', action='store_true',
                      help='Skip checksum verification')
    parser.add_option('-v', '--verbose', dest='verbose', action='store_true',
                      help='Output extra debugging messages')
    parser.add_option('-u', '--unprivileged', dest='unprivileged',
                      action='store_true', help='Allow not being root')
    parser.add_option('-k', '--extra-kernel-args', dest='kernel_args',
                      action='store', metavar='ARGS',
                      help='Supply extra kernel arguments'
                           ' (eg: -k noswap,selinux=0,elevator=noop)')
    parser.add_option('-x', '--no-xo', dest='xo', action='store_false',
                      default=True, help='Disable OLPC support')
    parser.add_option('-m', '--reset-mbr', dest='reset_mbr',
                      action='store_true', default=False,
                      help='Reset the Master Boot Record')
    parser.add_option('-C', '--device-checksum', dest='device_checksum',
                      action='store_true', default=False,
                      help='Calculate the SHA1 of the device')
    parser.add_option('-L', '--liveos-checksum', dest='liveos_checksum',
                      action='store_true', default=False,
                      help='Calculate the SHA1 of the device')
    parser.add_option('-H', '--hash', dest='hash',
                      action='store', metavar='HASH', default='sha1',
                      help='Use a specific checksum algorithm (default: sha1)')
    parser.add_option('--clone', dest='clone', action='store_true',
                      help='Clone the currently running Live system')
    #parser.add_option('-F', '--format', dest='format', action='store_true', default=False,
    #                  help='Format the device as FAT32 (WARNING: destructive)')
    parser.add_option('-P', '--partition', dest='partition', action='store_true', default=False,
                      help='Partition the device')
    #parser.add_option('-z', '--usb-zip', dest='zip', action='store_true',
    #                  help='Initialize device with zipdrive-compatible geometry'
    #                        ' for booting in USB-ZIP mode with legacy BIOSes. '
    #                        'WARNING:  This will erase everything on your '
    #                        'device!')
    return parser.parse_args() # (opts, args)


def main():
    opts, args = parse_args()
    if opts.console:
        from liveusb import LiveUSBCreator
        try:
            live = LiveUSBCreator(opts)
            live.detect_supported_drives()
            live.verify_filesystem()
            live.extract_iso()
            live.update_configs()
            live.install_bootloader()
        except Exception, e:
            print str(e)
        x = raw_input("\nDone!  Press any key to exit")
    else:
        ## Start our graphical interface
        from liveusb.gui import LiveUSBApp
        try:
            LiveUSBApp(opts, sys.argv)
        except KeyboardInterrupt:
            pass

if __name__ == '__main__':
    main()