Added shapefile and DEM processing (for TerraGear) and installer scripts
This commit is contained in:
Executable
+66
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env python3
|
||||
#-*- coding:utf-8 -*-
|
||||
|
||||
# Installer script for the main scripts and modules of fgtools
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import shutil
|
||||
import site
|
||||
|
||||
from fgtools.utils import constants
|
||||
|
||||
argp = argparse.ArgumentParser(description="install.py - installs the TerraGear tools so that they can be run like any other executable")
|
||||
|
||||
argp.add_argument(
|
||||
"-p", "--prefix",
|
||||
help="Installation prefix (default: %(default)s)",
|
||||
default=os.environ.get("FGTOOLSPREFIX", os.path.join(constants.HOME, ".local")))
|
||||
)
|
||||
|
||||
argp.add_argument(
|
||||
"--add-to-path",
|
||||
help="whether to modify your $HOME/.profile file to have the folder containing the scripts in your path (default: %(default)s",
|
||||
default="yes",
|
||||
choices=["yes", "no"]
|
||||
)
|
||||
|
||||
args = argp.parse_args()
|
||||
|
||||
SCRIPTDIR = os.path.dirname(os.path.abspath(__name__))
|
||||
BINDIR = os.path.join(args.prefix, "bin")
|
||||
PYLIBDIR = os.path.join(args.prefix, "lib", "python3")
|
||||
|
||||
print(f"Installing to {args.prefix}")
|
||||
|
||||
print("Installing modules …")
|
||||
shutil.copytree(os.path.join(SCRIPTDIR, constants.MODULE), PYLIBDIR)
|
||||
|
||||
print("Installing scripts …")
|
||||
for script in constants.SCRIPTS:
|
||||
shutil.copy2(os.path.join(SCRIPTDIR, script), BINDIR)
|
||||
|
||||
if not BINDIR in os.environ.get("PATH", "").split(os.pathsep):
|
||||
if args.add_to_path:
|
||||
print(f"Adding {BINDIR} to your $PATH …")
|
||||
|
||||
if os.name == "posix": # Linux, MacOS
|
||||
with open(os.path.join(constants.HOME, ".profile"), "a") as f:
|
||||
f.write(f"export PATH=\"$PATH{os.pathsep}{BINDIR}\"")
|
||||
else: # probably Windows
|
||||
os.system(f"setx PATH \"%PATH%{os.pathsep}{BINDIR}\"")
|
||||
else:
|
||||
print(f"WARNING: {BINDIR} was not added to your $PATH - please do that manually")
|
||||
|
||||
if not LIBDIR in os.environ.get("PYTHONPATH", "").split(os.pathsep):
|
||||
print(f"Adding {LIBDIR} to your $PYTHONPATH …")
|
||||
|
||||
if not os.path.isdir(site.USER_SITE):
|
||||
os.mkdirs(site.USER_SITE)
|
||||
|
||||
mode = "a"
|
||||
if not os.path.isfile(os.path.join(site.USER_SITE, "sitecustomize.py")):
|
||||
mode = "w"
|
||||
|
||||
with open(os.path.join(site.USER_SITE, "sitecustomize.py"), mode) as f:
|
||||
f.write(f"import site; site.addsitedir({LIBDIR})")
|
||||
Reference in New Issue
Block a user