#!/usr/bin/env bash
#
# A small backup script: strict mode, functions, default arguments,
# a loop, and conditionals. (Illustrative fixture - review before running.)
set -euo pipefail

readonly SOURCE_DIR="${1:-./data}"
readonly DEST_DIR="${2:-./backups}"

log() {
  printf '[%s] %s\n' "$(date +%H:%M:%S)" "$*"
}

require_dir() {
  local dir="$1"
  if [[ ! -d "$dir" ]]; then
    log "error: directory not found: $dir"
    exit 1
  fi
}

main() {
  require_dir "$SOURCE_DIR"
  mkdir -p "$DEST_DIR"

  local count=0
  for file in "$SOURCE_DIR"/*; do
    [[ -e "$file" ]] || continue
    cp -- "$file" "$DEST_DIR/"
    count=$((count + 1))
  done

  log "copied ${count} file(s) to ${DEST_DIR}"
}

main "$@"
