diff --git a/AVP/AVP02/240901AVP01 tes test.txt b/AVP/AVP02/240901AVP01 tes test.txt deleted file mode 100644 index e69de29..0000000 diff --git a/AVP/AVP03/240901AVP01 tes test.txt b/AVP/AVP03/240901AVP01 tes test.txt deleted file mode 100644 index e69de29..0000000 diff --git a/AVP/AVP04/240901AVP04 tes test.txt b/AVP/AVP04/240901AVP04 tes test.txt deleted file mode 100644 index e69de29..0000000 diff --git a/AVP/AVP05/240901AVP05 Untitled.png b/AVP/AVP05/240901AVP05 Untitled.png deleted file mode 100644 index 564854c..0000000 Binary files a/AVP/AVP05/240901AVP05 Untitled.png and /dev/null differ diff --git a/AVP/AVP05/240901AVP05 tes test.txt b/AVP/AVP05/240901AVP05 tes test.txt deleted file mode 100644 index e69de29..0000000 diff --git a/AVP/AVP05/Pasted image 20231031073718.png b/AVP/AVP05/Pasted image 20231031073718.png deleted file mode 100644 index 13e7553..0000000 Binary files a/AVP/AVP05/Pasted image 20231031073718.png and /dev/null differ diff --git a/GestionVersion2.0.py b/GestionVersion2.1.py similarity index 76% rename from GestionVersion2.0.py rename to GestionVersion2.1.py index 9b7b5d1..6235b05 100644 --- a/GestionVersion2.0.py +++ b/GestionVersion2.1.py @@ -1,21 +1,37 @@ import os import datetime +#If colorama is not installed, notify the user +try: + from colorama import init, Fore, Style +except ImportError: + print("Please install the colorama module using 'pip install colorama' to enable colored text.") + Fore = Style = lambda x: x -current_directory = os.path.dirname(os.path.abspath(__file__)) # Get the current directory -debug_mode = False -source_directory = os.path.join(current_directory, "AVP") # Set the source directory to the 'Projets' directory +debug_mode = True + +# Initialize colorama +init() # Function to pause if debug mode is enabled def pause_debug(message="No message provided."): if debug_mode: - input(message+"\nPlease press a key to continue.") + input(Fore.YELLOW + "[DEBUG] " + message + " - Enter to continue.\n" + Style.RESET_ALL) + + + +current_directory = os.path.dirname(os.path.abspath(__file__)) # Get the current directory +os.chdir(current_directory) +pause_debug(f"Current directory: {current_directory}") + +avp_directory = os.path.join(current_directory, "AVP") # Set the source directory to the 'Projets' directory +pause_debug(f"AVP directory: {avp_directory}") def createNewProject(): - pause_debug("Checked parent directory. It is named 'Projets'.") + # Prompt the user for the project name - project_name = input("Enter the project name: ") + project_name = input("Enter the project name:\n") pause_debug(f"Project name entered: {project_name}") # Get the current year and month @@ -25,7 +41,13 @@ def createNewProject(): # Get all folders starting with the current year and month in the source directory pattern = f"{current_year} {current_month}" - folders = [f for f in os.listdir(source_directory) if os.path.isdir(os.path.join(source_directory, f)) and f.startswith(pattern)] + pause_debug(f"Pattern to search for: {pattern}") + + folders = [f for f in os.listdir(current_directory) if os.path.isdir(os.path.join(current_directory, f)) and f.startswith(pattern)] + if not folders: + latest_number = 0 + else: + latest_number = max(int(f.split()[2]) for f in folders) pause_debug(f"Folders matching pattern '{pattern}' found: {', '.join(folders)}") # Find the folder with the largest number after the year and month @@ -41,19 +63,27 @@ def createNewProject(): pause_debug(f"New folder name: {new_folder_name}") # Create the new folder - new_folder_path = os.path.join(source_directory, new_folder_name) + new_folder_path = os.path.join(current_directory, new_folder_name) print(f"Creating new folder: {new_folder_name}") os.makedirs(new_folder_path, exist_ok=True) pause_debug(f"New folder created: {new_folder_path}") + # Copy this file to the new folder + source_file = os.path.abspath(__file__) + destination_file = os.path.join(new_folder_path, os.path.basename(__file__)) + with open(source_file, 'rb') as src_file: + with open(destination_file, 'wb') as dst_file: + dst_file.write(src_file.read()) + pause_debug(f"File copied to new folder: {destination_file}") + def createNewAVP(): # Creating AVP folders - folders = [f for f in os.listdir(source_directory) if os.path.isdir(os.path.join(source_directory, f)) and f.startswith("AVP")] + folders = [f for f in os.listdir(avp_directory) if os.path.isdir(os.path.join(avp_directory, f)) and f.startswith("AVP")] pause_debug(f"Folders found: {', '.join(folders)}") if not folders: print("No folders found. Creating first folder: AVP01") - os.makedirs(os.path.join(source_directory, "AVP01"), exist_ok=True) + os.makedirs(os.path.join(avp_directory, "AVP01"), exist_ok=True) pause_debug("First folder created: AVP01") else: pause_debug("Finding the latest folder") @@ -65,15 +95,15 @@ def createNewAVP(): input(f"\nWould you like to create {new_folder_name}? Press any key to continue or CTRL+C to exit...") pause_debug(f"User confirmed creation of new folder: {new_folder_name}") - new_folder_path = os.path.join(source_directory, new_folder_name) + new_folder_path = os.path.join(avp_directory, new_folder_name) print(f"Creating {new_folder_name}") os.makedirs(new_folder_path, exist_ok=True) pause_debug(f"New folder created: {new_folder_path}") - print(f"Copying files from {source_directory} to {new_folder_name} :") + print(f"Copying files from {avp_directory} to {new_folder_name} :") # Copy files from the last folder to the new folder - last_folder_path = os.path.join(source_directory, f"AVP{str(latest_number).zfill(2)}") + last_folder_path = os.path.join(avp_directory, f"AVP{str(latest_number).zfill(2)}") for filename in os.listdir(last_folder_path): source_file = os.path.join(last_folder_path, filename) if os.path.isfile(source_file): @@ -126,15 +156,16 @@ def displayHelp(): def main(): displayWelcomeMessage() - + # Check if the current directory is a parent directory named "Projets", and if so, ask the user if they want to initiate a new project - if os.path.basename(os.path.dirname(source_directory)) == "Projets": - choice = input("You are in a parent directory named \"Projets\". Would you like to initiate a new project ? (y/n)").strip().upper() + if os.path.basename(os.path.dirname(avp_directory)) == "Projets": + pause_debug("Checked parent directory. It is named 'Projets'.") + choice = input("You are in a parent directory named \"Projets\". Would you like to initiate a new project ? (y/n)\n").strip().upper() if choice == 'Y': - createNewProject() # Check if there is an AVP folder in the current directory, and if so, ask the user if they want to make a new AVP + elif "AVP" in os.listdir(current_directory): choice = input("You seem to be in a project directory. Would you like to make a new AVP ? (y/n)\n").strip().upper() if choice == 'Y': @@ -144,6 +175,7 @@ def main(): print("invalid choice. Please try again.") # If the user is not in a parent directory named "Projets" or an AVP directory, display the menu + else: while True: display_menu() diff --git a/Projets/AVP/2024 10 1 ssss/GestionVersionV1.0.ps1 b/GestionVersionV1.0.ps1 similarity index 100% rename from Projets/AVP/2024 10 1 ssss/GestionVersionV1.0.ps1 rename to GestionVersionV1.0.ps1 diff --git a/Projets/GestionVersionV1.0.ps1 b/Projets/GestionVersionV1.0.ps1 deleted file mode 100644 index 44df0e6..0000000 --- a/Projets/GestionVersionV1.0.ps1 +++ /dev/null @@ -1,71 +0,0 @@ - -# Define the source directory -$sourceDirectory = ".\AVP" - -# Check if the parent directory is named "Projets" -$parentDirectory = Split-Path -Path $sourceDirectory -Parent -if ((Split-Path -Path $parentDirectory -Leaf) -eq "Projets") { - # Prompt the user for the project name - $projectName = Read-Host "Enter the project name" - - # Get the current year and month - $currentYear = (Get-Date).Year - $currentMonth = (Get-Date).Month.ToString("D2") - - # Get all folders starting with the current year and month in the source directory - $pattern = "$currentYear $currentMonth*" - $folders = Get-ChildItem -Path $sourceDirectory -Directory | Where-Object { $_.Name -like $pattern } - - # Find the folder with the largest number after the year and month - if ($folders.Count -eq 0) { - $newNumber = 1 - } else { - $latestFolder = $folders | Sort-Object -Property { [int]($_.Name -replace "[^\d]") } | Select-Object -Last 1 - $latestNumber = [int]($latestFolder.Name -replace "[^\d]") - $newNumber = $latestNumber + 1 - } - - # Create the new folder name - $newFolderName = "$currentYear $currentMonth $newNumber $projectName" - - # Create the new folder - $newFolderPath = Join-Path -Path $sourceDirectory -ChildPath $newFolderName - Write-Host "Creating new folder: $newFolderName" - New-Item -ItemType Directory -Path $newFolderPath -ErrorAction SilentlyContinue - - # Copy the current script to the new folder - $currentScriptPath = $MyInvocation.MyCommand.Path - Copy-Item -Path $currentScriptPath -Destination $newFolderPath -ErrorAction SilentlyContinue - - # Create "AVP" and "Donnees" folders inside the new folder - New-Item -ItemType Directory -Path (Join-Path -Path $newFolderPath -ChildPath "AVP") -ErrorAction SilentlyContinue - New-Item -ItemType Directory -Path (Join-Path -Path $newFolderPath -ChildPath "Donnees") -ErrorAction SilentlyContinue - - -} else { - # Existing logic for creating AVP folders - Write-Host "Getting folders in $sourceDirectory" - $folders = Get-ChildItem -Path $sourceDirectory -Directory | Where-Object { $_.Name -like "AVP*" } - - if ($folders.Count -eq 0) { - Write-Host "No folders found. Creating first folder: AVP01" - New-Item -ItemType Directory -Path (Join-Path -Path $sourceDirectory -ChildPath "AVP01") -ErrorAction SilentlyContinue - return - } - - Write-Host "Finding the latest folder" - $latestFolder = $folders | Sort-Object -Property { [int]($_.Name -replace "[^\d]") } | Select-Object -Last 1 - - $latestNumber = [int]($latestFolder.Name -replace "[^\d]") - $newNumber = $latestNumber + 1 - $newFolderName = "AVP" + $newNumber.ToString().PadLeft(2, '0') - - Write-Host "`nFolders found:" - $folders | ForEach-Object { Write-Host $_.Name } - Write-Host "`nWould you like to create the next AVP "$newFolderName" ? Press any key to continue or CTRL+C to exit..." - $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") - - $newFolderPath = Join-Path -Path $sourceDirectory -ChildPath $newFolderName - Write-Host "Creating new folder: $newFolderName" - New-Item -ItemType Directory -Path $newFolderPath -ErrorAction SilentlyContinue -} \ No newline at end of file