updates
parent
96bc9e2ebb
commit
76714aa7bd
@ -0,0 +1,426 @@
|
||||
#!/bin/bash
|
||||
|
||||
# funcs (mac doesnt have realpath)
|
||||
realpath() {
|
||||
[[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
|
||||
}
|
||||
|
||||
echo "$1 $2 $3"
|
||||
|
||||
unameOut="$(uname -s)"
|
||||
case "${unameOut}" in
|
||||
Linux*) machine=Linux;;
|
||||
Darwin*) machine=Mac;;
|
||||
CYGWIN*) machine=Cygwin;;
|
||||
MINGW*) machine=MinGw;;
|
||||
MSYS*) machine=MinGw;;
|
||||
*) machine="UNKNOWN:${unameOut}"
|
||||
esac
|
||||
|
||||
|
||||
# install pyenv?
|
||||
|
||||
echo "
|
||||
### ## # # ### ## ###
|
||||
# # # #### # # # # # #
|
||||
# # # #### ### # # # #
|
||||
# # # # # # # #### # #
|
||||
### ## # # # # # # ###
|
||||
|
||||
|
||||
installing...
|
||||
|
||||
"
|
||||
|
||||
|
||||
if [ "$machine" = "MinGw" ] || [ "$machine" = "Cygwin" ]
|
||||
then
|
||||
echo -e "\nSorry, but Windows is not yet supported."
|
||||
echo -e "\nIf you are a developer, please lend a hand to support Windows."
|
||||
echo "The current attempt at a windows installation is located here:"
|
||||
echo "https://github.com/ComradOrg/Comrad/blob/master/script/install-windows.sh"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
###
|
||||
# Create paths
|
||||
######
|
||||
|
||||
|
||||
echo '
|
||||
1) setting up folders...
|
||||
|
||||
'
|
||||
# install dir?
|
||||
echo "Where should comrad live on your device?"
|
||||
path_comrad_default="`realpath ~/comrad`"
|
||||
|
||||
if [ "$1" = "-n" ]
|
||||
then
|
||||
read -p "[$path_comrad_default] " path_comrad
|
||||
else
|
||||
path_comrad=$path_comrad_default
|
||||
fi
|
||||
|
||||
|
||||
if [ -z "$path_comrad" ]
|
||||
then
|
||||
path_comrad=$path_comrad_default
|
||||
fi
|
||||
|
||||
if [ ! -d "$path_comrad" ]
|
||||
then
|
||||
mkdir -p $path_comrad
|
||||
echo "created $path_comrad"
|
||||
fi
|
||||
|
||||
path_lib="$path_comrad/lib"
|
||||
if [ ! -d "$path_lib" ]
|
||||
then
|
||||
mkdir -p $path_lib
|
||||
echo "created $path_lib"
|
||||
fi
|
||||
|
||||
|
||||
path_repo="$path_comrad/code"
|
||||
path_bin="$path_repo/bin"
|
||||
# if [ ! -d "$path_bin" ]
|
||||
# then
|
||||
# mkdir -p $path_bin
|
||||
# echo "created $path_bin"
|
||||
# fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
echo '
|
||||
2) configuring OS environment...
|
||||
|
||||
'
|
||||
|
||||
echo "Machine $machine detected."
|
||||
|
||||
|
||||
|
||||
|
||||
####
|
||||
# Package manager setups
|
||||
#
|
||||
|
||||
# windows
|
||||
if [ "$machine" = "MinGw" ]
|
||||
then
|
||||
echo "Installing base development packages"
|
||||
pacman -S curl wget unzip gcc make openssl-devel git
|
||||
fi
|
||||
|
||||
# mac
|
||||
if [ "$machine" = "Mac" ]
|
||||
then
|
||||
if ! command -v brew &> /dev/null
|
||||
then
|
||||
echo "Installing homebrew..."
|
||||
cd "$path_lib"
|
||||
mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
|
||||
fi
|
||||
|
||||
if ! command -v git &> /dev/null
|
||||
then
|
||||
echo "Installing git with brew..."
|
||||
brew install git
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux
|
||||
if [ "$machine" = "Linux" ]
|
||||
then
|
||||
if ! command -v git &> /dev/null
|
||||
then
|
||||
echo "Installing git with apt..."
|
||||
sudo apt install git
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### Downloading via git!
|
||||
|
||||
echo '
|
||||
|
||||
2) downloading Comrad...
|
||||
|
||||
'
|
||||
# if exists, pull
|
||||
if [ -d "$path_repo" ]
|
||||
then
|
||||
cd $path_repo
|
||||
git pull
|
||||
else
|
||||
cd $path_comrad
|
||||
git clone https://github.com/ComradOrg/Comrad.git
|
||||
mv Comrad code
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
echo '
|
||||
|
||||
4) setting up python miniconda...
|
||||
|
||||
# '
|
||||
|
||||
|
||||
|
||||
#################
|
||||
## MINICONDA ##
|
||||
#################
|
||||
|
||||
|
||||
cd $path_comrad
|
||||
path_conda="$path_comrad/lib/miniconda3"
|
||||
|
||||
|
||||
if [ "$machine" = "Linux" ]
|
||||
then
|
||||
if [ ! -f "miniconda.sh" ]
|
||||
then
|
||||
echo "downloading miniconda..."
|
||||
curl https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.3-Linux-x86_64.sh -o miniconda.sh
|
||||
chmod +x miniconda.sh
|
||||
fi
|
||||
./miniconda.sh -b -f -p "$path_conda"
|
||||
#rm miniconda.sh
|
||||
export PATH="$path_conda/bin:$PATH"
|
||||
|
||||
sudo apt install zbar-tools
|
||||
fi
|
||||
|
||||
# mac
|
||||
|
||||
if [ "$machine" = "Mac" ]
|
||||
then
|
||||
if [ ! -f "miniconda.sh" ]
|
||||
then
|
||||
echo "downloading miniconda..."
|
||||
curl https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.3-MacOSX-x86_64.sh -o miniconda.sh
|
||||
chmod +x miniconda.sh
|
||||
fi
|
||||
./miniconda.sh -b -f -p "$path_conda"
|
||||
export PATH="$path_conda/bin:$PATH"
|
||||
|
||||
brew install zbar
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "path_conda = $path_conda"
|
||||
echo "conda exec is `which conda`"
|
||||
source "$path_conda/etc/profile.d/conda.sh"
|
||||
echo "conda exec is `which conda`"
|
||||
|
||||
#$condaexec
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
############################################################
|
||||
|
||||
|
||||
echo '
|
||||
|
||||
5) creating virtual environment...
|
||||
|
||||
'
|
||||
path_venv="$path_repo/venv"
|
||||
echo "Now using python (t1): `which python`"
|
||||
|
||||
conda config --add channels conda-forge
|
||||
conda create -y -p "$path_venv" python=3.7 cartopy pip virtualenv rtree wxpython pandas numpy scipy
|
||||
source "$path_conda/etc/profile.d/conda.sh"
|
||||
|
||||
conda activate "$path_venv"
|
||||
|
||||
echo "Now using python (t2): `which python`"
|
||||
python -m pip install -U setuptools
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################################
|
||||
|
||||
echo '
|
||||
|
||||
Install python requirements
|
||||
|
||||
'
|
||||
|
||||
cd $path_repo
|
||||
python -m pip install -r requirements.txt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#############################################################
|
||||
|
||||
echo '
|
||||
Installing other requirements
|
||||
|
||||
Rlite, hardware based redis database
|
||||
|
||||
'
|
||||
|
||||
cd $path_lib
|
||||
git clone https://github.com/seppo0010/rlite.git
|
||||
cd rlite
|
||||
make
|
||||
make all
|
||||
|
||||
|
||||
# exit 1
|
||||
|
||||
|
||||
|
||||
#########################################################################
|
||||
|
||||
if [ "$machine" = "Mac" ]
|
||||
then
|
||||
echo "Installing Mac native GUI bridge"
|
||||
python -m pip install git+https://github.com/kivy/pyobjus
|
||||
fi
|
||||
|
||||
|
||||
#######################################
|
||||
|
||||
echo '
|
||||
|
||||
Themis, cryptography backend...
|
||||
|
||||
'
|
||||
|
||||
|
||||
if [ "$machine" = "Mac" ]
|
||||
then
|
||||
echo 'installing themis with brew'
|
||||
/usr/local/bin/brew tap cossacklabs/tap
|
||||
/usr/local/bin/brew install libthemis
|
||||
else
|
||||
if [ ! -f "/usr/local/lib/libthemis.so" ]
|
||||
then
|
||||
if [ ! -f "/usr/lib/libthemis.so" ]
|
||||
then
|
||||
echo 'building themis'
|
||||
cd "$path_lib"
|
||||
# pwd
|
||||
#git clone https://github.com/cossacklabs/themis.git
|
||||
curl https://codeload.github.com/cossacklabs/themis/zip/master -o themis.zip
|
||||
unzip -q -o themis.zip
|
||||
#mv themis-master themis
|
||||
cd themis-master
|
||||
make
|
||||
make install
|
||||
# sudo make install
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
echo '
|
||||
|
||||
Completing...
|
||||
|
||||
'
|
||||
|
||||
commands_app="
|
||||
source $path_conda/etc/profile.d/conda.sh\n
|
||||
export PATH=\"$path_conda/bin:\$PATH\"\n
|
||||
conda activate $path_venv\n
|
||||
python -m pip install -r $path_repo/requirements.txt\n
|
||||
python $path_repo/comrad/app/main.py\n
|
||||
"
|
||||
|
||||
|
||||
|
||||
export PATH="$path_bin:$PATH"
|
||||
bashline="export PATH=\"$path_bin:\$PATH\" # comrad installation"
|
||||
bashfn="`realpath ~/.bashrc`"
|
||||
|
||||
# add to bashrc?
|
||||
if grep -Fxq "$bashline" "$bashfn"
|
||||
then
|
||||
# code if found
|
||||
echo "setting already in $bashfn: $bashline"
|
||||
else
|
||||
# code if not found
|
||||
echo "$bashline" >> "$bashfn"
|
||||
fi
|
||||
|
||||
|
||||
echo -e "Installation successful!"
|
||||
|
||||
if [ "$machine" = "Mac" ]
|
||||
then
|
||||
cd /Applications
|
||||
unzip -q -o "$path_bin/Comrad.app.zip"
|
||||
echo "You may run the app by looking for 'Comrad.app' in your /Applications folder."
|
||||
else
|
||||
echo -e "
|
||||
You can run Comrad with:
|
||||
|
||||
|
||||
## For the GUI interface:
|
||||
|
||||
comrad-app
|
||||
|
||||
or:
|
||||
|
||||
~/comrad/code/bin/comrad-app
|
||||
|
||||
|
||||
## For the terminal client:
|
||||
|
||||
comrad-cli
|
||||
|
||||
or:
|
||||
|
||||
~/comrad/code/bin/comrad-cli
|
||||
|
||||
"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# run?
|
||||
|
||||
#$path_bin/comrad-app
|
Loading…
Reference in New Issue