2807827ddc02be6ce5cadf3c722627c653196bb9
- Author
- TheEdgeOfRage <git@theedgeofrage.com>
- Committer
- TheEdgeOfRage <git@theedgeofrage.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/dot_local/bin/executable_pkgbuild-review b/dot_local/bin/executable_pkgbuild-review
2index 8efcaeab499980173f90f9e46c75b8eb5c91bd9a..163f780fdddd8fa8130fd94aea8c14cd47a4a109 100755
3--- a/dot_local/bin/executable_pkgbuild-review
4+++ b/dot_local/bin/executable_pkgbuild-review
5@@ -59,24 +59,39 @@ confidence_color() {
6 esac
7 }
8
9+print_review() {
10+ local pkgname="$1" pkgver="$2" content="$3" vc="$4" cc="$5"
11+ printf '\n=== PKGBUILD Review: %s %s ===\n' "$pkgname" "$pkgver"
12+ while IFS= read -r line; do
13+ case "$line" in
14+ VERDICT:*) printf "${vc}%s${RESET}\n" "$line" ;;
15+ CONFIDENCE:*) printf "${cc}%s${RESET}\n" "$line" ;;
16+ *) printf '%s\n' "$line" ;;
17+ esac
18+ done <<< "$content"
19+ printf '=== END REVIEW ===\n\n'
20+}
21+
22 review_one() {
23 local pkgbuild="$1"
24
25 # Non-PKGBUILD files (e.g. .SRCINFO): open real editor and return
26- if [[ "$(basename "$pkgbuild")" != "PKGBUILD" ]]; then
27+ if [[ "${pkgbuild##*/}" != "PKGBUILD" ]]; then
28 "$REAL_EDITOR" "$pkgbuild"
29 return 0
30 fi
31
32 [[ -f "$pkgbuild" ]] || { err "file not found: $pkgbuild"; return 3; }
33
34+ mkdir -p "$CACHE_DIR"
35+
36 local pkgname pkgver sha cache_file
37 pkgname=$(grep -m1 '^pkgname=' "$pkgbuild" | cut -d= -f2 | tr -d '"'"'"' ')
38 pkgver=$(grep -m1 '^pkgver=' "$pkgbuild" | cut -d= -f2 | tr -d '"'"'"' ')
39 sha=$(sha256sum "$pkgbuild" | cut -d' ' -f1)
40 cache_file="$CACHE_DIR/$pkgname.sha256"
41
42- if [[ -f "$cache_file" ]] && [[ "$(cat "$cache_file")" == "$sha" ]]; then
43+ if [[ -f "$cache_file" ]] && [[ "$(<"$cache_file")" == "$sha" ]]; then
44 printf '[%s %s] Already reviewed. Proceeding.\n' "$pkgname" "$pkgver"
45 return 0
46 fi
47@@ -87,7 +102,7 @@ review_one() {
48 payload=$(jq -n \
49 --arg model "$MODEL" \
50 --arg sys "$SYSTEM_PROMPT" \
51- --arg content "$(cat "$pkgbuild")" \
52+ --arg content "$(<"$pkgbuild")" \
53 '{model: $model, temperature: 0, stream: false,
54 messages: [
55 {role: "system", content: $sys},
56@@ -99,57 +114,42 @@ review_one() {
57 -d "$payload" \
58 "$SERVER_URL/v1/chat/completions") || { err "llama-server unreachable or timed out"; return 2; }
59
60- content=$(printf '%s' "$response" | jq -r '.choices[0].message.content // empty')
61+ content=$(jq -r '.choices[0].message.content // empty' <<< "$response")
62 [[ -z "$content" ]] && { err "empty response from LLM"; return 2; }
63
64 # Strip <think>...</think> block if present (Qwen3.5 thinking mode)
65- content=$(printf '%s' "$content" | sed '/^<think>$/,/^<\/think>$/d')
66+ content=$(sed '/^<think>$/,/^<\/think>$/d' <<< "$content")
67
68- verdict=$(printf '%s' "$content" | grep '^VERDICT:' | awk '{print $2}' | head -1)
69- confidence=$(printf '%s' "$content" | grep '^CONFIDENCE:' | awk '{print $2}' | head -1)
70+ verdict=$(awk '/^VERDICT:/{print $2; exit}' <<< "$content")
71+ confidence=$(awk '/^CONFIDENCE:/{print $2; exit}' <<< "$content")
72 [[ -z "$verdict" ]] && verdict="UNKNOWN"
73
74 vc=$(verdict_color "$verdict")
75 cc=$(confidence_color "$confidence")
76
77- printf '\n=== PKGBUILD Review: %s %s ===\n' "$pkgname" "$pkgver"
78- while IFS= read -r line; do
79- case "$line" in
80- VERDICT:*) printf "${vc}%s${RESET}\n" "$line" ;;
81- CONFIDENCE:*) printf "${cc}%s${RESET}\n" "$line" ;;
82- *) printf '%s\n' "$line" ;;
83- esac
84- done <<< "$content"
85- printf '=== END REVIEW ===\n\n'
86+ case "$verdict" in
87+ SAFE)
88+ printf '[%s %s] %sSAFE%s\n' "$pkgname" "$pkgver" "$vc" "$RESET"
89+ printf '%s' "$sha" > "$cache_file"
90+ return 0
91+ ;;
92+ MALICIOUS)
93+ print_review "$pkgname" "$pkgver" "$content" "$vc" "$cc"
94+ return 1
95+ ;;
96+ esac
97
98- while true; do
99- case "$verdict" in
100- SAFE) printf "[%s] ${vc}SAFE${RESET} — [C]ontinue / [e]dit / [a]bort: " "$pkgname" ;;
101- *) printf "[%s] ${vc}%s${RESET} — [c]ontinue / [e]dit / [A]bort: " "$pkgname" "$verdict" ;;
102- esac
103+ # SUSPICIOUS (or UNKNOWN)
104+ print_review "$pkgname" "$pkgver" "$content" "$vc" "$cc"