forked from developer-ishan/coding_template
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtemplate
More file actions
executable file
·141 lines (113 loc) · 4.53 KB
/
template
File metadata and controls
executable file
·141 lines (113 loc) · 4.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#! /usr/bin/python3
import getopt, sys, os
homedir = homedir = os.environ['HOME']
ROOT = os.path.join(homedir,'bin/coding_template')
languages_file = open(os.path.join(ROOT,'languages'),'r+')
LANGUAGES = languages_file.read().split('\n')
# Remove 1st argument from the
# list of command line arguments
argumentList = sys.argv[1:]
# Options
options = "hi:e:c:va"
# Long options
long_options = ["help", "init", "edit","create","version","all"]
def show_help_options():
print("Displaying Help")
help = open(os.path.join(ROOT,'help.txt'),'r')
print(help.read())
def edit_template(ext):
if not '.' in ext:
ext = '.'+ext
template = os.path.join(ROOT,ext)
if os.path.exists(template):
os.system("code "+template)
else:
print(f"No template exist for {ext} files\nwould you like to create one (y/n):")
option = input()
if(option=='y' or option =='Y'):
create_new_template(ext)
def create_new_template(ext=""):
extension=""
if ext=="":
print("Enter the file extension of the language.")
ext = input()
# with the help of this function user can give names in following ways:
# filename.extension
# .extension
# extension
extension=ext
if not '.' in ext:
print("no . in ext")
extension = '.'+ext
languages_file.write('\n')
languages_file.write(extension)
template = os.path.join(ROOT,extension)
if not os.path.exists(template):
os.system("code "+template)
else:
print(f"template for {extension} file already exist.\nwould you like to make changes in it (y/n): ")
option = input()
if(option=='y' or option =='Y'):
edit_template(extension)
def generate_file(file_name,file_extension):
if(file_extension in LANGUAGES):
new_file = os.path.join(os.getcwd(),f"{file_name}{file_extension}")
template_path = os.path.join(ROOT,file_extension)
if os.path.exists(template_path):
print(f"generating {file_name}{file_extension} file")
template = open(template_path,"r")
template_code = template.read()
new_file_obj = open(new_file,'w')
new_file_obj.write(template_code)
os.system("code "+new_file)
else:
print(f"template file not saved\ngenerating template for {file_extension} file")
# since the file was not saved
# deleting its name from languages file
with open(os.path.join(ROOT,'languages'), "r") as f:
lines = f.readlines()
os.remove(os.path.join(ROOT,'languages'))
with open(os.path.join(ROOT,'languages'), "w") as f:
for line in lines:
f.write(line)
create_new_template(file_extension)
else :
print(f"No template exist for {file_extension} files\nwould you like to create one (y/n):")
option = input()
if(option=='y' or option =='Y'):
create_new_template(file_extension)
try:
# Parsing argument
arguments, values = getopt.getopt(argumentList,options,long_options)
#checking each argument
for currentArgument, currentValue in arguments:
if currentArgument in ("-v","--version"):
print("1.0.0")
elif currentArgument in ("-h","--help"):
show_help_options()
elif currentArgument in ("-i","--init"):
if currentValue.startswith("."):
print("please enter file name also")
exit()
file_name, file_extension = os.path.splitext(currentValue)
if file_extension=='':
print("please write file extension at the end.")
exit()
generate_file(file_name,file_extension)
elif currentArgument in ("-e","--edit"):
file_extension=currentValue
if not currentValue.startswith("."):
file_extension = os.path.splitext(currentValue)[1]
edit_template(file_extension)
elif currentArgument in ("-c","--create"):
file_extension=currentValue
if not currentValue.startswith("."):
file_extension = os.path.splitext(currentValue)[1]
create_new_template(file_extension)
elif currentArgument in ("-a","--all"):
f = open(os.path.join(ROOT,'languages'), "r")
for x in f:
print(x.rstrip())
f.close()
except getopt.error as err:
print (str(err))