gap-packages/PackageManager

Add `InstallPackage(what)` with urls, package names, or lists thereof?

Closed this issue · 8 comments

It would be nice if I one could do all of the following:

  1. InstallPackage("https://.../pkg.tar.gz"); to download and install a package tarball (possibly verify later on that this creates a valid pkg dir, with a PackageInfo.g in it?)
  2. InstallPackage("https://.../PackageInfo.g"); to install the package in that PackageInfo.g (essentially, extract the download URL from there and go to step 1)
  3. InstallPackage("https://.../pkg.git"); -> clone the package repository by invoking `git
  4. the same for .hg / Mercurial -- a few packages are in hg repos on BitBucket
  5. Perhaps don't restrict to https, but also support e.g. ftp, ftps? (Not sure whether that's actually useful these days, though)

In addition, one could even allow passing in multiple arguments, or a list, to install multiple packages at once

I'll be ticking these off one by one!

First three are done. I'll be leaving the others for now, while I work on a unifying InstallPackage function that chooses the correct one, and make the whole thing a bit more reliable and stable.

Great, thanks!

The last two points here should be easy. If they are, they should go in the 0.1 release. Otherwise, they could be added later.

Now we have Mercurial support, the only thing left is FTP. This might already be working by accident – I'll test it tomorrow.

Curl supports ftp, wget propably too

Skipping ftp (but it probably works anyway!)