#!/bin/sh
desk_pagesx=3
desk_pagesy=3

WALLPAPER_TARGET_HOME="${HOME}/.fvwm-crystal/wallpapers"
WALLPAPER_SOURCE_ROOT="/media/sda1/image/sijun"

if [ ! -d "${WALLPAPER_SOURCE_ROOT}" ]; then echo "${WALLPAPER_SOURCE_ROOT} not found."; exit 1; fi; \
if [ ! -d "${WALLPAPER_TARGET_HOME}" ]; then mkdir -p "${WALLPAPER_TARGET_HOME}"; fi; \
\
PAGE_X_MAX=$(expr ${desk_pagesx} - 1); \
PAGE_Y_MAX=$(expr ${desk_pagesy} - 1); \
PAGE_CUR=0; \
\
for PAGE_X in $(seq 0 $PAGE_X_MAX); do \
for PAGE_Y in $(seq 0 $PAGE_Y_MAX); do \
  PAGE_CUR=$(expr $PAGE_CUR + 1); \
\
  WALLPAPER_TARGET_FILE="${WALLPAPER_TARGET_HOME}/${PAGE_X}.${PAGE_Y}"; \
  WALLPAPER_SOURCE_HOME=$(ls -1dF "${WALLPAPER_SOURCE_ROOT}"/* | awk -v CF=$PAGE_CUR '\
    BEGIN { RS = ""; FS = "\n" } \
    END { if (CF > NF) CF = NF; print $CF } \
  '); \
  WALLPAPER_SOURCE_FILE="${WALLPAPER_SOURCE_HOME}"$(ls -1 "${WALLPAPER_SOURCE_HOME}" | awk '\
    BEGIN { RS = ""; FS = "\n"; srand() } \
    END   { RF = int(rand()*NF + 1); print $RF } \
  '); \
\
  if [ ! -f "$WALLPAPER_SOURCE_FILE" ]; then echo "$WALLPAPER_SOURCE_FILE not a file!"; exit 1; fi; \
  ln -sf "$WALLPAPER_SOURCE_FILE" "$WALLPAPER_TARGET_FILE"; \
  if [ ! -f "$WALLPAPER_TARGET_FILE" ]; then echo "$WALLPAPER_TARGET_FILE not a file!"; exit 1; fi; \
done; \
done

exit

PAGE_CUR=0; \
PAGE_X_MAX=$(expr ${desk_pagesx} - 1); \
PAGE_Y_MAX=$(expr ${desk_pagesy} - 1); \
\
for PAGE_X in $(seq 0 $PAGE_X_MAX); do \
for PAGE_Y in $(seq 0 $PAGE_Y_MAX); do \
  PAGE_CUR=$(expr $PAGE_CUR + 1); \
\
  WALLPAPER_TARGET_FILE="${WALLPAPER_TARGET_HOME}/${PAGE_X}.${PAGE_Y}"; \
  WALLPAPER_SOURCE_HOME="${WALLPAPER_SOURCE_ROOT}/"$(ls -1 "${WALLPAPER_SOURCE_ROOT}" | \
  awk -v CF=$PAGE_CUR '\
    BEGIN { RS = ""; FS = "\n" } \
    END { if (CF > NF) CF = NF; print $CF } \
  '); \
  WALLPAPER_SOURCE_FILE="$WALLPAPER_SOURCE_HOME/"$(ls -1 "$WALLPAPER_SOURCE_HOME" | awk '\
    BEGIN { RS = ""; FS = "\n"; srand() } \
    END   { RF = int(rand()*NF + 1); print $RF } \
  '); \
\
  echo "wrot: [$PAGE_CUR] $WALLPAPER_SOURCE_FILE -> $WALLPAPER_TARGET_FILE..."; \
  ln -sf "$WALLPAPER_SOURCE_FILE" "$WALLPAPER_TARGET_FILE"; \
done; \
done
