Drop unmaintained gogs migration script (#2947)
This commit is contained in:
		
							parent
							
								
									e00df9fb8e
								
							
						
					
					
						commit
						fd09d1ffb8
					
				| @ -1,206 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| 
 |  | ||||||
| gitea_version=1.0.1 |  | ||||||
| tested_gogs_version="0.9.114.1227" |  | ||||||
| gogs_binary=gogs |  | ||||||
| gitea_binary=gitea |  | ||||||
| download_gitea=true |  | ||||||
| gitea_path= |  | ||||||
| 
 |  | ||||||
| function usage() {  |  | ||||||
|   echo "Optional parameters: [-b Gitea binary] [-i Gitea install dir] [-o gogs binary] [-h help]"; |  | ||||||
|   exit 1;  |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| while getopts ":b::i:o:h:" opt; do |  | ||||||
|   case $opt in |  | ||||||
|     b) |  | ||||||
|         gitea_binary=${OPTARG} |  | ||||||
|         download_gitea=false |  | ||||||
|       ;; |  | ||||||
|     i) |  | ||||||
|         gitea_path=${OPTARG} |  | ||||||
|       ;; |  | ||||||
|     o) |  | ||||||
|         gogs_binary=${OPTARG} |  | ||||||
|       ;; |  | ||||||
|     h) |  | ||||||
|        usage |  | ||||||
|       ;; |  | ||||||
|     \?) |  | ||||||
|       echo -e "Invalid option: -$OPTARG"  |  | ||||||
|       exit 1 |  | ||||||
|       ;; |  | ||||||
|     :) |  | ||||||
|       usage |  | ||||||
|       exit 1 |  | ||||||
|       ;; |  | ||||||
|   esac |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| function exitOnError() { |  | ||||||
|   if [ "$?" != "0" ]; then |  | ||||||
|       echo -e $1 |  | ||||||
|       exit 1 |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function checkBinary() { |  | ||||||
|   if [ ! -f $1 ]; then |  | ||||||
|    echo "Unable to find $1" |  | ||||||
|    exit 1 |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function continueYN(){ |  | ||||||
|   while true; do |  | ||||||
|     echo -e "$1 Yes or No" |  | ||||||
|     read yn |  | ||||||
|     case $yn in |  | ||||||
|         [Yy]* ) break;; |  | ||||||
|         [Nn]* ) exit 1;; |  | ||||||
|         * )     echo "Please answer yes or no.";; |  | ||||||
|     esac |  | ||||||
|   done |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ########## Binary checks |  | ||||||
| if pidof "$gogs_binary" >/dev/null; then |  | ||||||
|  echo "Please stop gogs before migrating to Gitea" |  | ||||||
|  exit 1 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| checkBinary "$gogs_binary" |  | ||||||
| 
 |  | ||||||
| if [ ! -x "$gogs_binary" ]; then |  | ||||||
|  echo "Please make sure that you are running this script as the gogs user" |  | ||||||
|  exit 1 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| ########## Version check |  | ||||||
| gogs_version=$(./$gogs_binary --version) |  | ||||||
| original_IFS=$IFS |  | ||||||
| IFS="." && current_version=(${gogs_version#"Gogs version "}) && minimal_version=($tested_gogs_version) |  | ||||||
| IFS=$original_IFS |  | ||||||
| 
 |  | ||||||
| count=0 |  | ||||||
| for i in "${current_version[@]}"  |  | ||||||
| do |  | ||||||
|   if [ $i -gt ${minimal_version[$count]} ]; then |  | ||||||
|    echo -e "!!!--WARNING--!!!\nYour $gogs_version is newer than the tested Gogs version $tested_gogs_version\nUse this script on your own risk\n!!!--WARNING--!!!" |  | ||||||
|    break |  | ||||||
|   fi |  | ||||||
|   let count+=1 |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| ########## Disclaimer |  | ||||||
| continueYN "This migration script creates a backup before it starts with the actual migration |  | ||||||
| If something goes wrong you could always resotre this backup. |  | ||||||
| The backups are stored into your gogs folder in gogs-dump-[timestamp].zip file |  | ||||||
| 
 |  | ||||||
| Migrating from gogs to gitea, are you sure?" |  | ||||||
| 
 |  | ||||||
| ########## gogs dump |  | ||||||
| echo "Creating a backup of gogs, this could take a while..." |  | ||||||
| ./"$gogs_binary" dump |  | ||||||
| exitOnError "Failed to create a gogs dump" |  | ||||||
| 
 |  | ||||||
| ########## Create Gitea folder |  | ||||||
| if [ -z "$gitea_path" ]; then |  | ||||||
|   echo "Where do you want to install Gitea?" |  | ||||||
|   read gitea_path  |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ ! -d "$gitea_path" ]; then |  | ||||||
|   mkdir -p "$gitea_path" |  | ||||||
|   exitOnError |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ "$(ls -A $gitea_path)" ]; then |  | ||||||
|   continueYN "!!!--WARNING--!!!\nDirectory $gitea_path is not empty, do you want to continue?" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ########## Download Gitea |  | ||||||
| if [ $download_gitea == true ]; then |  | ||||||
| 
 |  | ||||||
|   ########## Detect os |  | ||||||
|   case "$OSTYPE" in |  | ||||||
|     darwin*)    platform="darwin-10.6";;  |  | ||||||
|     linux*)     platform="linux" ;; |  | ||||||
|     freebsd*)   platform="bsd" ;; |  | ||||||
|     netbsd*)    platform="bsd" ;; |  | ||||||
|     openbsd*)   platform="bsd" ;; |  | ||||||
|     *)          echo "Unsupported os: $OSTYPE\n Please download/compile your own binary and run this script with the -b option" exit 1;; |  | ||||||
|   esac |  | ||||||
| 
 |  | ||||||
|   arch="" |  | ||||||
|   bits="" |  | ||||||
|   if [[ "$platform" == "linux" ]] || [[ "$platform" == "bsd" ]]; then |  | ||||||
|     arch="$(uname -m | sed -e 's/arm\(.*\)/arm-\1/' -e s/aarch64.*/arm64/)" |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   if [[ "$platform" == "bsd" ]] && [[ "$arch" != "arm"* ]]; then |  | ||||||
|     echo "Currently Gitea only supports arm prebuilt binarys on bsd" |  | ||||||
|     exit 1 |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   if [[ "$arch" != "arm"* ]] &&  [[ "$arch" != "mips"* ]]; then |  | ||||||
|     arch="" |  | ||||||
|     case "$(getconf LONG_BIT)" in |  | ||||||
|       64*)  bits="amd64";;  |  | ||||||
|       32*)  bits="386" ;; |  | ||||||
|     esac |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   ########## Wget Gitea |  | ||||||
|   echo "Downloading Gitea" |  | ||||||
|   file="gitea-$gitea_version-$platform-$arch$bits" |  | ||||||
|   url="https://dl.gitea.io/gitea/$gitea_version/$file" |  | ||||||
|   wget "$url" -P "$gitea_path" |  | ||||||
|   exitOnError "Failed to download $url" |  | ||||||
| 
 |  | ||||||
|   wget "$url.sha256" -P "$gitea_path" |  | ||||||
|   exitOnError "Failed to Gitea checksum $url.sha256" |  | ||||||
| 
 |  | ||||||
|   echo "Comparing checksums" |  | ||||||
|   gogs_dir=$(pwd) |  | ||||||
|   cd "$gitea_path" |  | ||||||
| 
 |  | ||||||
|   sha256sum -c "$file.sha256" |  | ||||||
|   exitOnError "Downloaded Gitea checksums do not match" |  | ||||||
| 
 |  | ||||||
|   rm "$file.sha256" |  | ||||||
|   mv "$file" gitea |  | ||||||
|   cd "$gogs_dir" |  | ||||||
| 
 |  | ||||||
| else |  | ||||||
|   checkBinary "$gitea_binary" |  | ||||||
|   if [ "$gitea_binary" != "$gitea_path/gitea" ];then |  | ||||||
|     cp "$gitea_binary" "$gitea_path/gitea" |  | ||||||
|   fi |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| ########## Copy gogs data to Gitea folder |  | ||||||
| echo "Copying gogs data to Gitea, this could take a while..." |  | ||||||
| cp -R custom "$gitea_path" |  | ||||||
| cp -R data "$gitea_path" |  | ||||||
| #cp -R conf "$gitea_path" |  | ||||||
| 
 |  | ||||||
| ########## Moving & deleting old files |  | ||||||
| #mv $gitea_path/conf $gitea_path/options |  | ||||||
| cd "$gitea_path" |  | ||||||
| mv "custom/conf/app.ini" "custom/conf/gogs_app.ini" |  | ||||||
| url="https://raw.githubusercontent.com/go-gitea/gitea/v$gitea_version/conf/app.ini" |  | ||||||
| wget "$url" -P "custom/conf/" |  | ||||||
| exitOnError "Unable to download Gitea app.ini" |  | ||||||
| rm -f conf/README.md |  | ||||||
| 
 |  | ||||||
| echo -e "Migration is almost complete, you only need to merge custom/conf/gogs_app.ini into custom/conf/app.ini" |  | ||||||
| continueYN "Do you want to start Gitea?" |  | ||||||
| 
 |  | ||||||
| ########## Starting Gitea |  | ||||||
| echo "Starting Gitea" |  | ||||||
| chmod +x gitea |  | ||||||
| ./gitea web |  | ||||||
| exitOnError "Failed to start Gitea" |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user