]> juplo.de Git - maven-thymeleaf-skin/commitdiff
WIP
authorKai Moritz <kai@juplo.de>
Mon, 2 Feb 2026 17:08:30 +0000 (18:08 +0100)
committerKai Moritz <kai@juplo.de>
Mon, 2 Feb 2026 17:08:37 +0000 (18:08 +0100)
src/main/resources/import-maven-site.sh

index 1e895b09ab5ae6b4c60728d25ba4c94a7ae352db..2edfa938bc65ffb5ae12a5ff05b9981e6c1a53d3 100755 (executable)
@@ -1,82 +1,69 @@
 #!/usr/bin/env bash
 set -euo pipefail
 
-if [ "$#" -ne 1 ]; then
-  echo "Usage: import-maven-site.sh <path-to-hugo-content-root>"
+if [ "$#" -lt 1 ]
+then
+  echo "Usage: import-maven-site.sh <path-to-hugo-site> [<path-in-hugo-content>]"
   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
+