Undoing test components.
All checks were successful
lint / runner / vale (push) Successful in 15s

This commit is contained in:
g_it 2026-04-08 11:44:37 +02:00
commit 79925af7d3
Signed by untrusted user who does not match committer: g_it
GPG key ID: A2B0A7C06A054627
2 changed files with 170 additions and 127 deletions

View file

@ -1,126 +1,126 @@
# #!/usr/bin/env bash
# # PRE-PUSH
# # Check the repo for dependency, language, vulnerability, and build issues
#!/usr/bin/env bash
# PRE-PUSH
# Check the repo for dependency, language, vulnerability, and build issues
# set -euo pipefail
set -euo pipefail
# # Setting log colours
# RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
# Setting log colours
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
# echo -e "${GREEN}Running pre-push checks...${NC}"
echo -e "${GREEN}Running pre-push checks...${NC}"
# # Start time tracking
# START_TIME=$(date +%s)
# Start time tracking
START_TIME=$(date +%s)
# # Setting paths
# REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
# CONTENT_DIR="$REPO_ROOT/content"
# ZENSICAL_CFG_PATH="$REPO_ROOT/zensical.toml"
# SITE_DIR="$REPO_ROOT/deploy"
# LOG_DIR="$REPO_ROOT/.checks/logs"
# mkdir -p "$LOG_DIR"
# Setting paths
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
CONTENT_DIR="$REPO_ROOT/content"
ZENSICAL_CFG_PATH="$REPO_ROOT/zensical.toml"
SITE_DIR="$REPO_ROOT/deploy"
LOG_DIR="$REPO_ROOT/.checks/logs"
mkdir -p "$LOG_DIR"
# # Cleanup old logs
# rm -f "$LOG_DIR/*"
# Cleanup old logs
rm -f "$LOG_DIR/*"
# # Cleanup function
# cleanup() {
# trap - EXIT INT TERM
# if [[ -n "${SERVER_PID:-}" ]] && ps -p "$SERVER_PID" >/dev/null 2>&1; then
# kill "$SERVER_PID" >/dev/null 2>&1 || true
# for _ in {1..30}; do ps -p "$SERVER_PID" >/dev/null 2>&1 || break; sleep 0.1; done
# fi
# }
# trap cleanup EXIT INT TERM
# Cleanup function
cleanup() {
trap - EXIT INT TERM
if [[ -n "${SERVER_PID:-}" ]] && ps -p "$SERVER_PID" >/dev/null 2>&1; then
kill "$SERVER_PID" >/dev/null 2>&1 || true
for _ in {1..30}; do ps -p "$SERVER_PID" >/dev/null 2>&1 || break; sleep 0.1; done
fi
}
trap cleanup EXIT INT TERM
# # Function to run commands and log output
# run_command() {
# local cmd="$1"
# local logfile="$2"
# echo -e "${GREEN}Running ${cmd}...${NC}"
# $cmd >"$logfile" 2>&1 || { echo -e "${RED}${cmd} failed. See $logfile${NC}"; exit 1; }
# }
# Function to run commands and log output
run_command() {
local cmd="$1"
local logfile="$2"
echo -e "${GREEN}Running ${cmd}...${NC}"
$cmd >"$logfile" 2>&1 || { echo -e "${RED}${cmd} failed. See $logfile${NC}"; exit 1; }
}
# # Running independent checks in parallel
# {
# # Trivy check for vulnerabilities
# if command -v trivy &>/dev/null; then
# run_command "trivy fs . --exit-code 1 --severity CRITICAL,HIGH,MEDIUM,LOW,UNKNOWN --no-progress --scanners vuln" "$LOG_DIR/trivy.log"
# else
# echo -e "${YELLOW}Trivy not installed. Skipping vulnerability scan.${NC}"
# fi
# } &
# Running independent checks in parallel
{
# Trivy check for vulnerabilities
if command -v trivy &>/dev/null; then
run_command "trivy fs . --exit-code 1 --severity CRITICAL,HIGH,MEDIUM,LOW,UNKNOWN --no-progress --scanners vuln" "$LOG_DIR/trivy.log"
else
echo -e "${YELLOW}Trivy not installed. Skipping vulnerability scan.${NC}"
fi
} &
# {
# # Trufflehog check for passwords and secrets
# if command -v trufflehog &>/dev/null && command -v jq &>/dev/null; then
# TMPF="$(mktemp)"
# trufflehog filesystem . --json >"$TMPF" 2>"$LOG_DIR/trufflehog.log" || true
# if jq -e 'select(.verified==true)' "$TMPF" | grep -q .; then
# cp "$TMPF" "$LOG_DIR/trufflehog-findings.json"
# echo -e "${RED}Verified secrets found. See $LOG_DIR/trufflehog-findings.json${NC}"
# rm -f "$TMPF"; exit 1
# fi
# rm -f "$TMPF"
# else
# echo -e "${YELLOW}TruffleHog or jq not installed. Skipping secrets scan.${NC}"
# fi
# } &
{
# Trufflehog check for passwords and secrets
if command -v trufflehog &>/dev/null && command -v jq &>/dev/null; then
TMPF="$(mktemp)"
trufflehog filesystem . --json >"$TMPF" 2>"$LOG_DIR/trufflehog.log" || true
if jq -e 'select(.verified==true)' "$TMPF" | grep -q .; then
cp "$TMPF" "$LOG_DIR/trufflehog-findings.json"
echo -e "${RED}Verified secrets found. See $LOG_DIR/trufflehog-findings.json${NC}"
rm -f "$TMPF"; exit 1
fi
rm -f "$TMPF"
else
echo -e "${YELLOW}TruffleHog or jq not installed. Skipping secrets scan.${NC}"
fi
} &
# {
# # Dependabot dependency vulnerability check
# if command -v npm &>/dev/null && [[ -f package.json ]]; then
# run_command "npm audit --audit-level=high" "$LOG_DIR/npm-audit.log"
# elif command -v pip &>/dev/null && [[ -f requirements.txt ]]; then
# run_command "pip list --outdated" "$LOG_DIR/pip-outdated.log"
# if grep -q "upgradable" "$LOG_DIR/pip-outdated.log"; then
# echo -e "${YELLOW}Outdated Python dependencies found. See $LOG_DIR/pip-outdated.log${NC}"
# fi
# else
# echo -e "${YELLOW}No dependency management files found. Skipping dependency checks.${NC}"
# fi
# } &
{
# Dependabot dependency vulnerability check
if command -v npm &>/dev/null && [[ -f package.json ]]; then
run_command "npm audit --audit-level=high" "$LOG_DIR/npm-audit.log"
elif command -v pip &>/dev/null && [[ -f requirements.txt ]]; then
run_command "pip list --outdated" "$LOG_DIR/pip-outdated.log"
if grep -q "upgradable" "$LOG_DIR/pip-outdated.log"; then
echo -e "${YELLOW}Outdated Python dependencies found. See $LOG_DIR/pip-outdated.log${NC}"
fi
else
echo -e "${YELLOW}No dependency management files found. Skipping dependency checks.${NC}"
fi
} &
# # Wait for all background jobs to finish
# wait
# Wait for all background jobs to finish
wait
# # Lint markdown files using markdownlint-cli2
# if command -v markdownlint-cli2 &>/dev/null; then
# MD_FILES="$(git diff HEAD~1 HEAD --name-only --diff-filter=ACM | grep -E '\.md$' || true)"
# if [[ -n "$MD_FILES" ]]; then
# echo -e "${GREEN}Running markdownlint...${NC}"
# echo "$MD_FILES" | xargs markdownlint-cli2 >"$LOG_DIR/markdownlint.log" 2>&1 || {
# echo -e "${RED}markdownlint-cli2 failed. See $LOG_DIR/markdownlint.log${NC}"; exit 1;
# }
# else
# echo -e "${YELLOW}No committed Markdown files found. Skipping markdown check.${NC}"
# fi
# else
# echo -e "${YELLOW}markdownlint-cli2 not installed. Skipping markdown check.${NC}"
# fi
# Lint markdown files using markdownlint-cli2
if command -v markdownlint-cli2 &>/dev/null; then
MD_FILES="$(git diff HEAD~1 HEAD --name-only --diff-filter=ACM | grep -E '\.md$' || true)"
if [[ -n "$MD_FILES" ]]; then
echo -e "${GREEN}Running markdownlint...${NC}"
echo "$MD_FILES" | xargs markdownlint-cli2 >"$LOG_DIR/markdownlint.log" 2>&1 || {
echo -e "${RED}markdownlint-cli2 failed. See $LOG_DIR/markdownlint.log${NC}"; exit 1;
}
else
echo -e "${YELLOW}No committed Markdown files found. Skipping markdown check.${NC}"
fi
else
echo -e "${YELLOW}markdownlint-cli2 not installed. Skipping markdown check.${NC}"
fi
# # Lint language using Vale
# if command -v vale &>/dev/null && [[ -f "$REPO_ROOT/.vale.ini" ]]; then
# echo -e "${GREEN}Running Vale...${NC}"
# VALE_FILES="$(git diff HEAD~1 HEAD --name-only --diff-filter=ACM | grep -E '\.md$' || true)"
# if [[ -n "$VALE_FILES" ]]; then
# echo "$VALE_FILES" | xargs vale >"$LOG_DIR/vale.log" 2>&1 || {
# echo -e "${RED}Vale issues. See $LOG_DIR/vale.log${NC}"; exit 1;
# }
# else
# echo -e "${YELLOW}No committed Markdown files found. Skipping Vale check.${NC}"
# fi
# else
# echo -e "${YELLOW}Vale not installed or .vale.ini missing. Skipping Vale.${NC}"
# fi
# Lint language using Vale
if command -v vale &>/dev/null && [[ -f "$REPO_ROOT/.vale.ini" ]]; then
echo -e "${GREEN}Running Vale...${NC}"
VALE_FILES="$(git diff HEAD~1 HEAD --name-only --diff-filter=ACM | grep -E '\.md$' || true)"
if [[ -n "$VALE_FILES" ]]; then
echo "$VALE_FILES" | xargs vale >"$LOG_DIR/vale.log" 2>&1 || {
echo -e "${RED}Vale issues. See $LOG_DIR/vale.log${NC}"; exit 1;
}
else
echo -e "${YELLOW}No committed Markdown files found. Skipping Vale check.${NC}"
fi
else
echo -e "${YELLOW}Vale not installed or .vale.ini missing. Skipping Vale.${NC}"
fi
# # Build the site using Zensical to check for build errors
# if ! command -v zensical >/dev/null 2>&1; then
# echo -e "${RED}Zensical not installed; cannot build docs.${NC}"; exit 1
# fi
# run_command "zensical build --clean" "$LOG_DIR/zensical-build.log"
# Build the site using Zensical to check for build errors
if ! command -v zensical >/dev/null 2>&1; then
echo -e "${RED}Zensical not installed; cannot build docs.${NC}"; exit 1
fi
run_command "zensical build --clean" "$LOG_DIR/zensical-build.log"
# # End time tracking and calculate duration
# END_TIME=$(date +%s)
# DURATION=$((END_TIME - START_TIME))
# echo -e "${GREEN}Push checks completed in $DURATION seconds.${NC}"
# End time tracking and calculate duration
END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
echo -e "${GREEN}Push checks completed in $DURATION seconds.${NC}"

View file

@ -1 +1,44 @@
Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
---
description: words, visuals, technical.
extra_css:
- assets/css/index.css
extra_js:
- assets/js/gsap/gsap.min.js
- assets/js/gsap/ScrollTrigger.min.js
- assets/js/index.js
hide:
- toc
- navigation
search:
exclude: true
template: "chapter.html"
title: Home
---
<!-- markdownlint-disable MD033 -->
<!-- markdownlint-disable MD013 -->
<div class="hero pin-section">
<div class="content">
<ul class="list">
<li></li>
<li>words</li>
<li>visuals</li>
<li>technical</li>
</ul>
<div class="faces">
<div class="slide center">
<img src="assets/media/face-1276x1276.webp" alt="gwabini" />
</div>
<div class="slide center">
<img src="assets/media/words-face-1276x1276.webp" alt="boya benyathi" />
</div>
<div class="slide center">
<img src="assets/media/visuals-face-1276x1276.webp" alt="bele elide" />
</div>
<div class="slide center">
<img src="assets/media/technical-face-1276x1276.webp" alt="our pride" />
</div>
</div>
</div>
</div>