#!/bin/bash set -euo pipefail css_file="css/style.css" if [[ ! -f "$css_file" ]]; then echo "error: $css_file not found" >&2 exit 1 fi python3 - <<'PY' from pathlib import Path css_path = Path("css/style.css") text = css_path.read_text() output = [] token = [] indent = 0 idx = 0 length = len(text) def flush_token(): if token: joined = " ".join("".join(token).split()) token.clear() return joined return "" while idx < length: if text.startswith("/*", idx): comment_end = text.find("*/", idx + 2) if comment_end == -1: comment_end = length - 2 comment = text[idx : comment_end + 2] output.append(" " * (indent * 4) + comment.strip() + "\n") idx = comment_end + 2 continue c = text[idx] if c.isspace(): idx += 1 continue if c == "{": selector = flush_token() output.append(selector + " {\n") indent += 1 idx += 1 continue if c == "}": pending = flush_token() if pending: output.append(" " * (indent * 4) + pending + "\n") indent = max(0, indent - 1) output.append(" " * (indent * 4) + "}\n\n") idx += 1 continue if c == ";": property_block = flush_token() if property_block: output.append(" " * (indent * 4) + property_block + ";\n") idx += 1 continue token.append(c) idx += 1 result = "".join(output).rstrip() + "\n" css_path.write_text(result) PY echo "Formatted $css_file"