Skip to content

Commit acc68c4

Browse files
luuukLuke LeVasseur
and
Luke LeVasseur
authored
Add solution for directories_comparison exercise (iluwatar#241)
* add solution * Update question language * Update question language * Print "No difference" if no difference between dirs Co-authored-by: Luke LeVasseur <[email protected]>
1 parent 7cc0646 commit acc68c4

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
## Directories Comparison
2+
3+
### Objectives
4+
5+
1. You are given two directories as arguments and the output should be any difference between the two directories
6+
7+
### Solution
8+
9+
```
10+
#!/usr/bin/env bash
11+
12+
13+
help () {
14+
echo "Usage: compare <filename1> <filename2>"
15+
echo
16+
}
17+
18+
validate_args() {
19+
# Ensure that 2 arguments are passed
20+
if [ $# != 2 ]
21+
then
22+
help
23+
exit 1
24+
fi
25+
26+
i=1
27+
for dir in "$@"
28+
do
29+
# Validate existence of directories
30+
if [ ! -d "$dir" ]
31+
then
32+
echo "Directory $dir does not exist"
33+
exit 1
34+
fi
35+
echo "Directory $i: $dir"
36+
i=$((i + 1))
37+
done
38+
echo
39+
}
40+
41+
compare() {
42+
echo "Comparing directories..."
43+
echo
44+
diff -r "$1" "$2"
45+
46+
if [ $? -eq 0 ]
47+
then
48+
echo "No difference"
49+
fi
50+
51+
exit 0
52+
}
53+
54+
while getopts ":h" option; do
55+
case $option in
56+
h) # display Help
57+
help
58+
exit 0;;
59+
\?) # invalid option
60+
echo "Error: Invalid option"
61+
exit 1;;
62+
esac
63+
done
64+
65+
validate_args "$@"
66+
compare "$1" "$2"
67+
68+
69+
```

0 commit comments

Comments
 (0)