From 73d368d83240d1fdfc7fe21b5b6529045fc1ba2d Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Mon, 2 Feb 2026 18:08:30 +0100 Subject: [PATCH] WIP --- src/main/resources/import-maven-site.sh | 111 +++++++++++------------- 1 file changed, 49 insertions(+), 62 deletions(-) diff --git a/src/main/resources/import-maven-site.sh b/src/main/resources/import-maven-site.sh index 1e895b0..2edfa93 100755 --- a/src/main/resources/import-maven-site.sh +++ b/src/main/resources/import-maven-site.sh @@ -1,82 +1,69 @@ #!/usr/bin/env bash set -euo pipefail -if [ "$#" -ne 1 ]; then - echo "Usage: import-maven-site.sh " +if [ "$#" -lt 1 ] +then + echo "Usage: import-maven-site.sh []" exit 1 fi SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) HUGO_ROOT="$1" +if [ "$#" -eq 2 ] +then + PATH_IN_HUGO_CONTENT="$2" +else + PATH_IN_HUGO_CONTENT="" +fi -command -v yq >/dev/null 2>&1 || { echo "yq is required"; exit 1; } - -YAML=$(sed -n '/MAVEN-NAVIGATION-BEGIN/,/MAVEN-NAVIGATION-END/p' "$SCRIPT_DIR/index.html" | sed '1d;$d') - -PATH_IN_HUGO_CONTENT=$(echo "$YAML" | yq -r '.path') - -TARGET="$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT" - -mkdir -p "$TARGET" - -declare -A MENU_PATH -declare -A MENU_HAS_ITEMS -declare -A MENU_DEPTH +command -v jq >/dev/null 2>&1 || { echo "jq is required"; exit 1; } -while IFS=$'\t' read -r path has_items href depth -do - href="${href#/}" - src="$SCRIPT_DIR/$href" - [ -f "$src" ] || continue +JSON=$(sed -n '/MAVEN-NAVIGATION-BEGIN/,/MAVEN-NAVIGATION-END/p' "$SCRIPT_DIR/index.html" | sed '1d;$d') - MENU_PATH["$href"]="$path" - MENU_HAS_ITEMS["$href"]="$has_items" - MENU_DEPTH["$href"]="$depth" -done < <( echo "$YAML" | yq -r ' -def segment: - sub("\\.html$"; "") | ltrimstr("/"); -def walk(path): - if (.href | type) == "string" and .href != "" then - (path + [(.href | segment)]) as $newPath - | [ - ($newPath | join("/")), - ((.items | length) > 0), - .href, - ($newPath | length) - ], - (.items[]? | walk($newPath)) - else - (.items[]? | walk(path)) - end; -.menus[].items[] | walk([]) -| @tsv -') +echo "$JSON" | jq -C . -for href in "${!MENU_PATH[@]}" +echo mkdir -p "$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT" +for i in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type f -name '*.html') do - src="$href" - path="${MENU_PATH[$href]}" - has_items="${MENU_HAS_ITEMS[$href]}" - - if [[ "$has_items" == "true" ]] + SOURCE="$i" + FILE=$(basename $SOURCE $SCRIPT_DIR) + PATH_IN_PROJECT=$(echo "$JSON" | jq -r '.pages[]|select(.href == "'"$FILE"'").path') + NUM_CHILDS=$(echo "$JSON" | jq -r '.pages[]|select(.href == "'"$FILE"'").childs|length') + TARGET="$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT" + if [ "$NUM_CHILDS" -gt 0 ] then - dst="${TARGET}${path}/_index.html" - else - dst="${TARGET}${path}.html" + TARGET="$TARGET${FILE%.html}" fi - - case "$href" in - index.html) - dst="${TARGET}_index.html" - ;; - esac - - mkdir -p "$(dirname "$dst")" - cp -v "$src" "$dst" + echo mkdir -p $TARGET + echo cp $SOURCE $TARGET done -mkdir -p "$HUGO_ROOT/static/$PATH_IN_HUGO_CONTENT" +echo mkdir -p "$HUGO_ROOT/static/$PATH_IN_HUGO_CONTENT" for i in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type d) do - cp -av "$i" "$HUGO_ROOT/static/$PATH_IN_HUGO_CONTENT" + echo cp -av "$i" "$HUGO_ROOT/static/$PATH_IN_HUGO_CONTENT" done + +# for href in "${!MENU_PATH[@]}" +# do +# src="$href" +# path="${MENU_PATH[$href]}" +# has_items="${MENU_HAS_ITEMS[$href]}" +# +# if [[ "$has_items" == "true" ]] +# then +# dst="${TARGET}${path}/_index.html" +# else +# dst="${TARGET}${path}.html" +# fi +# +# case "$href" in +# index.html) +# dst="${TARGET}_index.html" +# ;; +# esac +# +# mkdir -p "$(dirname "$dst")" +# cp -v "$src" "$dst" +# done + -- 2.39.5