File: finalcif-start.sh

package info (click to toggle)
finalcif 113%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 42,568 kB
  • sloc: python: 44,669; sh: 79; makefile: 24
file content (74 lines) | stat: -rwxr-xr-x 2,452 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash

# Ubuntu installer script
#
# This script either installs FinalCif vom the source repository or simply runs FinalCif.
# Prior to installation, a recent Python version is needed.
# Everything (except Python3) is installed below the ./FinalCif directory and nowhere else.
# This script might work in other Linux distributions, except for the -pyinst option.
#
# Commandline Options:
#
# ./finalcif-start.sh [-option]
#
# -pyinst  :  Adds a Python repository (deadsnakes) and installs Python3.9
# -install :  Install FinalCif from GitHub. The installer asks about the version number to install.
#             Use 'trunk' as version to get the most recent unstable source code.
#
# without any option: Run FinalCif
#

if [ ! "$(which python3.9)" ] && [ ! "$1" == "-pyinst" ]; then
  echo You need to install Python3.9 first:
  echo
  echo ./finalcif-start.sh -pyinst
  echo "This will add the deadsnakes repository to your installation: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa"
  exit
fi

if [ "$1" == "-pyinst" ]; then
  # Add python repository and install new Python3.9
  sudo add-apt-repository ppa:deadsnakes/ppa
  sudo apt install python3.9
  sudo apt install python3.9-venv
  exit
fi

if [ "$1" == "-install" ]; then
  echo
  echo "Which version number of FinalCif should be installed? Use a number like 91 or 'trunk' for the latest unstable source."
  echo "current version is:" "$(curl -s https://dkratzert.de/files/finalcif/version.txt || echo "No network available!")  "
  echo -n "Version to install: "; read version
  # Get the FinalCif code:
  if [ "$version" == "trunk" ]; then
    git clone --depth 1 https://github.com/dkratzert/FinalCif.git
  else
    git clone --depth 1 --branch Version-$version https://github.com/dkratzert/FinalCif.git
  fi
fi

# Create a virtual environment and activate it:
if [ ! -d "./FinalCif" ]; then
  echo FinalCif is not installed here.
  echo Install it with \"./finalcif-start.sh -install\"
  exit
fi

cd FinalCif || echo FinalCif not found
python3.9 -m venv venv
source venv/bin/activate

if [ "$1" == "-install" ]; then
  # Install required Python packages:
  venv/bin/pip install pip -U
  venv/bin/pip inatall wheel
  venv/bin/pip install -r requirements.txt -U
  echo ""
  echo Installation finished! Run FinalCif with './finalcif-start.sh'
  exit
fi

# Finally, run FinalCif
echo Running FinalCif ...
export PYTHONPATH=$PYTHONPATH:"$(pwd)"
python3 finalcif/finalcif_start.py