projects
/
lilass.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
complain if a connector is both internal and external
[lilass.git]
/
dsl.py
diff --git
a/dsl.py
b/dsl.py
index d5802764c5e8c6167d05c000b5816fdb7606d8b5..fd7f10882758222588539255d61b9081db6a90c9 100755
(executable)
--- a/
dsl.py
+++ b/
dsl.py
@@
-51,8
+51,10
@@
def getXrandrInformation():
connectors = {} # map of connector names to a list of resolutions
connector = None # current connector
for line in p.stdout:
connectors = {} # map of connector names to a list of resolutions
connector = None # current connector
for line in p.stdout:
- # ignore screens
- if line.startswith("Screen"):
+ # screen?
+ m = re.search(r'^Screen [0-9]+: ', line)
+ if m is not None: # ignore this line
+ connector = None
continue
# new connector?
m = re.search(r'^([\w\-]+) (dis)?connected ', line)
continue
# new connector?
m = re.search(r'^([\w\-]+) (dis)?connected ', line)
@@
-66,7
+68,12
@@
def getXrandrInformation():
if m is not None:
assert connector is not None
connectors[connector].append((int(m.groups()[0]), int(m.groups()[1])))
if m is not None:
assert connector is not None
connectors[connector].append((int(m.groups()[0]), int(m.groups()[1])))
+ continue
+ # unknown line
+ raise Exception("Unknown line in xrandr output:\n"+line)
+ # be sure to always proprly finish up with the xrandr
p.communicate()
p.communicate()
+ # if everything succeededso far, check return code
if p.returncode != 0: raise Exception("Querying xrandr for data failed.")
return connectors
if p.returncode != 0: raise Exception("Querying xrandr for data failed.")
return connectors
@@
-114,7
+121,9
@@
def main():
externalConnectors = config['externalConnectors']
for connector in externalConnectors:
if not connector in connectors:
externalConnectors = config['externalConnectors']
for connector in externalConnectors:
if not connector in connectors:
- raise Exception("Connector %s does not exist, there is an error in your config file." % internalConnector)
+ raise Exception("Connector %s does not exist, there is an error in your config file." % connector)
+ if connector == internalConnector:
+ raise Exception("%s is both internal and external, that doesn't make sense." % connector)
else:
externalConnectors = connectors.keys()
externalConnectors.remove(internalConnector)
else:
externalConnectors = connectors.keys()
externalConnectors.remove(internalConnector)