From: Paul Hänsch Date: Fri, 20 May 2022 10:09:11 +0000 (+0200) Subject: track pages in git X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=a75ec6d2c578e3ce1e3891c9e2f24e2daf9f1335;p=shellwiki track pages in git --- diff --git a/handlers/30_edit.sh b/handlers/30_edit.sh index aa55796..6dfe2e8 100755 --- a/handlers/30_edit.sh +++ b/handlers/30_edit.sh @@ -25,16 +25,25 @@ if [ "$edit_page" = "$PATH_INFO" ]; then # END EDIT SCRIPT, continue in index.cgi elif [ "$edit_action" = update ]; then - if mkdir -p -- "${edit_file%/#page.md}" \ - && S_LOCK "$edit_file"; then + if mkdir -p -- "${edit_file%/#page.md}" \ + && S_LOCK "$edit_file"; then POST pagetext >"$edit_file" S_RELEASE "$edit_file" - REDIRECT "${_BASE}${PATH_INFO%\[edit\]}" else export ERRMSG="ERR_NOLOCK" REDIRECT "${_BASE}${PATH_INFO%\[edit\]}/[edit]" fi + if [ "$(which git)" ]; then + git -C "$_DATA" add \ + -- "pages/$edit_page/#page.md" + git -C "$_DATA" commit -m \ + "Page # ${edit_page} # updated by user @ ${USER_NAME} @" \ + -- "pages/$edit_page/#page.md" + fi + + REDIRECT "${_BASE}${PATH_INFO%\[edit\]}" + elif [ "$edit_action" = cancel ]; then S_RELEASE "$edit_file" REDIRECT "${_BASE}${PATH_INFO%\[edit\]}" diff --git a/index.cgi b/index.cgi index 57398a4..2248308 100755 --- a/index.cgi +++ b/index.cgi @@ -19,6 +19,21 @@ wiki_text() { cat -- "$mdfile" } +if [ "$(which git)" -a ! -f "$_DATA/.gitignore" ]; then + cat >"$_DATA/.gitignore" <<-EOF + users.db + serverkey + */#attachments/ + */#cache/ + */#page.lock + */#page.*.cache + */#page.*.cache.* + EOF + git init "$_DATA" + git -C "$_DATA" add .gitignore + git -C "$_DATA" commit -m 'initialization' -- .gitignore +fi 1>&2 + for handler in "$_EXEC"/handlers/*; do . "$handler" && break done