Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Path: blob/master/src/scripts/sage_select
Views: 687
#!/usr/bin/env python3 # The purpose of this script is to detect all installed sage versions and # offer to symlink to a selected version in the project (i.e. ~/bin/sage -> ...) import os, sys if len(sys.argv) == 1: print("%s <version>"%sys.argv[0]) versions = [] # Searching the entire PATH is slightly slower than just searching one or # two paths, but this is OK, since it's relatively rarely used. for path in os.environ['PATH'].split(':'): if os.path.exists(path): versions = versions + [x.split('-')[-1] for x in os.listdir(path) if x.startswith('sage-')] versions = list(sorted(set(versions))) print("Available versions: %s"%(', '.join(versions))) sys.exit(1) VERSION=sys.argv[1] target = "sage-%s"%VERSION for path in os.environ['PATH'].split(':'): if os.path.exists(path): for x in os.listdir(path): if x == target: cmd = "cd && mkdir -p ~/bin/ && cd ~/bin/ && rm -f sage && ln -sf %s/%s sage"%(path, target) print(cmd) os.system(cmd) print("Making default sage %s by creating ~/bin/sage symbolic link:"%target) print("You should probably restart your project (in 'Settings' -> 'Project Control').") sys.exit(0) print("%s does not exist in your PATH"%target) sys.exit(1)