aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2014-04-10 19:47:15 +0200
committerMattias Andrée <maandree@operamail.com>2014-04-10 19:47:15 +0200
commit7b65821bb7049b432153fa169d826682726655c1 (patch)
tree0f8f8fd4054ea89265639f6c14fa7fa64a16dfd8
parentparsing of options (diff)
downloadnightshift-7b65821bb7049b432153fa169d826682726655c1.tar.gz
nightshift-7b65821bb7049b432153fa169d826682726655c1.tar.bz2
nightshift-7b65821bb7049b432153fa169d826682726655c1.tar.xz
parse all options
Signed-off-by: Mattias Andrée <maandree@operamail.com>
-rwxr-xr-xsrc/nightshift.py42
1 files changed, 36 insertions, 6 deletions
diff --git a/src/nightshift.py b/src/nightshift.py
index 96fac4f..46b3dab 100755
--- a/src/nightshift.py
+++ b/src/nightshift.py
@@ -71,7 +71,7 @@ red_args = None
:list<str>? Raw arguments passed to redshift
'''
-red_opts = []
+red_opts = ['-v']
'''
:list<str> Nightshift parsed options passed to redshift
'''
@@ -203,6 +203,35 @@ for arg in sys.argv[1:]:
# Construct name of socket
socket_path = '%s.%s~%s' % ('/dev/shm/', PROGRAM_NAME, os.environ['USER'])
+
+
+def run_as_daemon(sock):
+ ## TODO (for testing)
+ import signal
+ while True:
+ signal.pause()
+
+
+if daemon:
+ if kill or toggle or status:
+ print('%s: error: -x, +x and -s can be used when running as the daemon' % sys.argv[0])
+ sys.exit(1)
+
+ # Create server socket
+ os.unlink(socket_path)
+ sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ sock.bind(socket_path)
+ sock.listen(5)
+
+ # Perform daemon logic
+ run_as_daemon(sock)
+
+ # Close socket
+ sock.close()
+ # Close process
+ sys.exit(0)
+
+
# Create socket
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
try:
@@ -242,10 +271,8 @@ if sock is None:
# Close the pipe
os.close(r_end)
- ## TODO (for testing)
- import signal
- while True:
- signal.pause()
+ # Perform daemon logic
+ run_as_daemon(sock)
# Close socket
sock.close()
@@ -269,7 +296,10 @@ if sock is None:
try:
- proc = Popen(['redshift', '-v'], stdout = PIPE, stderr = open(os.devnull))
+ command = ['redshift'] + red_opts
+ if red_args is not None:
+ command += red_args
+ proc = Popen(command, stdout = PIPE, stderr = open(os.devnull))
red_brightness, red_period, red_temperature, red_running, red_status = 1, 1, 6500, True, True
red_condition = threading.Condition()