Re: [PATCH v2 02/44] ruby: add support for internal ruby programs

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

 



Felipe Contreras wrote:
> +$(RUBY_PROGRAMS): git-ruby$X
> +       $(QUIET_BUILT_IN)$(RM) $@ && \
> +       ln >lt; $@ 2>/dev/null || \
> +       ln -s >lt; $@ 2>/dev/null || \
> +       cp >lt; $@

Why so many fallbacks? Will the hard-link (the first ln) ever fail?

> diff --git a/ruby.c b/ruby.c
> index ee6a0e7..339e376 100644
> --- a/ruby.c
> +++ b/ruby.c
> @@ -52,5 +52,22 @@ static int run_ruby_command(const char *cmd, int argc, const char **argv)
>
>  int main(int argc, const char **argv)
>  {
> -       return run_ruby_command(argv[1], argc, argv);
> +       if (!strcmp(argv[0], "git-ruby")) {
> +               return run_ruby_command(argv[1], argc, argv);
> +       } else {
> +               const char *cmd = argv[0];
> +               static char buf[PATH_MAX + 1];
> +               const char *args[argc + 1];
> +               int i;
> +
> +               snprintf(buf, PATH_MAX, "%s/%s.rb",
> +                               git_exec_path(), basename((char *)cmd));
> +
> +               args[0] = "git";
> +               args[1] = buf;
> +               for (i = 0; i < argc - 1; i++)
> +                       args[i + 2] = (char *)argv[i + 1];
> +
> +               return run_ruby_command(cmd, argc + 1, args);
> +       }
>  }

Can you explain this in greater detail in your commit message? When I
pass an argument,

  $ git ruby foo
  git-ruby: No such file or directory -- foo (LoadError)

I get this as before. How exactly will new ruby scripts be executed?
(I can only guess at this point)
--
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]