123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- # THIS FILE IS A PART OF VCStudio
- # PYTHON 3
- # This a console project manager.
- import os
- try:
- w, h = os.get_terminal_size()
- except:
- w, h, = 50,50
- from settings import settings
- from settings import talk
- from project_manager import pm_project
- # COMPLITTER
- try:
- import readline
- except:
- pass
- commands1 = [
- "help",# - help dialogue.
- "set_language",# - changes language settings.
- "projects_list",# - see projects list.
- "set_folder",# - set a folder where a new project is created.
- "new_project",# - creates a new project.
- "project",# - launch a given project.
- "scan",# - scans systems for VCStudio or Blender-Organizer projects.
- "convert",# - convert Blender-Organizer project to VCStudio project. (Please have a back up when using this one.)
- "exit"#
- ]
- commands = commands1.copy()
- def completer(text, state):
- options = [i for i in commands if i.startswith(text)]
- if state < len(options):
- return options[state]
- else:
- return None
- try:
- readline.parse_and_bind("tab: complete")
- readline.set_completer(completer)
- except:
- print("NO TABS, SORRY!")
- def cls():
- #cleaning the terminal
- os.system("clear")
-
- def run():
-
- cls()
-
-
-
- print("\033[1;33m\n VCStudio - Console \n")
-
- print("\033[1;32m"+talk.text("PMConsoleExplanation")+"\n")
-
-
- while True:
-
- # making sure Tab is doing autocomlete to the right functions
- global commands
- commands = commands1.copy()
-
- command = input("\033[1;35m : \033[1;m")
-
- ##############
-
- if command == "exit":
- cls()
- exit()
-
- ##############
-
- elif command == "help":
-
- print("\033[1;32m"+talk.text("pm_console_help")+"\n")
-
- ##############
-
- elif command == "set_language":
- # Getting list of available languages
-
- commands = []
- for lang in settings.list_languages():
- print("\033[1;35m "+lang)
- commands.append(lang)
-
-
- # special input for languages
- nlang = input("\033[1;33m : ")
-
- if nlang in settings.list_languages():
- settings.write("Language",nlang)
- print("\033[1;32m"+talk.text("checked"))
-
- else:
- print("\033[1;31m"+talk.text("failed"))
-
- ##############
-
-
- elif command == "set_folder":
- if settings.read("New-Project-Folder"):
- print("\033[1;35m"+talk.text("Current")+\
- " : "+settings.read("New-Project-Folder"))
-
- nfol = input("\033[1;33m : ")
- if nfol:
- if os.path.exists(nfol):
- settings.write("New-Project-Folder", nfol)
- else:
- print("\033[1;31m"+talk.text("failed"))
-
- ##############
-
- elif command == "new_project":
- if not settings.read("New-Project-Folder"):
- print("\033[1;33m"+talk.text("pm-do-new-project-error"))
-
- #if folder is configured
- else:
- nproj = input("\033[1;33m "+talk.text("Name")+" : ")
-
- if pm_project.new(nproj):
- print("\033[1;32m"+talk.text("checked"))
- else:
- print("\033[1;31m"+talk.text("failed"))
-
-
- ##############
-
- elif command == "projects_list":
- # Getting list of available projects
- for p in pm_project.get_list():
- print("\033[1;35m "+p)
-
- ##############
-
- elif command == "project":
-
- commands = pm_project.get_list()
-
- n = input("\033[1;33m : ")
- print("\033[1;35m "+talk.text("Wait"))
- pm_project.load(n)
-
-
- ##############
-
- elif command == "scan":
- print("\033[1;35m "+talk.text("Wait"))
- for proj in pm_project.scan():
- print("\033[1;35m "+proj)
-
-
- ##############
-
- elif command == "convert":
- print("\nNot Implemented yet\n")
-
- ## FAIL ##
-
- elif command != "":
- print("\033[1;31m"+talk.text("failed"))
-
-
- print("\033[1;m") #return terminal to normality
|