29 lines
1001 B
Bash
29 lines
1001 B
Bash
#!/bin/sh
|
|
|
|
# usage:
|
|
# cd $path/to/monorepo
|
|
# sh scripts/subdir-cloc.sh $relative_path/to/some/dir
|
|
#
|
|
# example: sh scripts/subdir-cloc.sh apps/bot/src/routes
|
|
|
|
if [ "$#" -ne 1 ]; then
|
|
echo "Usage: $0 directory"
|
|
exit 1
|
|
fi
|
|
|
|
directory=$1
|
|
|
|
#First create or empty an existing result file
|
|
echo "Directory, files,language,blank,comment,code" > cloc_results2.csv
|
|
|
|
#Use the find command to find all subdirectories in the foo directory
|
|
#If you only want to iterate through direct subdirectories, you can remove the -maxdepth and -mindepth options
|
|
find $directory -type d -mindepth 1 -maxdepth 1 | while read subdir
|
|
do
|
|
#Use the cloc tool to calculate the number of lines of code per subdirectory
|
|
#Then use the awk tool to extract the required data: directory name, number of files, and number of lines of code
|
|
cloc_result=$(cloc $subdir --csv --quiet | tail -n 1)
|
|
lines=$(echo "$cloc_result" | awk -F "\"*,\"*" 'NR==3 {print $4}')
|
|
echo "$subdir, $cloc_result" >> cloc_results2.csv
|
|
done
|