Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- Makefile | 9 +++++++++ ruby.c | 19 ++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 2fdee15..27e61c0 100644 --- a/Makefile +++ b/Makefile @@ -429,6 +429,7 @@ BASIC_LDFLAGS = # Guard against environment variables BUILTIN_OBJS = BUILT_INS = +RUBY_PROGRAMS = COMPAT_CFLAGS = COMPAT_OBJS = XDIFF_OBJS = @@ -493,6 +494,8 @@ SCRIPT_PYTHON += git-p4.py SCRIPT_RUBY += git-rb-setup.rb +PROGRAMS += $(RUBY_PROGRAMS) + NO_INSTALL += git-remote-testgit NO_INSTALL += git-remote-testpy @@ -1754,6 +1757,12 @@ $(BUILT_INS): git$X ln -s $< $@ 2>/dev/null || \ cp $< $@ +$(RUBY_PROGRAMS): git-ruby$X + $(QUIET_BUILT_IN)$(RM) $@ && \ + ln $< $@ 2>/dev/null || \ + ln -s $< $@ 2>/dev/null || \ + cp $< $@ + common-cmds.h: ./generate-cmdlist.sh command-list.txt common-cmds.h: $(wildcard Documentation/git-*.txt) 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); + } } -- 1.8.4-fc -- 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