MyPackageTools := module() option package; export addPackageDirectoryToLibname, savePackageToMla; addPackageDirectoryToLibname := proc(packageDir) local mapleInitFile, newLibname: mapleInitFile := "/Library/Frameworks/Maple.framework/Versions/2022/lib/init": try FileTools:-Text:-Open(mapleInitFile, 'append'): catch: return "Failed to open file": end: try newLibname := cat("libname := \"", packageDir, "\", libname:" ): FileTools:-Text:-WriteLine(mapleInitFile, newLibname): catch: FileTools:-Text:-Close(mapleInitFile): return "Failed to write to file.": end: try FileTools:-Text:-Close(mapleInitFile): return "Added to libname successfully. Restart worksheet for changes to come into effect.": catch: return "Failed to close file": end: end: savePackageToMla := proc(mlaPath, mplPath, packageName) read(mplPath); LibraryTools:-Save(packageName, mlaPath); end: end:
I'd like to automate my workflow a bit. I having a hard time making savePackageToMla work. The commands inside it are the ones I would run in a Maple worksheet to save a package to an .mla file.
The error I get when I try to use this is
Error, (in LibraryTools:-Save) 1st variable is not a name or equation |/Users/marcusegues/maple/Packages/MyPackageTools/MyPackageTools.mpl:38|
Note that the goal is to pass in an mla path and an mpl path. The mpl file is read. The package that is read is the same as the argument packageName.
I invoke this procedure with something like
savePackageToMla(mlaPath, mplPath, 'MyPackage')
where
mplPath := '/somePath/MyPackage.mpl';
mlaPath := 'somePath/MyPackage.mla';
and MyPackage.mpl contains something like
MyPackage := module()
option package;
(...)
end;