johnnychen94/jill.py

Options to avoid bashrc editing and adjust symlink creation

digital-carver opened this issue · 3 comments

Feature requests

  • An option to skip the modification of .bashrc file would be useful. I sync my .bashrc between different machines, and keep a .bashrc_local file (called from .bashrc) for local changes like this. So every time after running jill, I have to undo the changes to .bashrc. If there's a --skip-bashrc option, this could be avoided.
  • When installing unstable versions, I'd prefer that the julia symlink isn't changed. For eg., currently I have Julia 1.6 installed, and now installed Julia 1.7-beta2. I'd prefer if the julia and julia-1 symlinks keeps pointing to the stable Julia 1.6 version, and only julia-1.7 was created to point to Julia 1.7-beta2. An option so that only this full versioned link is created would be great, but if that sounds complicated, just an option to skip creating any symlinks at all would be fine.

Thanks for this really useful tool!

An option to skip the modification of .bashrc file would be useful. I sync my .bashrc between different machines, and keep a .bashrc_local file (called from .bashrc) for local changes like this. So every time after running jill, I have to undo the changes to .bashrc. If there's a --skip-bashrc option, this could be avoided.

jill is expected to only modify .bashrc once when the symlink dir ~/.local/bin isn't available in PATH. So if you can manually add this folder to PATH then the .bashrc file would not be touched.

I'd prefer if the julia and julia-1 symlinks keeps pointing to the stable Julia 1.6 version, and only julia-1.7 was created to point to Julia 1.7-beta2.

Good suggestion. I also noticed this issue. Here's what I have in mind:

  • not symlink unstable Julia installations to julia by default.
  • add jill switch <version> [--symlink_dir SYMLINK_DIR] command to explicitly change what julia points to. For Linux/MacOS this is basically just cd SYMLINK_DIR && ln -sf julia-1.6 julia

Thoughts? @crstnbr

Thank you for the quick response.

jill is expected to only modify .bashrc once when the symlink dir ~/.local/bin isn't available in PATH. So if you can manually add this folder to PATH then the .bashrc file would not be touched.

Yeah, I looked into the code after posting and noticed that. In my case, the issue was that the directory was in PATH as '~/.local/bin/` (with an extra slash at the end), and so Python thought it wasn't there. I've fixed it in my case, but if you wished to avoid this issue with other users, you could change the condition at https://github.com/johnnychen94/jill.py/blob/master/jill/install.py#L109 to something like:

dirs_in_path = map(os.path.normpath, os.environ["PATH"].split(os.pathsep))
if symlink_dir not in dirs_in_path:

close this in favor of #80