#!/usr/bin/env python3
import os, argparse

def addScreenToIgnoreList(ignoreFileName = '/tmp/fenrirSuspend', screen = '1', useCurrentScreen = True):
    if useCurrentScreen:
        tty = open('/sys/devices/virtual/tty/tty0/active','r')
        screen = str(tty.read()[3:-1])
    if not screen:
        print('No screen given.')
    ignoreScreens = []
    ignoreScreensStr = ''
    if ignoreFileName != '':
        if os.access(ignoreFileName, os.R_OK):
            with open(ignoreFileName, 'r') as fp:
                try:
                    ignoreScreens = []
                    content = str(fp.read())
                    if content != '':
                        ignoreScreens = content.split(',')
                except Exception as e:
                   print(e)
        added = False
        if not screen in ignoreScreens:
            ignoreScreens.append(screen)
            added = True
        ignoreScreensStr = ','.join(ignoreScreens)
           
        with open(ignoreFileName, 'w') as fp:
            fp.write(ignoreScreensStr) 
            if added:               
                print('Add screen {0} to ignore file:{1}'.format(screen, ignoreFileName))
            else:
                print('Screen {0} already exists in ignore file:{1}'.format(screen, ignoreFileName))       
            
if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Ignore screens in fenrir. If no screen is given use current screen.')
    parser.add_argument('-s', '--screen', metavar='SCREEN', default=None, help='Ignore a given screen. Use current screen as default.')
    parser.add_argument('-f', '--file', metavar='File', default='/tmp/fenrirSuspend', help='Specify the suspendingScreenFile')            
    try:
        args = parser.parse_args()
        ignoreFileName = args.file
        useCurrentScreen = False
        screen = None
        if args.screen:
            screen = args.screen
        else:
            useCurrentScreen = True     
        addScreenToIgnoreList(ignoreFileName, screen, useCurrentScreen)        
    except Exception as e:
        parser.print_help()    
