8000 feat: add filename formatter Shell script (#5) · TheAlgorithms/scripts@167d60c · GitHub
[go: up one dir, main page]

Skip to content

Commit 167d60c

Browse files
authored
feat: add filename formatter Shell script (#5)
1 parent c058211 commit 167d60c

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

filename_formatter.sh

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/bin/bash
2+
3+
echo -e "Arguments:
4+
[0] - Used by Bash (script filename)
5+
[1] - Base directory
6+
[2] - Filename type (maximum two values)
7+
[3] - Ignored files or folders (optional; use "\""./<directory_name>"\"")
8+
"
9+
10+
echo "Changed files:"
11+
12+
# Separate $2 value (filename types) if it has a comma
13+
if [[ "$2" == *","* ]];
14+
then
15+
string="$2"
16+
17+
str_value=${string#*,}
18+
str_value2=${string%%,*}
19+
else
20+
str_value="$2"
21+
str_value2="$2"
22+
fi
23+
24+
IFS=$'\n'
25+
for fname in `find $1 -type f -name "$str_value2" -o -name "$str_value"`
26+
do
27+
ignored_files="$(echo $3 | tr "," "\n")"
28+
29+
str="${fname}"
30+
value=${str%/*} # If the base directory is `.`, check in all directories for the ignored filenames
31+
32+
for files in $ignored_files
33+
do
34+
if [ "${fname}" == "$value/$files" ] || [ "$value" == "$files" ];
35+
then
36+
continue 2
37+
fi
38+
done
39+
40+
#echo ${fname}
41+
new_fname=`echo ${fname} | tr ' ' '_'`
42+
#echo " ${new_fname}"
43+
new_fname=`echo ${new_fname} | tr 'A-Z' 'a-z'`
44+
#echo " ${new_fname}"
45+
new_fname=`echo ${new_fname} | tr '-' '_'`
46+
#echo " ${new_fname}"
47+
if [ ${fname} != ${new_fname} ]
48+
then
49+
echo " ${fname} --> ${new_fname}"
50+
git "mv" "${fname}" ${new_fname} # Requires you to be in version control
51+
fi
52+
done

0 commit comments

Comments
 (0)
0