Mercurial > self-hosted
comparison CGIT/git-bare @ 3:8e515a52c7a9
add:Cgit File
| author | Pluto <meokcin@gmail.com> |
|---|---|
| date | Tue, 03 Sep 2024 17:14:28 +0800 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 2:c8c80b5286b1 | 3:8e515a52c7a9 |
|---|---|
| 1 #!/bin/bash | |
| 2 | |
| 3 set -eu | |
| 4 | |
| 5 # /usr/local/bin/git-bare | |
| 6 | |
| 7 echo "1.make sure you are running with root user or sudo privileged" | |
| 8 echo "2.make sure you have installed cURL and Git" | |
| 9 echo "" | |
| 10 echo "Press Enter to continue..." | |
| 11 read | |
| 12 | |
| 13 # Check if the running user is root or sudo user | |
| 14 if [ "$(id -u)" -ne 0 ]; then | |
| 15 if ! sudo -v &> /dev/null; then | |
| 16 echo "Please run the script as root or with sudo privileged!" | |
| 17 exit 1 | |
| 18 fi | |
| 19 fi | |
| 20 | |
| 21 # Check if cURL is installed | |
| 22 if ! command -v curl &> /dev/null; then | |
| 23 echo "cURL is not installed, please install curl first." | |
| 24 echo "sudo apt update && sudo apt install -y curl" | |
| 25 exit 1 | |
| 26 fi | |
| 27 | |
| 28 # Check if Git is installed | |
| 29 if ! command -v git &> /dev/null; then | |
| 30 echo "Git is not installed, please install git first." | |
| 31 echo "sudo apt update && sudo apt install -y git" | |
| 32 exit 1 | |
| 33 fi | |
| 34 | |
| 35 read -p "Please enter the repository name (without .git)." reponame | |
| 36 | |
| 37 if [ -d "/home/git/${reponame}.git" ]; then | |
| 38 echo "Repository ${reponame} already exists" | |
| 39 exit 1 | |
| 40 else | |
| 41 git init --bare "/home/git/${reponame}.git" | |
| 42 cd "/home/git/${reponame}.git" | |
| 43 | |
| 44 read -p "Please enter the repository description:" description | |
| 45 echo "${description}." | sudo tee "description" > /dev/null | |
| 46 | |
| 47 # Update the Git repository info | |
| 48 if ! git update-server-info &> /dev/null; then | |
| 49 echo "Failed to update Git repository information, exiting..." | |
| 50 exit 1 | |
| 51 fi | |
| 52 | |
| 53 # Set up the new repository's post-receive | |
| 54 curl -s https://git.xvo.es/self-hosted/plain/cgit/post-receive.agefile -o hooks/post-receive | |
| 55 chmod +x hooks/post-receive | |
| 56 | |
| 57 # Set user groups and permissions for the repository | |
| 58 chown -R git:www-data "/home/git/${reponame}.git" | |
| 59 chmod -R ug+rwx,o-rwx "/home/git/${reponame}.git" | |
| 60 echo "New bare repository ${reponame} initialized successfully." | |
| 61 fi |
