1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #!/usr/bin/env bash
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- #
- # generate.sh — generates railroad diagrams for the SQL grammar.
- set -euo pipefail
- cd "$(dirname "$0")"
- dest=../layouts/partials/sql-grammar
- # Clean up files from last run.
- rm -rf scratch
- # Run the railroad diagram generator, using a pinned version from our custom
- # fork.
- docker run --rm -i materialize/rr:v0.0.5 -nostyles -svg -noinline -width:600 - < sql-grammar.bnf > diagrams.zip
- # Extract the SVGs we care about and move them into place.
- mkdir scratch
- (
- cd scratch
- unzip -j ../diagrams.zip
- rm -f ../diagrams.zip Railroad-Diagram-Generator.svg index.html
- for f in *; do
- # Rewrite any underscores in filenames to hyphens, for consistency with
- # other Hugo partials.
- if [[ $f = *_* ]]; then
- mv -f "$f" "${f//_/-}"
- fi
- done
- )
- rm -rf $dest
- mv scratch $dest
- # ping hugo again
- sleep 3
- touch "$dest"/*
|