import_path
This post is not a Q, but rather an A for peeps to search out. I'm abusing this Questions forum as a knowledge base, so to say.
In this vid, Shashank refs that the file
~/.modular/modular.cfg
's setting mojo.import_path
can take comma-sep values to identify multiple import paths. The default value is something like:
That path contains a bunch of .mojopkg
files (like stdlib.mojopkg
, algo, math, etc). As the video says, you can add another path, like this:
So, dir /path/to/packages/
is where I direct the "package" command's output. E.g., mojo package SomePkg -o /path/to/packages/SomePkg.mojopkg
. As a result, I can do:
I can do that without copying the .mojopkg
file into every project that uses it.
Of note:
there is both a [mojo]
and a [mojo-nightly]
section in the file ~/.modular/modular.cfg
. If you want both stable and nightly to import from the same dir, then you need to add ,/path/to/packages
to both sections' respective import_path
setting.
:mojo: :mojonightly:Modular
YouTube
Modular Community Livestream - Mojoš„ on Mac
Mojoš„ on Mac (Apple Silicon) is going to be here soon! Join us on our upcoming community livestream as we discuss all things Mojoš„ on Mac! We'll walk you through getting started with Mojoš„ Mac, discuss Mac specific features, and show you how to build and run Mojoš„ applications using Visual Studio on Mac! We have lots of cool demos and a communit...
1 Reply
@ViynShade
@MyriadColors
Also of note: when you update (i.e.
modular update nightly/mojo
) then you need to go fix your modular.cfg file again. š
Just wrinkles in an early language. Don't let it deter you from playing with Mojo. All languages are a bit rough around the edges when they first emerge onto the scene.
I have been using a small update shell script to maintain my custom import_path
variable.
Explanation:
This is a shell (sh
) script. It updates Mojo, then Nightly. After that, the final line of the script looks at my modular.cfg
file (which was over-written during the updates) and edits any lines starting with import_path
and NOT containing a comma inside the line. It then appends ,/Users/.../IMPORTABLE_MOJOPKG_FILES
to the end of the line (if no comma found). Also, it retains the original modular.cfg
file, renamed as modular.cfg.bak
.
"Installation":
Save that script to a file. Mine is named update-mojo
. Move that file in a directory that is in your path, like ~/bin
(assuming that is in your $PATH
) and be sure to chmod +x
the file so that it is executable. Edit the final line so that the /path/to/importable_mojopkg_files
fits whatever path you are using. Make sure to keep the final |
at the end of the path; that is the seperator for the sed
command.
Now that everything is setup and the update-mojo
file is in your $PATH
, you can just do update-mojo
every time to update Mojo and Nightly and retain your custom import_path
.