[UPD] script todo refactor message and propose odoo installation
This commit is contained in:
parent
f4a6911217
commit
829f7564f4
2 changed files with 155 additions and 7 deletions
|
|
@ -20,5 +20,18 @@
|
||||||
"prompt_description": "Ouvrir ERPLibre avec TODO \uD83E\uDD16",
|
"prompt_description": "Ouvrir ERPLibre avec TODO \uD83E\uDD16",
|
||||||
"command": "./.venv/bin/python ./script/selenium/web_login.py"
|
"command": "./.venv/bin/python ./script/selenium/web_login.py"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"update_from_makefile": [
|
||||||
|
{
|
||||||
|
"prompt_description": "Update all erplibre_base on database test",
|
||||||
|
"makefile_cmd": "db_erplibre_base_db_test_update_all",
|
||||||
|
"database": "test"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code_from_makefile": [
|
||||||
|
{
|
||||||
|
"prompt_description": "Show code status",
|
||||||
|
"makefile_cmd": "repo_show_status"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,14 +16,70 @@ try:
|
||||||
import openai
|
import openai
|
||||||
from pykeepass import PyKeePass
|
from pykeepass import PyKeePass
|
||||||
except ModuleNotFoundError as e:
|
except ModuleNotFoundError as e:
|
||||||
|
# TODO auto-detect gnome-terminal, or choose another.
|
||||||
if os.path.exists(".venv"):
|
if os.path.exists(".venv"):
|
||||||
|
print("You forgot to activate source \nsource ./.venv/bin/activate")
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
"gnome-terminal -- bash -c './script/todo/source_todo.sh'",
|
"gnome-terminal -- bash -c './script/todo/source_todo.sh'",
|
||||||
shell=True,
|
shell=True,
|
||||||
executable="/bin/bash",
|
executable="/bin/bash",
|
||||||
)
|
)
|
||||||
print("You forgot to activate source \nsource ./.venv/bin/activate")
|
else:
|
||||||
|
first_installation_input = (
|
||||||
|
input(
|
||||||
|
"First installation? This will process system installation"
|
||||||
|
" before (Y/N): "
|
||||||
|
)
|
||||||
|
.strip()
|
||||||
|
.upper()
|
||||||
|
)
|
||||||
|
if first_installation_input == "Y":
|
||||||
|
subprocess.run(
|
||||||
|
"gnome-terminal -- bash -c"
|
||||||
|
" './script/version/update_env_version.py --install;bash'",
|
||||||
|
shell=True,
|
||||||
|
executable="/bin/bash",
|
||||||
|
)
|
||||||
|
print("Wait after OS installation before continue.")
|
||||||
|
|
||||||
|
# First detect pycharm, need to be open before installation and close to increase speed
|
||||||
|
result = subprocess.run(
|
||||||
|
["which", "pycharm"],
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE,
|
||||||
|
text=True,
|
||||||
|
)
|
||||||
|
if result.returncode == 0 and not os.path.exists(".idea"):
|
||||||
|
pycharm_configuration_input = (
|
||||||
|
input("Open Pycharm? (Y/N): ").strip().upper()
|
||||||
|
)
|
||||||
|
if pycharm_configuration_input == "Y":
|
||||||
|
subprocess.run(
|
||||||
|
"gnome-terminal -- bash -c 'pycharm .'",
|
||||||
|
shell=True,
|
||||||
|
executable="/bin/bash",
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
"Close Pycharm when processing is done before continue"
|
||||||
|
" this guide."
|
||||||
|
)
|
||||||
|
# Propose Odoo installation
|
||||||
|
# TODO detect last version supported
|
||||||
|
odoo_installation_input = (
|
||||||
|
input("Install Odoo 16? (Y/N): ").strip().upper()
|
||||||
|
)
|
||||||
|
if odoo_installation_input == "Y":
|
||||||
|
subprocess.run(
|
||||||
|
"gnome-terminal -- bash -c 'make install_odoo_16;bash'",
|
||||||
|
shell=True,
|
||||||
|
executable="/bin/bash",
|
||||||
|
)
|
||||||
|
print("Wait after installation and open projects by terminal.")
|
||||||
|
print("make open_terminal")
|
||||||
|
else:
|
||||||
|
print("Nothing to do, you need a fresh installation to continue.")
|
||||||
|
sys.exit(0)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# TODO implement urwid to improve text user interface
|
# TODO implement urwid to improve text user interface
|
||||||
|
|
@ -45,8 +101,8 @@ class TODO:
|
||||||
print("Ouverture de TODO en cours ...")
|
print("Ouverture de TODO en cours ...")
|
||||||
print("🤖 => Entre tes directives par son chiffre et fait Entrée!")
|
print("🤖 => Entre tes directives par son chiffre et fait Entrée!")
|
||||||
help_info = """Commande :
|
help_info = """Commande :
|
||||||
[1] Question
|
[1] Execute
|
||||||
[2] Execute
|
[2] Question
|
||||||
[3] Fork - Ouvre TODO 🤖 dans une nouvelle tabulation
|
[3] Fork - Ouvre TODO 🤖 dans une nouvelle tabulation
|
||||||
[0] Quitter
|
[0] Quitter
|
||||||
"""
|
"""
|
||||||
|
|
@ -57,9 +113,9 @@ class TODO:
|
||||||
if status == "0":
|
if status == "0":
|
||||||
break
|
break
|
||||||
elif status == "1":
|
elif status == "1":
|
||||||
self.execute_prompt_ia()
|
|
||||||
elif status == "2":
|
|
||||||
self.prompt_execute()
|
self.prompt_execute()
|
||||||
|
elif status == "2":
|
||||||
|
self.execute_prompt_ia()
|
||||||
elif status == "3":
|
elif status == "3":
|
||||||
cmd = (
|
cmd = (
|
||||||
f"gnome-terminal --tab -- bash -c 'source"
|
f"gnome-terminal --tab -- bash -c 'source"
|
||||||
|
|
@ -150,8 +206,10 @@ class TODO:
|
||||||
|
|
||||||
def prompt_execute(self):
|
def prompt_execute(self):
|
||||||
help_info = """Commande :
|
help_info = """Commande :
|
||||||
[1] Gérer une instance
|
[1] RUN Exécuter et installer une instance
|
||||||
[2] Fonction - Démonstration des fonctions développées
|
[2] EXEC Automatisation - Démonstration des fonctions développées
|
||||||
|
[3] UPD Mise à jour - Update all developed staging source code
|
||||||
|
[4] Code - Outil pour développeur
|
||||||
[0] Retour
|
[0] Retour
|
||||||
"""
|
"""
|
||||||
while True:
|
while True:
|
||||||
|
|
@ -167,6 +225,14 @@ class TODO:
|
||||||
status = self.prompt_execute_fonction()
|
status = self.prompt_execute_fonction()
|
||||||
if status is not False:
|
if status is not False:
|
||||||
return
|
return
|
||||||
|
elif status == "3":
|
||||||
|
status = self.prompt_execute_update()
|
||||||
|
if status is not False:
|
||||||
|
return
|
||||||
|
elif status == "4":
|
||||||
|
status = self.prompt_execute_code()
|
||||||
|
if status is not False:
|
||||||
|
return
|
||||||
else:
|
else:
|
||||||
print("Commande non trouvée 🤖!")
|
print("Commande non trouvée 🤖!")
|
||||||
|
|
||||||
|
|
@ -216,6 +282,9 @@ class TODO:
|
||||||
return help_info
|
return help_info
|
||||||
|
|
||||||
def prompt_execute_instance(self):
|
def prompt_execute_instance(self):
|
||||||
|
# TODO proposer le déploiement à distance
|
||||||
|
# TODO proposer l'exécution de docker
|
||||||
|
# TODO proposer la création de docker
|
||||||
lst_instance = self.get_config(["instance"])
|
lst_instance = self.get_config(["instance"])
|
||||||
help_info = self.fill_help_info(lst_instance)
|
help_info = self.fill_help_info(lst_instance)
|
||||||
|
|
||||||
|
|
@ -266,6 +335,72 @@ class TODO:
|
||||||
if cmd_no_found:
|
if cmd_no_found:
|
||||||
print("Commande non trouvée 🤖!")
|
print("Commande non trouvée 🤖!")
|
||||||
|
|
||||||
|
def prompt_execute_update(self):
|
||||||
|
# self.executer_commande_live(f"make {makefile_cmd}")
|
||||||
|
print("🤖 Mise à jour du développement")
|
||||||
|
# TODO détecter les modules en modification pour faire la mise à jour en cours
|
||||||
|
# TODO demander sur quel BD faire la mise à jour
|
||||||
|
# TODO proposer les modules manuelles selon la configuration à mettre à jour
|
||||||
|
# TODO proposer la mise à jour de l'IDE
|
||||||
|
# TODO proposer la mise à jour des git-repo
|
||||||
|
|
||||||
|
lst_instance = self.get_config(["update_from_makefile"])
|
||||||
|
help_info = self.fill_help_info(lst_instance)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
status = click.prompt(help_info)
|
||||||
|
print()
|
||||||
|
if status == "0":
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
cmd_no_found = True
|
||||||
|
try:
|
||||||
|
int_cmd = int(status)
|
||||||
|
if 0 < int_cmd <= len(lst_instance):
|
||||||
|
cmd_no_found = False
|
||||||
|
dct_instance = lst_instance[int_cmd - 1]
|
||||||
|
self.execute_from_configuration(dct_instance)
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
if cmd_no_found:
|
||||||
|
print("Commande non trouvée 🤖!")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def prompt_execute_code(self):
|
||||||
|
print("🤖 Qu'avez-vous de besoin pour développer?")
|
||||||
|
# help_info = """Commande :
|
||||||
|
# [1] Status Git local et distant
|
||||||
|
# [2] Démarrer le générateur de code
|
||||||
|
# [3] Format - Formatage automatique selon changement [ou manuelle]
|
||||||
|
# [4] Qualité - Qualité logiciel, détecter les fichiers qui manquent les licences AGPLv3
|
||||||
|
# [0] Retour
|
||||||
|
# """
|
||||||
|
# help_info = """Commande :
|
||||||
|
# [1] Status Git local et distant
|
||||||
|
# [0] Retour
|
||||||
|
# """
|
||||||
|
lst_instance = self.get_config(["code_from_makefile"])
|
||||||
|
help_info = self.fill_help_info(lst_instance)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
status = click.prompt(help_info)
|
||||||
|
print()
|
||||||
|
if status == "0":
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
cmd_no_found = True
|
||||||
|
try:
|
||||||
|
int_cmd = int(status)
|
||||||
|
if 0 < int_cmd <= len(lst_instance):
|
||||||
|
cmd_no_found = False
|
||||||
|
dct_instance = lst_instance[int_cmd - 1]
|
||||||
|
self.execute_from_configuration(dct_instance)
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
if cmd_no_found:
|
||||||
|
print("Commande non trouvée 🤖!")
|
||||||
|
return False
|
||||||
|
|
||||||
def kdbx_get_extra_command_user(self, kdbx_key):
|
def kdbx_get_extra_command_user(self, kdbx_key):
|
||||||
lst_value = []
|
lst_value = []
|
||||||
if kdbx_key:
|
if kdbx_key:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue