#!/usr/bin/python import sys, os, re, datetime, subprocess working_path = os.getcwd() def get_project_codes(): project_codes = [] files = os.listdir( working_path ) for f in files: code=re.findall("[0-9]{5}_[A-Z]{3}[0-9]{3}",f) if code != []: project_codes.append(code[0]) project_codes.sort() return project_codes def get_clients_codes(): client_codes = [] for code in get_project_codes(): client_code = code[6:9] if client_code not in client_codes: client_codes.append(client_code) return client_codes def get_project_structure( my_path ): dirs = list() for (dirpath, dirnames, files) in os.walk(my_path): dirs += [os.path.join(dirpath, d)[len(my_path)+1:] for d in dirnames] return dirs def new_project(): #print( "current clients are : ") codes = "" for code in get_clients_codes(): codes += code + "," client = input("enter client code:") #client = str(subprocess.check_output("echo '" + codes + "' | rofi -dmenu -i -format s -sep ',' -p 'current clients are'", shell=True)) #client = client[2:5].upper() client = client[0:3].upper() project_codes = get_project_codes() client_project_n = str( project_codes ).count(client) + 1 project_n = int(project_codes[-1][2:5])+1 project = input("enter project name:") #project = str(subprocess.check_output("rofi -dmenu -i -format s -p 'enter project name'", shell=True))[2:-3] project = project.replace(" ","_").title() new_folder = datetime.datetime.now().strftime("%y")+str(project_n).zfill(3)+"_"+client+str(client_project_n).zfill(3)+"_"+project struct = get_project_structure("/media/TioTigre/00_libreria/tigre_struct") if not os.path.lexists( new_folder ): os.mkdir( new_folder) for d in struct: if not os.path.lexists( new_folder+os.sep+d ): os.mkdir( new_folder+os.sep+d ) def create_todays_folder(): todays_folder=(datetime.datetime.now().strftime("%y%m%d")) if not os.path.lexists( todays_folder ): os.mkdir( todays_folder ) if sys.argv.count("--newproj") > 0 or sys.argv.count("-n") > 0 : new_project() if sys.argv.count("--today") > 0 or sys.argv.count("-t") > 0 : create_todays_folder() elif sys.argv.count("--debug") > 0 : subprocess else: print("error : no valid arguments given")