Re: RFC: a plugin architecture for git extensions?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 09, 2011 at 05:49:27PM +1000, Jon Seymour wrote:

> Yep, that was part of the motivation for the suggestion - something
> that works consistently, assuming only a working git installation.
> 
> Per one of my other notes, my initial inclination is to provide a
> patch that implements support for
> 
>      git --system-extensions-dir
> 
> which would:
>    - provide the caller with location that extensions could be
> installed in (assuming the caller can acquire write privileges)
>    - provide a guarantee that $(git --system-extensions-dir)/bin will
> be on the path set up by the git wrapper and $(git
> --system-extensions-dir)/man will be in the MANPATH searched by git
> help
> 
> Extensions could then use this information, together with git
> --html-path to install themselves into these places using whatever
> mechanism seems appropriate (either a POSIX shell script or a
> make/install script).

But is the system extension dir always the right place to do so? If I'm
not root, then that probably won't be writable (or even if I am, I may
want to install the extension only for the root user).

If your proposal is for the user to decide on one of:

  unzip -d "$(git --system-extension-dir)" git-foo.zip

or

  unzip -d "$HOME/.gitplugins" git-foo.zip

then they can make that decision. But if you're proposing that the
extension-writer distribute a script, then it's more complicated. They
would probably need to provide a "--user" versus "--system" option.

It would also be tempting to write something like:

  install_dir() {
    if test "`id -u`" = "0"; then
      git --system-extension-dir
    else
      echo $HOME/.gitplugins
    fi
  }

but that is:

  1. Not portable.

  2. Does not allow for user-only installation by root.

But all of this is a packaging best-practices issue, not an issue of
what git needs to do to support it (you _could_ address the portability
issue by having "git --preferred-extension-path" that did the
appropriate platform-specific UID check, but that still doesn't address
the second point).

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]