-#!/usr/bin/python2.7
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
# vim: set et ts=4:
# License: This file is licensed under the GPL v2.
###############################################################################
-# Requires python 2.6 or, possibly, a newer version of python 2.X.
-
import fileinput, os, subprocess, sys, tempfile, time, traceback
from optparse import OptionParser
v = self.data[k]
if isinstance(v, list):
v = '" "'.join(v)
- elif not isinstance(v, basestring): # int, others
+ elif not isinstance(v, str): # int, others
v = str(v)
elif '-' in v: # sync range
pass
lines.extend(f.readlines())
f.close()
except:
- print 'W: Error while getting bootparams from %s' % p
+ print('W: Error while getting bootparams from %s' % p)
f = open('/proc/cmdline')
lines.append(f.readline())
f.close()
- walk_bootparams_path('/cdrom/bootparams')
- walk_bootparams_path('/live/image/bootparams')
+ walk_bootparams_path('/lib/live/mount/medium/bootparams')
+ walk_bootparams_path('/run/live/medium/bootparams')
params = {}
for p in ' '.join(lines).split(' '):
if '=' in p:
return None
-XORG_CONF_HEADER = "# Automatically generated by grml-x."
+XORG_CONF_HEADER = "# Automatically generated by grml-x.\n"
def check_old_xorg_conf(filename, overwrite):
# True: no problem, we can create/overwrite the config file
# False: pre-existing config file, and we are not to overwrite it
if overwrite: return True
if not os.path.exists(filename): return True
try:
- f = file(filename, 'r')
+ f = open(filename, 'r')
lines = f.readlines()
f.close()
return (not XORG_CONF_HEADER in lines)
bootparams = build_bootparams()
if os.getuid() == 0 and options.start_server:
- print "W: running as root is unsupported and may not work."
+ print("W: running as root is unsupported and may not work.")
time.sleep(1)
if not check_old_xorg_conf(options.xorg_conf, options.overwrite):
- print "E: Not overwriting existing %r without --force." % options.xorg_conf
- print "I: If you previously ran grml-x, use startx /usr/bin/x-window-manager"
+ print("E: Not overwriting existing %r without --force." % options.xorg_conf)
+ print("I: If you previously ran grml-x, use startx /usr/bin/x-window-manager")
return 1
if 'xmode' in bootparams and not options.mode: options.mode = bootparams['xmode']
if len(args) == 1: window_manager = args[0]
window_manager_path = which(window_manager)
if not window_manager_path:
- print "E: Cannot find window manager %r, aborting." % window_manager
+ print("E: Cannot find window manager %r, aborting." % window_manager)
return 2
wm_exec = "exec %s\n" % window_manager_path
for line in lines:
if line.strip().startswith('exec '): line = wm_exec
f.write(line)
- os.fchmod(f.fileno(), 0750)
+ os.fchmod(f.fileno(), 0o750)
f.close()
# write new config
if monitor or device or len(screen.data) > 0 or screen.subsect != '':
try:
- f = tempfile.NamedTemporaryFile(delete=False)
- f.write(XORG_CONF_HEADER + "\n")
+ f = tempfile.NamedTemporaryFile(mode='w+', delete=False)
+ f.write(XORG_CONF_HEADER)
f.write("# DO NOT MODIFY, YOUR CHANGES WILL BE LOST - OR REMOVE ALL HEADER LINES\n")
f.write("# See man xorg.conf or /etc/X11/xorg.conf.example for more\n")
if monitor: f.write(str(monitor))
if device: f.write(str(device))
f.write(str(screen))
f.flush()
- os.fchmod(f.fileno(), 0644)
+ os.fchmod(f.fileno(), 0o644)
run_program(['sudo', 'mv', '-f', f.name, options.xorg_conf])
finally:
f.close()
if options.start_server:
startx = ['startx', xinitrc, '--']
if options.display: startx.append(':' + options.display)
- print "Starting X: %r" % startx
+ print("Starting X: %r" % startx)
run_program(startx)
return 0
try:
rc = main()
except Exception:
- print "E: Exception: ",
+ print("E: Exception: ", end=' ')
traceback.print_exc()
sys.exit(1)