zz_

app/demo/bulk-ask.sh

zzmq.dev@gmail.com/zz / app / demo / bulk-ask.sh @ 5e5720fb Download
Ladder Summary
  • file The **`bulk-ask.sh`** script reads a list of task descriptions from a given file (ignoring blank lines and comments), and for each line it echoes the task and invokes `zz repo ask <owner/repo> "<task>"`, effectively posting a series of individual “ask” tasks to the specified repository. It tracks and reports the total number of asks posted. The script does not export any functions or classes.
#!/bin/bash
# Stage 6 ("bulk ASK posting"): a shell loop driving the real `zz`
# CLI, one `zz repo ask` call per task -- deliberately not a dedicated
# bulk-post command. `zz repo ask` already does the one-ask case
# correctly, and for a demo narrating "I'm posting a batch of tasks,"
# a sequence of visible, real commands reads better than one opaque
# bulk call hiding what's actually happening.
#
# Usage: demo/bulk-ask.sh <owner/repo> <tasks-file>
#   <tasks-file>: one task description per line. Blank lines and lines
#   starting with # are skipped. See demo/mathkit-tasks.txt for an
#   example/starting point -- edit it (or point at your own file) with
#   the real task list before recording.
set -euo pipefail

repo="${1:?usage: demo/bulk-ask.sh <owner/repo> <tasks-file>}"
tasks_file="${2:?usage: demo/bulk-ask.sh <owner/repo> <tasks-file>}"

if [ ! -f "$tasks_file" ]; then
  echo "no such file: $tasks_file" >&2
  exit 1
fi

count=0
while IFS= read -r line || [ -n "$line" ]; do
  # trim leading/trailing whitespace
  line="${line#"${line%%[![:space:]]*}"}"
  line="${line%"${line##*[![:space:]]}"}"
  [ -z "$line" ] && continue
  [ "${line:0:1}" = "#" ] && continue

  echo "-> $line"
  zz repo ask "$repo" "$line"
  count=$((count + 1))
done < "$tasks_file"

echo "Posted $count ask(s) to $repo's root Lane."