summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-06-17 23:21:03 +0300
committerPaul Buetow <paul@buetow.org>2026-06-17 23:21:03 +0300
commit61890e0bd98262a55b3afff495ebfead33d76b96 (patch)
tree9422f31856e205f6e9374a14c5205027f912d458 /bin
parent7c94be57437ecdc9cadeb95bc4c26a25040163a9 (diff)
Add configurable SOURCE_URL footer link; release 0.9.00.9.0
The footer "Site generated ... with <link>" was hardcoded to the shuriken.sh repository. Make it configurable via the SOURCE_URL config variable and the --source-url CLI flag (defaulting to the shuriken.sh repo, so existing sites are unchanged). The footer derives the displayed text from the URL by stripping its scheme. Plumbed through apply_config_defaults, CLI override targets/spec, --print-config, the verbose effective-config log, and the header template's new render_source_url_html (config_html) render var. Documented in shuriken.default.conf and README; added a generation test asserting a custom SOURCE_URL replaces the default footer link, and updated the print-config and header render-var-subset expectations. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/shuriken16
1 files changed, 15 insertions, 1 deletions
diff --git a/bin/shuriken b/bin/shuriken
index c251336..e6ac7b2 100755
--- a/bin/shuriken
+++ b/bin/shuriken
@@ -10,7 +10,7 @@ if (( BASH_VERSINFO[0] < 5 \
exit 1
fi
-declare -r VERSION='0.8.0'
+declare -r VERSION='0.9.0'
declare -r DEFAULTRC="${SHURIKEN_DEFAULT_RC:-/etc/default/shuriken}"
declare -r PACKAGED_TEMPLATE_DIR='/usr/share/shuriken/templates/default'
declare -r PACKAGED_ASSET_DIR='/usr/share/shuriken/assets'
@@ -40,6 +40,7 @@ declare -ra CLI_CONFIG_OVERRIDE_TARGETS=(
IMAGE_JOBS
RANDOM_SEED
SHUFFLE
+ SOURCE_URL
SPLASH_PAGE
STATS_PAGE
SYNC_DELETE
@@ -48,6 +49,7 @@ declare -ra CLI_CONFIG_OVERRIDE_TARGETS=(
declare -Ar CLI_OPTION_SPEC=(
[--config]='kind=value target=SHURIKEN_CLI_CONFIG_FILE argument=path'
[--favicon]='kind=value config=FAVICON argument=path'
+ [--source-url]='kind=value config=SOURCE_URL argument=url'
[--incoming]='kind=value config=INCOMING_DIR'
[--dist]='kind=value config=DIST_DIR'
[--template]='kind=value config=TEMPLATE_DIR'
@@ -686,6 +688,7 @@ declare -ra TEMPLATE_RENDER_FIELD_SPECS=(
'render_preview_thumbs_html|context_raw|preview_thumbs|preview_thumbs|previewpage'
'render_redirect_page_html|context_html|redirect_page|redirect_page|redirect'
'render_show_header_bar|context_raw|show_header_bar|show_header_bar|header'
+ 'render_source_url_html|config_html|SOURCE_URL||header'
'render_stats_body_html|context_raw|stats_body|stats_body|stats'
'render_stats_page_html|config_html|STATS_PAGE||header'
'render_tarball_include|tarball_include|||footer'
@@ -1101,6 +1104,10 @@ prepare_template_render_var__config_html() {
ORIGINAL_BASEPATH)
context_value="$ORIGINAL_BASEPATH"
;;
+ SOURCE_URL)
+ # Always defaulted by apply_config_defaults (footer credit link).
+ context_value="${SOURCE_URL:-}"
+ ;;
STATS_PAGE)
# Always defaulted by apply_config_defaults; degrade to
# "no" (link hidden) if somehow unset so the header bar
@@ -4702,6 +4709,11 @@ apply_config_defaults() {
ORIGINAL_BASEPATH="${ORIGINAL_BASEPATH:-}"
RANDOM_SEED="${RANDOM_SEED:-}"
SHUFFLE="${SHUFFLE:-no}"
+ # SOURCE_URL is the project/source link shown in the page footer ("Site
+ # generated ... with <SOURCE_URL>"). Defaults to the shuriken.sh repo;
+ # override it per site (e.g. to the album's own repo) via config or
+ # --source-url. The footer derives the displayed text from the URL itself.
+ SOURCE_URL="${SOURCE_URL:-https://codeberg.org/snonux/shuriken.sh}"
SPLASH_PAGE="${SPLASH_PAGE:-yes}"
STATS_PAGE="${STATS_PAGE:-yes}"
SYNC_DELETE="${SYNC_DELETE:-yes}"
@@ -4747,6 +4759,7 @@ print_config() {
print_shell_assignment DIST_DIR "$DIST_DIR"
print_shell_assignment TEMPLATE_DIR "$TEMPLATE_DIR"
print_shell_assignment FAVICON "$FAVICON"
+ print_shell_assignment SOURCE_URL "$SOURCE_URL"
print_shell_assignment TITLE "$TITLE"
print_shell_assignment HEIGHT "$HEIGHT"
print_shell_assignment THUMBHEIGHT "$THUMBHEIGHT"
@@ -5716,6 +5729,7 @@ log_configured_action() {
log_verbose "Effective output directory: ${DIST_DIR:-}"
log_verbose "Effective template directory: ${TEMPLATE_DIR:-}"
log_verbose "Effective favicon: ${FAVICON:-(bundled default)}"
+ log_verbose "Effective source URL: $SOURCE_URL"
log_verbose "Effective image jobs: $IMAGE_JOBS"
log_verbose "Effective ImageMagick timeout: ${IMAGEMAGICK_TIMEOUT}s"
log_verbose "Effective tar timeout: ${TAR_TIMEOUT}s"