-
Notifications
You must be signed in to change notification settings - Fork 0
/
dstry.sh
64 lines (49 loc) · 1.53 KB
/
dstry.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
#!/bin/bash
function get_file_usage () {
file=$1
file_name=$(echo ${file##*/} | cut -d '.' -f 1)
IFS=$'\n'
first_letter=${file_name:0:1}
regex="($first_letter|${first_letter,,})${file_name:1}"
#echo $regex
#exit
#individual_usage=($(grep -rEnHo "$module_name/$file_name('|\")" $module_path | grep -v "$module_path$module_name" ))
individual_usage=($(grep -rEnHo "$module_name/($regex('|\")|[a-zA-Z]+/"$file_name"\.php)" $module_path | grep -v "$module_path$module_name" ))
if [ ! -z "$individual_usage" ]; then
printf "**** Usage of $file ****\n"
count=${#individual_usage[@]}
for ((i=0;i<count;i++)) do
printf "\t- ${individual_usage[$i]}"
printf "\n"
matched_files=("${matched_files[@]}" "${individual_usage[$i]}")
done
else
unused_files=("${unused_files[@]}" "$file")
fi
}
module_name=$1;
module_path="application/modules/"
module_usage_regex="module(?:\(?)('|\")$module_name\1?\/?";
# check if module is loaded from another modules
usage=$(grep -rElc "$module_usage_regex" $module_path)
echo $usage;
echo "##Looking for usage of individual modules...##"
matched_files=()
unused_files=()
i=0
for folders in application/modules/$module_name/*; do
for file in ${folders}/*; do
get_file_usage $file
done
printf "\n"
done
printf "Number of matched files: ${#matched_files[@]}"
printf "\n"
printf "Number of unused files: ${#unused_files[@]}"
printf "\n## Unused files:\n"
count=${#unused_files[@]}
for ((i=0;i<count;i++)) do
printf "\tRemoving ${unused_files[$i]}"
#$(rm ${unused_files[$i]})
printf "\n"
done