Merge pull request #826 from nullworks/totallynotelite
Update script migration and install script improvements
This commit is contained in:
commit
e65736f5b7
@ -41,7 +41,7 @@ and a lot of useful features, including
|
|||||||
## Automatic: (Ubuntu 17.10+/Arch based only)
|
## Automatic: (Ubuntu 17.10+/Arch based only)
|
||||||
Run in terminal:
|
Run in terminal:
|
||||||
|
|
||||||
* `wget -O - https://raw.githubusercontent.com/nullworks/One-in-all-cathook-install/master/install-all | bash`
|
* `bash <(wget -qO- https://raw.githubusercontent.com/nullworks/One-in-all-cathook-install/master/install-all)`
|
||||||
|
|
||||||
## Manual (Outdated):
|
## Manual (Outdated):
|
||||||
You need CMake to build cathook, CMake should take care of dependencies
|
You need CMake to build cathook, CMake should take care of dependencies
|
||||||
|
23
install-all
23
install-all
@ -2,17 +2,10 @@
|
|||||||
|
|
||||||
RUNUSER="sudo -u $LOGNAME"
|
RUNUSER="sudo -u $LOGNAME"
|
||||||
|
|
||||||
#
|
set -e
|
||||||
# Install git in case this is a install-all only install
|
|
||||||
#
|
# install all dependencies
|
||||||
if [ -x "$(command -v pacman)" ]; then
|
./scripts/dependencycheck
|
||||||
sudo pacman -S --needed --noconfirm git
|
|
||||||
elif [ -x "$(command -v apt-get)" ]; then
|
|
||||||
sudo apt-get install -y git
|
|
||||||
else
|
|
||||||
echo -e "\033[1;31m\nCathook autoinstall is not supported on this system! Please install the following packages before continuing: Git, Boost + Headers, CMake, Gcc with 32 bit support, Gdb, 32 Bit SDL + Headers, 32 Bit Glew + Headers, 32 Bit Freetype 2 + Headers, Rsync, 32 Bit libglvnd\n\033[0m"
|
|
||||||
read -p "Press enter to continue or CTRL+C to cancel."
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Update cathook
|
# Update cathook
|
||||||
@ -25,9 +18,6 @@ fi
|
|||||||
$RUNUSER git fetch --force --depth 1 origin refs/tags/latest:refs/tags/latest && $RUNUSER git reset --hard latest # pull changes from github
|
$RUNUSER git fetch --force --depth 1 origin refs/tags/latest:refs/tags/latest && $RUNUSER git reset --hard latest # pull changes from github
|
||||||
$RUNUSER git submodule update --depth 1 --init --recursive # update/init submodules
|
$RUNUSER git submodule update --depth 1 --init --recursive # update/init submodules
|
||||||
|
|
||||||
# install all dependencies and allow non interactive install
|
|
||||||
./scripts/dependencycheck true
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set config version for update script
|
# Set config version for update script
|
||||||
#
|
#
|
||||||
@ -38,7 +28,4 @@ $RUNUSER bash -c ". ./scripts/config.shlib; cfg_write ./scripts/updater-preferen
|
|||||||
# Build cathook
|
# Build cathook
|
||||||
#
|
#
|
||||||
|
|
||||||
$RUNUSER mkdir -p ./build; pushd build #create a directory for building cathook
|
$RUNUSER ./update
|
||||||
$RUNUSER cmake ..;$RUNUSER make -j$(grep -c '^processor' /proc/cpuinfo) # create makefile and build using all available threads
|
|
||||||
sudo make data # create /opt/cathook/data
|
|
||||||
popd; cd ..
|
|
||||||
|
@ -3,12 +3,6 @@
|
|||||||
arch_packages=(git boost cmake make gcc gdb lib32-sdl2 lib32-glew lib32-freetype2 rsync lib32-libglvnd dialog)
|
arch_packages=(git boost cmake make gcc gdb lib32-sdl2 lib32-glew lib32-freetype2 rsync lib32-libglvnd dialog)
|
||||||
ubuntu_packages=(software-properties-common build-essential git g++ g++-multilib libboost-all-dev gdb libsdl2-dev:i386 libglew-dev:i386 libfreetype6-dev:i386 cmake dialog rsync)
|
ubuntu_packages=(software-properties-common build-essential git g++ g++-multilib libboost-all-dev gdb libsdl2-dev:i386 libglew-dev:i386 libfreetype6-dev:i386 cmake dialog rsync)
|
||||||
|
|
||||||
if [ "$1" == true ]; then
|
|
||||||
allow_non_interactive=true
|
|
||||||
else
|
|
||||||
allow_non_interactive=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -x "$(command -v pacman)" ]; then
|
if [ -x "$(command -v pacman)" ]; then
|
||||||
pacman -Qi "${arch_packages[@]}" > /dev/null 2>&1
|
pacman -Qi "${arch_packages[@]}" > /dev/null 2>&1
|
||||||
out=$?
|
out=$?
|
||||||
@ -26,8 +20,6 @@ if [ -x "$(command -v pacman)" ]; then
|
|||||||
if [ "$out" != 0 ]; then
|
if [ "$out" != 0 ]; then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
elif [ "$allow_non_interactive" == false ]; then
|
|
||||||
exit
|
|
||||||
fi
|
fi
|
||||||
sudo pacman -S --noconfirm --needed "${arch_packages[@]}"
|
sudo pacman -S --noconfirm --needed "${arch_packages[@]}"
|
||||||
fi
|
fi
|
||||||
@ -48,15 +40,13 @@ elif [ -x "$(command -v apt-get)" ]; then
|
|||||||
if [ "$out" != 0 ]; then
|
if [ "$out" != 0 ]; then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
elif [ "$allow_non_interactive" == false ]; then
|
|
||||||
exit
|
|
||||||
fi
|
fi
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y software-properties-common
|
sudo apt-get install -y software-properties-common
|
||||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||||
sudo dpkg --add-architecture i386
|
sudo dpkg --add-architecture i386
|
||||||
sudo apt update
|
sudo apt-get update
|
||||||
sudo apt install -y "${ubuntu_packages[@]}"
|
sudo apt-get install -y "${ubuntu_packages[@]}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "\033[1;33m\nWarning! Automatic package installation is not supported!\n\033[0m"
|
echo -e "\033[1;33m\nWarning! Automatic package installation is not supported!\n\033[0m"
|
||||||
|
49
scripts/migrations
Executable file
49
scripts/migrations
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
configfile="./scripts/updater-preferences"
|
||||||
|
. ./scripts/config.shlib
|
||||||
|
|
||||||
|
# Migrate pre config lib configs
|
||||||
|
exists=true
|
||||||
|
cfg_haskey $configfile version || exists=false
|
||||||
|
if [ "$exists" == false ]; then
|
||||||
|
if [ -f $configfile ]; then
|
||||||
|
value=$(cat $configfile)
|
||||||
|
rm $configfile
|
||||||
|
fi
|
||||||
|
echo "" > $configfile
|
||||||
|
cfg_write $configfile version 1
|
||||||
|
if [ "$(git rev-parse --is-shallow-repository)" == "true" ]; then
|
||||||
|
cfg_write $configfile update_channel stable
|
||||||
|
else
|
||||||
|
cfg_write $configfile update_channel developer
|
||||||
|
fi
|
||||||
|
if [ -f $configfile ]; then
|
||||||
|
if [ "$value" == true ] || [ "$value" == false ]; then
|
||||||
|
cfg_write $configfile autoupdater $value
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
version="$(cfg_read $configfile version)"
|
||||||
|
|
||||||
|
tui=true
|
||||||
|
if [ ! -x "$(command -v dialog)" ]; then
|
||||||
|
tui=false
|
||||||
|
echo -e "\033[1;31mTerminal UI NOT supported! Install \"dialog\"! \033[0m"
|
||||||
|
fi
|
||||||
|
if [ ! -t 0 ]; then
|
||||||
|
tui=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Migrations go here
|
||||||
|
#
|
||||||
|
|
||||||
|
exists=true
|
||||||
|
cfg_haskey $configfile update_channel || exists=false
|
||||||
|
if [ "$exists" == false ]; then
|
||||||
|
cfg_write $configfile update_channel stable
|
||||||
|
fi
|
@ -19,29 +19,13 @@ fi
|
|||||||
trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
|
trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
|
||||||
echo $$ > ${LOCKFILE}
|
echo $$ > ${LOCKFILE}
|
||||||
|
|
||||||
. ./scripts/config.shlib
|
#Check if all required packages are installed
|
||||||
|
./scripts/dependencycheck
|
||||||
|
|
||||||
# Migrate existing configs
|
# Run migrations
|
||||||
exists=true
|
./scripts/migrations || exit 0
|
||||||
cfg_haskey $configfile version || exists=false
|
|
||||||
if [ "$exists" == false ]; then
|
. ./scripts/config.shlib
|
||||||
if [ -f $configfile ]; then
|
|
||||||
value=$(cat $configfile)
|
|
||||||
rm $configfile
|
|
||||||
fi
|
|
||||||
echo "" > $configfile
|
|
||||||
cfg_write $configfile version 1
|
|
||||||
if [ "$(git rev-parse --is-shallow-repository)" == "true" ]; then
|
|
||||||
cfg_write $configfile update_channel stable
|
|
||||||
else
|
|
||||||
cfg_write $configfile update_channel developer
|
|
||||||
fi
|
|
||||||
if [ -f $configfile ]; then
|
|
||||||
if [ "$value" == true ] || [ "$value" == false ]; then
|
|
||||||
cfg_write $configfile autoupdater $value
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
tui=true
|
tui=true
|
||||||
if [ ! -x "$(command -v dialog)" ]; then
|
if [ ! -x "$(command -v dialog)" ]; then
|
||||||
@ -67,12 +51,6 @@ if [ "$tui" == true ] && [ "$exists" == false ]; then
|
|||||||
cfg_write $configfile autoupdater $value
|
cfg_write $configfile autoupdater $value
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exists=true
|
|
||||||
cfg_haskey $configfile update_channel || exists=false
|
|
||||||
if [ "$exists" == false ]; then
|
|
||||||
cfg_write $configfile update_channel stable
|
|
||||||
fi
|
|
||||||
|
|
||||||
exists=true
|
exists=true
|
||||||
cfg_haskey $configfile autoupdater || exists=false
|
cfg_haskey $configfile autoupdater || exists=false
|
||||||
if [ "$1" == "--autoupdater" ]; then
|
if [ "$1" == "--autoupdater" ]; then
|
||||||
@ -84,9 +62,6 @@ if [ "$1" == "--autoupdater" ]; then
|
|||||||
echo -e "\033[1;34m \n \nAuto Updater: Updating cathook in the background\n\033[0m"
|
echo -e "\033[1;34m \n \nAuto Updater: Updating cathook in the background\n\033[0m"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Check if all required packages are installed
|
|
||||||
./scripts/dependencycheck
|
|
||||||
|
|
||||||
function performupdate() {
|
function performupdate() {
|
||||||
#get update channel from config
|
#get update channel from config
|
||||||
update_channel="$(cfg_read $configfile update_channel)"
|
update_channel="$(cfg_read $configfile update_channel)"
|
||||||
@ -108,6 +83,9 @@ function performupdate() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Run migrations
|
||||||
|
./scripts/migrations || exit 0
|
||||||
|
|
||||||
proccount=$(grep -c '^processor' /proc/cpuinfo)
|
proccount=$(grep -c '^processor' /proc/cpuinfo)
|
||||||
if [ "$AUTOUPDATER" == true ]; then
|
if [ "$AUTOUPDATER" == true ]; then
|
||||||
proccount=1
|
proccount=1
|
||||||
|
Reference in New Issue
Block a user