Initial monorepo — everything BlackRoad in one place
bin/ 230 CLI tools (ask-*, br-*, agent-*, roadid, carpool) scripts/ 99 automation scripts fleet/ Node configs and deployment workers/ Cloudflare Worker sources (roadpay, road-search, squad webhooks) roadc/ RoadC programming language roadnet/ Mesh network (5 APs, WireGuard) operator/ Memory system scripts config/ System configs dotfiles/ Shell configs docs/ Documentation BlackRoad OS — Pave Tomorrow. RoadChain-SHA2048: d1a24f55318d338b RoadChain-Identity: alexa@sovereign RoadChain-Full: d1a24f55318d338b24b60bad7be39286379c76ae5470817482100cb0ddbbcb97e147d07ac7243da0a9f0363e4e5c833d612b9c0df3a3cd20802465420278ef74875a5b77f55af6fe42a931b8b635b3d0d0b6bde9abf33dc42eea52bc03c951406d8cbe49f1a3d29b26a94dade05e9477f34a7d4d4c6ec4005c3c2ac54e73a68440c512c8e83fd9b1fe234750b898ef8f4032c23db173961fe225e67a0432b5293a9714f76c5c57ed5fdf35b9fb40fd73c03ebf88b7253c6a0575f5afb6a6b49b3bda310602fb1ef676859962dad2aebbb2875814b30eee0a8ba195e482d4cbc91d8819e7f38f6db53e8063401649c77bb994371473cabfb917fb53e8cbe73d60
This commit is contained in:
98
bin/repo-search
Executable file
98
bin/repo-search
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/bin/bash
|
||||
# BlackRoad Repo Search — find any repo across all orgs
|
||||
# Usage: repo-search <query> — search by name/description
|
||||
# repo-search --cat <name> — list category
|
||||
# repo-search --dupes — find duplicates
|
||||
# repo-search --stats — show statistics
|
||||
|
||||
PINK='\033[38;5;205m'
|
||||
GREEN='\033[38;5;82m'
|
||||
CYAN='\033[38;5;69m'
|
||||
AMBER='\033[38;5;214m'
|
||||
DIM='\033[2m'
|
||||
NC='\033[0m'
|
||||
|
||||
INDEX="$HOME/blackroad-operator/repo-index.json"
|
||||
SEARCH="$HOME/blackroad-operator/repo-search.txt"
|
||||
|
||||
case "${1:---help}" in
|
||||
--stats)
|
||||
echo -e "${PINK}BlackRoad Repo Stats${NC}"
|
||||
python3 -c "
|
||||
import json
|
||||
with open('$INDEX') as f: d = json.load(f)
|
||||
print(f' Total: {d[\"total\"]}')
|
||||
print(f' Active: {d[\"active\"]}')
|
||||
print(f' Archived: {d[\"archived\"]}')
|
||||
print()
|
||||
for org, count in d['orgs'].items():
|
||||
print(f' {org:25s} {count}')
|
||||
print()
|
||||
for cat, info in sorted(d['categories'].items(), key=lambda x: -x[1]['count']):
|
||||
print(f' {cat:25s} {info[\"active\"]:3d} active / {info[\"count\"]:3d} total')
|
||||
"
|
||||
;;
|
||||
|
||||
--cat)
|
||||
cat_name="${2:-core_platform}"
|
||||
echo -e "${PINK}Category: ${cat_name}${NC}"
|
||||
python3 -c "
|
||||
import json
|
||||
with open('$INDEX') as f: d = json.load(f)
|
||||
cat = d['categories'].get('$cat_name', {})
|
||||
for r in cat.get('repos', []):
|
||||
print(f' {r[\"org\"]}/{r[\"name\"]:40s} [{r[\"lang\"] or \"-\":12s}] {r[\"desc\"]}')
|
||||
"
|
||||
;;
|
||||
|
||||
--dupes)
|
||||
echo -e "${PINK}Potential Duplicates${NC}"
|
||||
python3 -c "
|
||||
import json
|
||||
from collections import defaultdict
|
||||
with open('$INDEX') as f: d = json.load(f)
|
||||
names = defaultdict(list)
|
||||
for cat, info in d['categories'].items():
|
||||
for r in info.get('repos', []):
|
||||
base = r['name'].replace('blackroad-os-', '').replace('blackroad-', '').replace('-', '')
|
||||
names[base].append(f\"{r['org']}/{r['name']}\")
|
||||
for base, repos in sorted(names.items()):
|
||||
if len(repos) > 1:
|
||||
print(f' {base}:')
|
||||
for r in repos:
|
||||
print(f' {r}')
|
||||
print()
|
||||
"
|
||||
;;
|
||||
|
||||
--help|-h)
|
||||
echo -e "${PINK}BlackRoad Repo Search${NC}"
|
||||
echo " repo-search <query> Search by name/description"
|
||||
echo " repo-search --stats Show statistics"
|
||||
echo " repo-search --cat <name> List a category"
|
||||
echo " repo-search --dupes Find duplicates"
|
||||
echo ""
|
||||
echo -e " ${DIM}Categories: core_platform, ai_agents, infrastructure, websites_brand,"
|
||||
echo -e " education, creative_tools, blockchain_finance, security, data_analytics,"
|
||||
echo -e " research_math, forks_external, archived_legacy, uncategorized${NC}"
|
||||
echo -e " ${DIM}BlackRoad OS — Pave Tomorrow.${NC}"
|
||||
;;
|
||||
|
||||
*)
|
||||
query="$*"
|
||||
echo -e "${PINK}Search: ${CYAN}${query}${NC}"
|
||||
echo ""
|
||||
grep -i "$query" "$SEARCH" | grep -v "^#" | head -20 | while IFS= read -r line; do
|
||||
if echo "$line" | grep -q "active"; then
|
||||
echo -e " ${GREEN}●${NC} $line"
|
||||
elif echo "$line" | grep -q "ARCHIVED"; then
|
||||
echo -e " ${DIM}○ $line${NC}"
|
||||
else
|
||||
echo " $line"
|
||||
fi
|
||||
done
|
||||
echo ""
|
||||
matches=$(grep -ic "$query" "$SEARCH" 2>/dev/null)
|
||||
echo -e " ${DIM}${matches} matches${NC}"
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user