-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreate.sh
executable file
·93 lines (82 loc) · 1.7 KB
/
create.sh
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
#!/usr/bin/env bash
source .git_aliases/_config.sh
source .git_aliases/_printColor.sh
source .git_aliases/_help.sh
source .git_aliases/_question.sh
function nameGet(){
local result=$1
local qName=$(questionGet "Alias name" "True")
if [ -n "`echo $qName | grep -o "^[a-zA-Z0-9]\+$"`" ]
then
eval "$result=\"$qName\""
else
printC "Wrong name. Try again." red
nameGet $result
fi
}
function nameCheckExists(){
local name="$1.sh"
if [ -e .git_aliases/$name ]
then
return 0
else
return 1
fi
}
function configChange(){
local modulesName=$1
local newModule=$2
sed -ri "s/$modulesName=\(([^)]+)\)/$modulesName=(\1 \"$newModule\")/" .git_aliases/_config.sh
}
function create(){
local name=""
nameGet name
local descr=$(questionGet "Short description" "True")
local template="template.sh"
local moduleType
if question "It's background module?"
then
name="_$name"
moduleType="modules"
template="template_module.sh"
else
if question "It's \"before push\" module?"
then
name="__$name"
moduleType="beforePushModules"
template="template_module.sh"
fi
fi
if nameCheckExists $name
then
printC "Alias \"$name\" is already exist. Try other name." red
create
return 1
fi
if [ -n "$moduleType" ]
then
configChange "$moduleType" "$name"
fi
#Add README description
echo "
- - -
$name
--
$descr
" >> README.md
local aliasPath=".git_aliases/$name.sh"
cp $template $aliasPath
echo "New alias placed here:"
printC $aliasPath
echo
if question "Do you want edit it now?"
then
vi $aliasPath
wait ${pid}
fi
if question "Do you want install it now?"
then
. install.sh -q $name
fi
}
create