####################################
#                                  #
#        COPYRIGHT NOTICE          #
#                                  #
# This file is a part of Victori-  #
# ous Children Studio Organizer.   #
# Or simply VCStudio. Copyright    #
# of J.Y.Amihud. But don't be sad  #
# because I released the entire    #
# project under a GNU GPL license. #
# You may use Version 3 or later.  #
# See www.gnu.org/licenses if your #
# copy has no License file. Please #
# note. Ones I used the GPL v2 for #
# it. It's no longer the case.     #
#                                  #
####################################

import sys
import subprocess

# This is our main file. And untill now there was no love given to it. So I
# will attemt to polish this file quite a bit. Because the code I see now is
# just ugly. Anyway here we go.

# We probably need the following modules.
from settings import settings
from settings import talk


# Before we launch anything let's troubleshoot the bastard
if not settings.read("VCStudio-is-good")\
or not settings.read("Python-is-good")\
or not settings.read("Language"):
    from troubleshooter import troubleshooter

from troubleshooter import error_notify

# It's quite a good thing to use extensions for the software using arguments
# in the terminal. Stuff like -c console mode. Or other. So let's work on this

if len(sys.argv) > 1:
    command = sys.argv[1]
    
    # So here I gonna have the command so to speak.
    
    if command == "-t":
        # Trouble shooter. Why not.
        from troubleshooter import troubleshooter
    
    elif command == "-c":
        # Console mode. Why not.
        from project_manager import pm_console
        pm_console.run()
    
    elif command == "-ms":
        
        # This one is a bit harder. Because we need a project name.
        if len(sys.argv) > 2:
            projectname = sys.argv[2]
        else:
            projectname = input("Project Name: ")
        
        # Then will launch it. 
        subprocess.Popen(["python3", "network/multiuser_server.py", projectname])
    
    elif command == "-rm":
        # The read messages terminal app.
        from network import read_messages
    
    elif command == "-sm":
        # The read messages terminal app.
        from network import send_messages
    
    elif command == "-tc":
        # The read messages terminal app.
        from network import test_client
    
    else:
        
        # Well technically if they type --help or any other thing
        # it should give them a help page, right?
        
        print("VCStudio help page. For those of you, nerdy people.")
        print()
        print(" --help   Gives you this help page. I know obvious.")
        print(" -c       Console mode. Not all functions available.")
        print(" -t       Troubleshooter. Run Troubleshooter.")
        print(" -ms      Multiuser Server in terminal.")
        print(" -tc      Test Multiuser Client.")
        print(" -rm      Test Broadcast Reader.")
        print(" -sm      Test Broadcast Writer.")
        print()
        print()
    
    
else:
    from project_manager import pm_gtk

    # Some errors could happen while the program is running. Some things to
    # notify the user should be implemented.

    try:
        pm_gtk.run()
    except:
        error_notify.show()

# Yeah. Now it looks better.
