forked from gitea/gitea
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…
Reference in New Issue