ZealOS/meta/check_code.py
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

33 lines
876 B
Python
Executable file

#!/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)