153 lines
3.4 KiB
Bash
153 lines
3.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Store the actual path
|
|
current_path=$(pwd)
|
|
|
|
# Get the path of LogDoctor-git's folder and move in
|
|
docdir="$(dirname $(realpath $0))"
|
|
cd "$docdir"
|
|
|
|
# Check the existence of a previous executable file
|
|
if [ -e /usr/bin/logdoctor ]
|
|
then
|
|
echo "$(tput setaf 11)Warning:$(tput sgr0) a previous installation exists, please run the $(tput bold)update$(tput sgr0) script instead"
|
|
exit 0
|
|
fi
|
|
|
|
# Check cmake availability
|
|
which cmake &> /dev/null
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) Cmake is not installed"
|
|
exit 1
|
|
fi
|
|
|
|
# Start the compilation process
|
|
echo "$(tput setaf 12)==>$(tput sgr0) $(tput bold)Building$(tput sgr0)"
|
|
|
|
# Make a build folder
|
|
if [ -e build ]
|
|
then
|
|
rm -r build
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to remove existing build directory"
|
|
exit 1
|
|
fi
|
|
fi
|
|
mkdir build
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to create build directory"
|
|
exit 1
|
|
fi
|
|
cd build
|
|
|
|
# Prepare the cmake files
|
|
cmake ../logdoctor -DCMAKE_BUILD_TYPE=MinSizeRel
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
# an error occured during preparation
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to prepare build files"
|
|
exit 1
|
|
fi
|
|
|
|
# Build the project
|
|
cmake --build ./ --target all
|
|
if [[ "$?" == "0" ]]
|
|
then
|
|
# compiled succesfully
|
|
mv LogDoctor logdoctor
|
|
else
|
|
# an error occured during compilation
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to compile"
|
|
exit 1
|
|
fi
|
|
|
|
# Compilation finished
|
|
wait
|
|
echo "$(tput setaf 10)-->$(tput sgr0) Built succesfully"
|
|
|
|
# Start installing LogDoctor
|
|
echo "$(tput setaf 12)==>$(tput sgr0) $(tput bold)Installing$(tput sgr0)"
|
|
cd ../installation_stuff/
|
|
|
|
if [ ! -d ~/.config/LogDoctor ]
|
|
then
|
|
mkdir -p ~/.config/LogDoctor
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to create directory: ~/.config/LogDoctor"
|
|
exit 1
|
|
fi
|
|
fi
|
|
chmod 644 ./logdoctor.conf
|
|
install -DC ./logdoctor.conf -t ~/.config/LogDoctor
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to copy configuration file"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
if [ ! -d /usr/share/LogDoctor ]
|
|
then
|
|
sudo mkdir -p /usr/share/LogDoctor
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to create directory: /usr/share/LogDoctor"
|
|
exit 1
|
|
fi
|
|
fi
|
|
chmod 644 -R ./logdocdata/help/*
|
|
chmod 444 -R ./logdocdata/licenses/*
|
|
which rsync &> /dev/null
|
|
if [[ "$?" == "0" ]]
|
|
then
|
|
sudo rsync -r --delete ./logdocdata /usr/share/LogDoctor
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to copy LogDoctor's data"
|
|
exit 1
|
|
fi
|
|
else
|
|
sudo cp -r ./logdocdata/{help,licenses} /usr/share/LogDoctor
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to copy LogDoctor's data"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
chmod 644 ./LogDoctor.svg
|
|
sudo install -DC ./LogDoctor.svg -t /usr/share/LogDoctor
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to copy LogDoctor's icon"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
chmod 644 ./LogDoctor.desktop
|
|
sudo install -DC ./LogDoctor.desktop -t /usr/share/applications
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to create a menu entry"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
cd ../build
|
|
chmod 755 ./logdoctor
|
|
sudo install -DC ./logdoctor -t /usr/bin
|
|
if [[ "$?" != "0" ]]
|
|
then
|
|
echo "$(tput setaf 1)Error:$(tput sgr0) failed to copy the executable"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
# Installation finished
|
|
echo "$(tput setaf 10)-->$(tput sgr0) $(tput bold)Installed succesfully$(tput sgr0)"
|
|
cd "$current_path"
|