blob: b2a441755e1f86eda5826e3d423ad6790c19fc5e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#!/bin/bash
# suscheck.sh - CLI wrapper for suscheck package
# suspcheck.sh - filtering engine
# --- Default paths ---
SUSCHECK_ENGINE="./suspcheck.sh"
DATA_DIR="./suscheck-data"
# --- Parse flags ---
ACTION=""
COUNTRY=""
LOC=""
DOMAIN=""
MAINT=""
while getopts "ARc:l:d:m:" opt; do
case "$opt" in
A) ACTION="add" ;;
R) ACTION="remove" ;;
c) COUNTRY="$OPTARG" ;;
l) LOC="$OPTARG" ;;
d) DOMAIN="$OPTARG" ;;
m) MAINT="$OPTARG" ;;
*) echo "Usage: $0 [-A|-R] [-c country] [-l location] [-d domain] [-m maintainer] [PKGBUILD]"; exit 1 ;;
esac
done
shift $((OPTIND-1))
# --- Determine JSON file ---
if [[ -n "$COUNTRY" ]]; then
FILE="$DATA_DIR/${COUNTRY,,}.json"
else
FILE="$DATA_DIR/suspicious.json"
fi
# --- Create file if adding and missing ---
if [[ "$ACTION" == "add" && ! -f "$FILE" ]]; then
jq -n --arg c "$COUNTRY" '{country:$c,reason:"",cities:[],domains:[],maintainers:[]}' > "$FILE"
fi
# --- Add / Remove entries ---
if [[ -n "$ACTION" && -f "$FILE" ]]; then
TMP=$(mktemp)
if [[ "$ACTION" == "add" ]]; then
[[ -n "$LOC" ]] && jq --arg l "$LOC" '.cities += [$l] | .cities |= unique' "$FILE" > "$TMP" && mv "$TMP" "$FILE"
[[ -n "$DOMAIN" ]] && jq --arg d "$DOMAIN" '.domains += [$d] | .domains |= unique' "$FILE" > "$TMP" && mv "$TMP" "$FILE"
[[ -n "$MAINT" ]] && jq --arg m "$MAINT" '.maintainers += [$m] | .maintainers |= unique' "$FILE" > "$TMP" && mv "$TMP" "$FILE"
echo "✅ Added entries to $FILE"
elif [[ "$ACTION" == "remove" ]]; then
[[ -n "$LOC" ]] && jq --arg l "$LOC" '.cities -= [$l]' "$FILE" > "$TMP" && mv "$TMP" "$FILE"
[[ -n "$DOMAIN" ]] && jq --arg d "$DOMAIN" '.domains -= [$d]' "$FILE" > "$TMP" && mv "$TMP" "$FILE"
[[ -n "$MAINT" ]] && jq --arg m "$MAINT" '.maintainers -= [$m]' "$FILE" > "$TMP" && mv "$TMP" "$FILE"
echo "✅ Removed entries from $FILE"
fi
exit 0
fi
# --- If no add/remove, call the filtering engine ---
PKGBUILD="$1"
if [[ -z "$PKGBUILD" ]]; then
echo "Usage: $0 [-A|-R] [-c country] [-l location] [-d domain] [-m maintainer] [PKGBUILD]"
exit 1
fi
"$SUSCHECK_ENGINE" "$PKGBUILD"
|