From 9934dd538b0ce116e3b1600272cb46369b082246 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Wed, 2 Feb 2022 13:34:47 +0800 Subject: init commit --- git/README.md | 9 +++++++++ git/create.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ git/daemon.sh | 7 +++++++ git/git-daemon.service | 21 ++++++++++++++++++++ 4 files changed, 90 insertions(+) create mode 100644 git/README.md create mode 100755 git/create.sh create mode 100755 git/daemon.sh create mode 100644 git/git-daemon.service (limited to 'git') diff --git a/git/README.md b/git/README.md new file mode 100644 index 0000000..5637f06 --- /dev/null +++ b/git/README.md @@ -0,0 +1,9 @@ +## For Git Daemon + +read https://git-scm.com/book/be/v2/Git-on-the-Server-Git-Daemon + +## For Http Files for Git + +refs: +- https://mtkn.jp/computer/git_server.html +- https://codemadness.org/stagit.html diff --git a/git/create.sh b/git/create.sh new file mode 100755 index 0000000..f2f4227 --- /dev/null +++ b/git/create.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# - Makes index for repositories in a single directory. +# - Makes static pages for each repository directory. +# +# NOTE, things to do manually (once) before running this script: +# - copy style.css, logo.png and favicon.png manually, a style.css example +# is included. +# +# - write clone URL, for example "git://git.codemadness.org/dir" to the "url" +# file for each repo. +# - write owner of repo to the "owner" file. +# - write description in "description" file. +# +# Usage: +# - mkdir -p htmldir && cd htmldir +# - sh example_create.sh + +ORIG_DIR=`pwd` + +# path must be absolute. +reposdir="/srv/git" +curdir="/srv/git/www" + +cd ${curdir} + +# make files per repo. +for dir in "${reposdir}/"*/; do + # strip .git suffix. + r=$(basename "${dir}") + d=$(basename "${dir}" ".git") + printf "%s... " "${d}" + + mkdir -p "${curdir}/${d}" + cd "${curdir}/${d}" || continue + + test -f ${dir}/owner || echo `whoami` >${dir}/owner + test -f ${dir}/url || echo git://git.topo.tw/${d} >${dir}/url + + stagit -c ".cache" -u "https://git.codemadness.nl/$d/" "${reposdir}/${r}" + + # symlinks + ln -sf log.html index.html + ln -sf ../style.css style.css + ln -sf ../logo.png logo.png + ln -sf ../favicon.png favicon.png + + echo "done" +done + +# make index. +stagit-index "${reposdir}/"*/ > "${curdir}/index.html" + +cd ${ORIG_DIR} diff --git a/git/daemon.sh b/git/daemon.sh new file mode 100755 index 0000000..3cfac1b --- /dev/null +++ b/git/daemon.sh @@ -0,0 +1,7 @@ +#! /bin/bash + +git daemon \ + --export-all \ + --enable=upload-archive \ + --verbose --base-path=`pwd` \ + -- `pwd`/* diff --git a/git/git-daemon.service b/git/git-daemon.service new file mode 100644 index 0000000..4641aea --- /dev/null +++ b/git/git-daemon.service @@ -0,0 +1,21 @@ +[Unit] +Description=Start Git Daemon +Requires=network-online.target +After=network-online.target + +[Service] +ExecStart=/home/pham/git/vps/git/daemon.sh +WorkingDirectory=/srv/git + +Restart=always +RestartSec=500ms + +StandardOutput=syslog +StandardError=syslog +SyslogIdentifier=git-daemon + +User=pham +Group=pham + +[Install] +WantedBy=multi-user.target -- cgit v1.2.3-70-g09d2