From 128ca4b161d039c48a04a58f78b5f30a286dde85 Mon Sep 17 00:00:00 2001 From: Tilde Black Admin Date: Fri, 23 Aug 2019 21:40:55 +0000 Subject: [PATCH] working gemini creation & operation --- creategemini.sh | 9 +++++++++ geminiroot.sh | 4 ++-- templates/gemini/head.gemini | 2 +- templates/gemini/users.gemini | 2 ++ 4 files changed, 14 insertions(+), 3 deletions(-) create mode 100755 creategemini.sh create mode 100644 templates/gemini/users.gemini diff --git a/creategemini.sh b/creategemini.sh new file mode 100755 index 0000000..d7cbc9d --- /dev/null +++ b/creategemini.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +all_users=$(grep /home < /etc/passwd | awk -F: '{print $1}') +printf "%s" "$all_users" | while read -r n; do + target="/var/gemini/users/${n}" + mkdir -p "$target" + chown "$n" "$target" + ln -s "$target" "/home/${n}/public_gemini" +done diff --git a/geminiroot.sh b/geminiroot.sh index 4449325..325fae8 100755 --- a/geminiroot.sh +++ b/geminiroot.sh @@ -6,10 +6,10 @@ template_dir="${current_dir}/templates/gemini" output="${template_dir}/users.gemini" printf "[Users]\\n" > "$output" printf "%s" "$all_users" | while read -r n; do - target="/var/gemini/users/${n}" - if find "$target" -mindepth 1 -print -quit 2>/dev/null | grep -q .; then + if [ -f "/var/gemini/users/${n}/.gemini" ]; then printf "=> /users/%s ~%s\\n" "$n" "$n" >> "$output" fi done cat "${template_dir}/head.gemini" "${output}" > /var/gemini/.gemini +cat "$output" > /var/gemini/users/.gemini diff --git a/templates/gemini/head.gemini b/templates/gemini/head.gemini index 8eefb50..9b8b300 100644 --- a/templates/gemini/head.gemini +++ b/templates/gemini/head.gemini @@ -31,4 +31,4 @@ Tilde.Black is proud to support the emerging Gemini protocol. => gemini://zaibatsu.circumlunar.space Read more about Gemini -User pages will be coming soon. + diff --git a/templates/gemini/users.gemini b/templates/gemini/users.gemini new file mode 100644 index 0000000..4754d4a --- /dev/null +++ b/templates/gemini/users.gemini @@ -0,0 +1,2 @@ +[Users] +=> /users/fox ~fox