-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgithub.sh
More file actions
executable file
·88 lines (79 loc) · 2.32 KB
/
Copy pathgithub.sh
File metadata and controls
executable file
·88 lines (79 loc) · 2.32 KB
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/env bash
set -Eeuo pipefail
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
cd "$ROOT"
usage() {
cat <<'EOF'
LibraMail — gestion GitHub
./github.sh check
Contrôle la version, les sources et les exclusions de sécurité.
./github.sh init [public|private]
Crée/configure le dépôt GitHub et pousse les sources.
Valeur par défaut : technifree/LibraMail, branche master, public.
./github.sh build
Compile Linux et Windows sur GitHub Actions et télécharge les artefacts.
./github.sh release X.Y.Z ["Notes FR"] ["Notes EN"]
Met à jour la version, pousse le tag et publie les deux paquets.
./github.sh status
Affiche l'état Git, les derniers workflows et les publications.
EOF
}
NODE_BIN="./bin/node"
[ -x "$NODE_BIN" ] || NODE_BIN="$(command -v node 2>/dev/null || true)"
cmd="${1:-}"
case "$cmd" in
check)
./security_check.sh
python3 tools/check_version.py
node_files=()
while IFS= read -r -d '' file; do node_files+=("$file"); done < <(
find engine resources/js tools -type f -name '*.js' -print0 2>/dev/null
)
if [ -n "$NODE_BIN" ] && [ -x "$NODE_BIN" ]; then
for file in "${node_files[@]}"; do "$NODE_BIN" --check "$file" >/dev/null; done
echo "[JAVASCRIPT] OK : ${#node_files[@]} fichier(s)"
"$NODE_BIN" tools/test_calendar_import.js
"$NODE_BIN" tools/test_calendar_subscriptions.js
else
echo "[JAVASCRIPT] Node absent localement : contrôle laissé à GitHub Actions."
fi
python3 - <<'PY'
import json
from pathlib import Path
files = [Path("neutralino.config.json")]
files += sorted(Path("resources/locales").glob("*.json"))
for path in files:
json.loads(path.read_text(encoding="utf-8"))
print(f"[JSON] OK : {len(files)} fichier(s)")
PY
;;
init)
[[ $# -le 2 ]] || { usage >&2; exit 2; }
[[ $# -lt 2 ]] || export VISIBILITY="$2"
exec ./setup_github.sh
;;
build)
exec ./build_github.sh
;;
release)
shift
exec ./release.sh "$@"
;;
status)
git status --short --branch
echo
if command -v gh >/dev/null 2>&1 && gh auth status >/dev/null 2>&1; then
gh run list --limit 10
echo
gh release list --limit 10
fi
;;
-h|--help|help|"")
usage
;;
*)
echo "Commande inconnue : $cmd" >&2
usage >&2
exit 2
;;
esac