diff --git a/tools.py b/tools.py new file mode 100644 index 0000000..774573e --- /dev/null +++ b/tools.py @@ -0,0 +1,71 @@ +import os +import shutil +import threading +import subprocess +from consolemenu import * +from consolemenu.items import * +from consolemenu.screen import Screen +import bottombar as bb + +logo = """ + +\033[1m\033[94m _____ \033[0m_\033[94m _\033[0m +\033[94m\033[1m\033[94m _ __ ___| ___\033[0m(_)\033[94m | ___\033[0m +\033[1m\033[94m| '__/ _ \ |_ | | |/ __|\033[0m +\033[1m\033[94m| | | __/ _| | | | (__ \033[0m +\033[1m\033[94m|_| \___|_| |_|_|\___|\033[0m + +""" # Just fancy refilc logo + +menu = ConsoleMenu(logo, "Tools to help with your development <3") +settings_menu = ConsoleMenu() + +# Variable to hold verbose state +verbose_value = True # Default to True + +def settings(): + settings_menu.show() + + +def build(): + # Clear the screen + Screen.clear() + + # Execute the build command and capture its output + build_command = "cd refilc && flutter build apk" + process = subprocess.Popen(build_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + + # Print "Building..." at the bottom of the terminal + with bb.add("asd", label='time', right=True, refresh=1): + + + # Print the output of the build command + for line in process.stdout: + print(line.decode().strip()) + + # Wait for the process to finish + process.wait() + + # Clear the "Building..." message + print(" " * 10, end="\r") + + +def toggle_verbose(): + global verbose_value + verbose_value = not verbose_value + # Update verbose menu item text based on the new state + verbose_item.text = "Toggle verbose output [X]" if verbose_value else "Toggle verbose output [ ]" + + +# Main menu items +build_item = FunctionItem("🛠 ~ Build", build) +settings_item = FunctionItem("⚙ ~ Settings", settings) +menu.append_item(build_item) +menu.append_item(settings_item) + +# Settings menu items +verbose_item = FunctionItem("Toggle verbose output [X]" if verbose_value else "Toggle verbose output [ ]", toggle_verbose) +settings_menu.append_item(verbose_item) + +if __name__ == "__main__": + menu.show()