1
0
Fork 0
gnome-shell/.gitlab-ci/eslint-coding-style.sh
Daniel Baumann 1fcdbd5df9
Adding upstream version 48.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 20:26:11 +02:00

43 lines
1.3 KiB
Bash
Executable file

#!/bin/bash
SRCDIR=$(realpath $(dirname $0)/..)
OUTDIR=$(mktemp --directory --tmpdir=$SRCDIR)
trap "rm -rf $OUTDIR" EXIT
# Turn ```javascript``` code snippets in the
# style guide into .js files in $OUTDIR
cat <<'EOF' | python3 - docs/js-coding-style.md $OUTDIR
import sys
import re
def extract_js_snippets(input_file, output_dir):
with open(input_file, 'r') as file:
content = file.read()
# Find all JavaScript code blocks using regex
js_blocks = re.findall(r'```javascript\n(.*?)\n?```', content, flags=re.DOTALL)
for i, (match) in enumerate(js_blocks):
js_code = match
# Remove one level of indent
js_code = re.sub(r'^ {4}', '', js_code, flags=re.MULTILINE)
# The following are class snippets, turn them
# into functions to not confuse eslint
js_code = re.sub(r'^moveActor', 'function moveActor', js_code)
js_code = re.sub(r'^desaturateActor', 'function desaturateActor', js_code)
# Finally, create a .js file in the output directory
output_filename = f'{output_dir}/{i}.js'
with open(output_filename, 'w') as out_file:
out_file.write(f'{js_code}\n')
input_file, output_dir = sys.argv[1:]
extract_js_snippets(input_file, output_dir)
EOF
eslint \
--rule 'no-undef: off' \
--rule 'no-unused-vars: off' \
--rule 'no-invalid-this: off' $OUTDIR/*.js