Commit b7b1257b authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

remove attempts to use urllib and use curl for all downloading. restore...

remove attempts to use urllib and use curl for all downloading. restore printing help with no flags.
parent 30431d4e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -23,8 +23,9 @@ specify -m and optionally -e, order does not matter

Examples:

make lib-poems args="-m g++"    # build COLVARS lib with GNU g++ compiler
make lib-meam args="-m ifort"   # build MEAM lib with Intel ifort compiler
make lib-poems args="-m serial" # build POEMS lib with same settings as in the serial Makefile in src
make lib-colvars args="-m mpi"  # build USER-COLVARS lib with same settings as in the mpi Makefile in src
make lib-meam args="-m ifort"   # build MEAM lib with custom Makefile.ifort (using Intel Fortran)
"""

# print error message or help
+26 −22
Original line number Diff line number Diff line
#!/usr/bin/env python

# install.py tool to setup the kim-api library
# install.py tool to download, compile, and setup the kim-api library
# used to automate the steps described in the README file in this dir

from __future__ import print_function
import sys,os,re,subprocess

# transparently use either urllib or an external tool
try:
  import ssl
  try: from urllib.request import urlretrieve as geturl
  except: from urllib import urlretrieve as geturl
except:
  def geturl(url,fname):
    cmd = 'curl -L -o "%s" %s' % (fname,url)
    txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
    return txt

help = """
Syntax from src dir: make lib-kim args="-v version  -a kim-name"
Syntax from lib dir: python Install.py -v version  -a kim-name
Syntax from src dir: make lib-kim args="-b -v version  -a kim-name"
                 or: make lib-kim args="-b -a everything"
                 or: make lib-kim args="-n -a kim-name"
                 or: make lib-kim args="-p /usr/local/open-kim -a kim-name"
Syntax from lib dir: python Install.py -b -v version  -a kim-name
                 or: python Install.py -b -a everything
                 or: python Install.py -n -a kim-name
                 or: python Install.py -p /usr/local/open-kim -a kim-name

specify one or more options, order does not matter

  -v = version of KIM API library to use
       default = kim-api-v1.8.2 (current as of June 2017)
  -b = download and build base KIM API library with example Models (default)
  -b = download and build base KIM API library with example Models
       this will delete any previous installation in the current folder
  -n = do NOT download and build base KIM API library. Use an existing installation
  -n = do NOT download and build base KIM API library.
       Use an existing installation 
  -p = specify location of KIM API installation (implies -n)
  -a = add single KIM model or model driver with kim-name
       to existing KIM API lib (see example below).
       If kim-name = everything, then rebuild KIM API library with
       all available OpenKIM Models (this implies -b).
       *all* available OpenKIM Models (make take a long time).
  -vv = be more verbose about what is happening while the script runs

Examples:

make lib-kim           # install KIM API lib with only example models
make lib-kim args="-b" # install KIM API lib with only example models
make lib-kim args="-a Glue_Ercolessi_Adams_Al__MO_324507536345_001"  # Ditto plus one model
make lib-kim args="-a everything"   # install KIM API lib with all models
make lib-kim args="-b -a everything"   # install KIM API lib with all models
make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002"   # only add one model or model driver

See the list of KIM model drivers here:
@@ -52,8 +49,9 @@ https://openkim.org/kim-api
in the "What is in the KIM API source package?" section
"""

def error():
  print(help)
def error(str=None):
  if not str: print(help)
  else: print("ERROR",str)
  sys.exit()

# expand to full path name
@@ -62,15 +60,21 @@ def error():
def fullpath(path):
  return os.path.abspath(os.path.expanduser(path))

def geturl(url,fname):
  cmd = 'curl -L -o "%s" %s' % (fname,url)
  txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
  return txt

# parse args

args = sys.argv[1:]
nargs = len(args)
if nargs == 0: error()

thisdir = os.environ['PWD']
version = "kim-api-v1.8.2"

buildflag = True
buildflag = False
everythingflag = False
addflag = False
verboseflag = False
+16 −14
Original line number Diff line number Diff line
@@ -6,32 +6,26 @@
from __future__ import print_function
import sys,os,re,subprocess

try:
  import ssl
  try: from urllib.request import urlretrieve as geturl
  except: from urllib import urlretrieve as geturl
except:
  def geturl(url,fname):
    cmd = 'curl -L -o "%s" %s' % (fname,url)
    txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
    return txt

# help message

help = """
Syntax from src dir: make lib-mscg args="-p [path] -m [suffix]"
                 or: make lib-mscg args="-b -m [suffix]"
Syntax from lib dir: python Install.py -p [path]  -m [suffix]
Syntax from lib dir: python Install.py -b -m [suffix]

specify one or more options, order does not matter

  -b = download and build MS-CG library (default)
  -b = download and build MS-CG library
  -p = specify folder of existing MS-CG installation
  -m = machine suffix specifies which src/Make/Makefile.suffix to use
       default suffix = g++_simple

Example:

make lib-mscg args="-b "   # download/build in lib/mscg/MSCG-release-master
make lib-mscg args="-b -m serial " # download/build in lib/mscg/MSCG-release-master with settings compatible with "make serial"
make lib-mscg args="-b -m mpi " # download/build in lib/mscg/MSCG-release-master with settings compatible with "make mpi"
make lib-mscg args="-p /usr/local/mscg-release " # use existing MS-CG installation in /usr/local/mscg-release
"""

# settings
@@ -53,15 +47,21 @@ def error(str=None):
def fullpath(path):
  return os.path.abspath(os.path.expanduser(path))

def geturl(url,fname):
  cmd = 'curl -L -o "%s" %s' % (fname,url)
  txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
  return txt

# parse args

args = sys.argv[1:]
nargs = len(args)
if nargs == 0: error()

homepath = "."
homedir = tardir

buildflag = True
buildflag = False
pathflag = False
linkflag = True
msuffix = "g++_simple"
@@ -72,7 +72,6 @@ while iarg < nargs:
    if iarg+2 > nargs: error()
    mscgpath = fullpath(args[iarg+1])
    pathflag = True
    buildflag = False
    iarg += 2
  elif args[iarg] == "-m":
    if iarg+2 > nargs: error()
@@ -93,6 +92,9 @@ if (pathflag):
if (buildflag and pathflag):
    error("Cannot use -b and -p flag at the same time")

if (not buildflag and not pathflag):
    error("Have to use either -b or -p flag")

# download and unpack MS-CG tarfile

if buildflag:
+14 −8
Original line number Diff line number Diff line
@@ -5,22 +5,20 @@

from __future__ import print_function
import sys,os,re,glob,subprocess
try: from urllib.request import urlretrieve as geturl
except: from urllib import urlretrieve as geturl

# help message

help = """
Syntax from src dir: make lib-smd
Syntax from src dir: make lib-smd args="-b"
                 or: make lib-smd args="-p /usr/include/eigen3"

Syntax from lib dir: python Install.py
Syntax from lib dir: python Install.py -b
                 or: python Install.py -p /usr/include/eigen3"
                 or: python Install.py -v 3.3.4 -b

specify one or more options, order does not matter

  -b = download and unpack/configure the Eigen library (default)
  -b = download and unpack/configure the Eigen library
  -p = specify folder holding an existing installation of Eigen
  -v = set version of Eigen library to download and set up (default = 3.3.4)

@@ -28,6 +26,7 @@ specify one or more options, order does not matter
Example:

make lib-smd args="-b"   # download/build in default lib/smd/eigen-eigen-*
make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3
"""

# settings
@@ -48,16 +47,21 @@ def error(str=None):
def fullpath(path):
  return os.path.abspath(os.path.expanduser(path))

def geturl(url,fname):
  cmd = 'curl -L -o "%s" %s' % (fname,url)
  txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
  return txt

# parse args

args = sys.argv[1:]
nargs = len(args)
if nargs == 0: error()

homepath = "."
homedir = "eigen3"

grabflag = True
buildflag = True
buildflag = False
pathflag = False
linkflag = True

@@ -71,7 +75,6 @@ while iarg < nargs:
    if iarg+2 > nargs: error()
    eigenpath = fullpath(args[iarg+1])
    pathflag = True
    buildflag = False
    iarg += 2
  elif args[iarg] == "-b":
    buildflag = True
@@ -86,6 +89,9 @@ if (pathflag):
if (buildflag and pathflag):
    error("Cannot use -b and -p flag at the same time")

if (not buildflag and not pathflag):
    error("Have to use either -b or -p flag")

# download and unpack Eigen tarball
# use glob to find name of dir it unpacks to

+17 −18
Original line number Diff line number Diff line
@@ -6,35 +6,26 @@
from __future__ import print_function
import sys,os,re,subprocess

try:
  import ssl
  try: from urllib.request import urlretrieve as geturl
  except: from urllib import urlretrieve as geturl
except:
  def geturl(url,fname):
    cmd = 'curl -L -o "%s" %s' % (fname,url)
    txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
    return txt

# help message

help = """
Syntax from src dir: make lib-voronoi
Syntax from src dir: make lib-voronoi args="-b"
                 or: make lib-voronoi args="-p /usr/local/voro++-0.4.6"
                 or: make lib-voronoi args="-v voro++-0.4.6 -b"
Syntax from lib dir: python Install.py -v voro++-0.4.6 -b
                 or: python Install.py
                 or: make lib-voronoi args="-b -v voro++-0.4.6"
Syntax from lib dir: python Install.py -b -v voro++-0.4.6
                 or: python Install.py -b
                 or: python Install.py -p /usr/local/voro++-0.4.6

specify one or more options, order does not matter

  -b = download and build the Voro++ library (default)
  -b = download and build the Voro++ library
  -p = specify folder of existing Voro++ installation
  -v = set version of Voro++ to download and build (default voro++-0.4.6)

Example:

make lib-voronoi args="-b"   # download/build in lib/voronoi/voro++-0.4.6
make lib-voronoi args="-p $HOME/voro++-0.4.6" # use existing Voro++ installation in $HOME/voro++-0.4.6
"""

# settings
@@ -55,15 +46,21 @@ def error(str=None):
def fullpath(path):
  return os.path.abspath(os.path.expanduser(path))

def geturl(url,fname):
  cmd = 'curl -L -o "%s" %s' % (fname,url)
  txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
  return txt

# parse args

args = sys.argv[1:]
nargs = len(args)
if nargs == 0: error()

homepath = "."
homedir = version

buildflag = True
buildflag = False
pathflag = False
linkflag = True

@@ -77,7 +74,6 @@ while iarg < nargs:
    if iarg+2 > nargs: error()
    voropath = fullpath(args[iarg+1])
    pathflag = True
    buildflag = False
    iarg += 2
  elif args[iarg] == "-b":
    buildflag = True
@@ -94,6 +90,9 @@ if (pathflag):
if (buildflag and pathflag):
    error("Cannot use -b and -p flag at the same time")

if (not buildflag and not pathflag):
    error("Have to use either -b or -p flag")

# download and unpack Voro++ tarball

if buildflag: