1 #!/bin/sh 2 3 [ -z "$1" ] && echo "file path not provided" && exit 1 4 5 git_folder="$1" 6 7 bare_repos_list=$(find "$git_folder" -mindepth 1 -maxdepth 2 -name '*.git' \ 8 -type d -printf '%P\n' | sort) 9 10 [ -z "$bare_repos_list" ] \ 11 && echo "folder does not contain bare repositories" \ 12 && exit 1 13 14 # generate git repositories index (main page) 15 stagit-index $bare_repos_list > index.html 16 17 repos_name_list=$(find "$git_folder" \ 18 -mindepth 1 -maxdepth 1 -type d -printf '%f\n') 19 20 for repo in $repos_name_list;\ 21 do 22 echo "$git_folder/$repo".git; 23 ( 24 cd "$git_folder/$repo" || exit 25 stagit "$git_folder/$repo".git -c "$git_folder"/.cache 26 ln -sf files.html index.html 27 ln -sf ../style.css style.css 28 ln -sf ../logo.png logo.png 29 ln -sf ../favicon.png favicon.png 30 ) 31 # link repos to git home (makes url prettier) 32 # for repo in $(find repos -name *.git); do ln -sf $repo /home/git; done 33 # ln -sf "$git_folder/$repo".git /home/git 34 done 35
