Compare commits

...

2 commits

Author SHA1 Message Date
Slendi
796640e329
Merge 06a79a1a06 into b7d5f81b35 2024-08-23 15:51:17 +02:00
xSlendiX
06a79a1a06
Add pre-commit hook to remove cursors.
This patch adds a pre-commit hook specifically for *NIX systems to
remove the cursor byte from all files under `src/`.

The reason why I chose python is because it is assumed that most *NIX
systems already come with it pre-installed.

Signed-off-by: xSlendiX <slendi@socopon.com>
2023-02-26 03:33:48 +02:00
3 changed files with 66 additions and 0 deletions

33
meta/check_code.py Executable file
View file

@ -0,0 +1,33 @@
#!/usr/bin/env python3
import os
from pathlib import Path
os.chdir(os.path.realpath(os.path.dirname(__file__))+'/../src')
for f in Path(os.getcwd()).glob('**/*'):
if not f.is_file():
continue
if not os.path.basename(f).lower().endswith('.zc'):
continue
contents = b''
with open(f, 'r+b') as file:
contents = file.read()
n = contents.find(b'\x05')
byte = contents[n]
if n == -1: continue
if contents[n-1] == 0 or contents[n-1] > 127: continue
if n+1 < len(contents) and contents[n+1] == 5: continue
if contents[n-1] <= 0x1F and (not contents[n-1] in b'\n\r'): continue
if n+1 < len(contents) and contents[n+1] <= 0x1F and (not contents[n+1] in b'\n\r'): continue
contents = contents[0:n:]
file.seek(0)
file.truncate()
file.write(contents)

8
meta/install_hooks.sh Executable file
View file

@ -0,0 +1,8 @@
#!/bin/sh
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/.." || exit 1
mkdir -p .git/hooks
cp meta/pre-commit .git/hooks/.

25
meta/pre-commit Executable file
View file

@ -0,0 +1,25 @@
#!/bin/sh
set -e
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/.." || exit 1
pwd | grep -q '.git' && cd ..
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
FAILURES=0
set +e
echo "Running meta/check_code.sh"
if time meta/check_code.sh "$@" && git diff --exit-code; then
echo -e "[${GREEN}GOOD${NC}]: meta/check_code.sh"
else
echo -e "[${RED}FAIL${NC}]: meta/check_code.sh"
((FAILURES+=1))
fi
exit "${FAILURES}"