Cookbook: Building a CLI File Tool

Build a command-line utility that inspects files, counts lines of code, and outputs a formatted statistics report.

Source Code (loc.dz)

djazair
use dir
use file
use path
use process

let args = process.args()
let targetFolder = if args.length() > 0 ? args[0] else "."

let files = dir.glob(path.join(targetFolder, "**/*.dz"))
let totalLines = 0
let fileCount = files.length()

print("Analyzing ${fileCount} files in ${targetFolder}...
")

for f in files
    let lines = file.readLines(f)
    let count = lines.length()
    totalLines += count
    print("  ${path.basename(f)}: ${count} lines")
end

print("
===================================")
print("Total Files: ${fileCount}")
print("Total Lines: ${totalLines}")
print("===================================")