You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.2 KiB
77 lines
2.2 KiB
#!/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")
|
|
|