如何为git-shell创建自定义命令?根据documentation:使用git-shell的自定义命令
当给出-c时,程序以非交互方式执行; 可以是git receive-pack,git upload-pack,git upload-archive,cvs服务器或COMMAND_DIR中的命令之一。当没有参数给出时,shell以 开始于交互模式;在这种情况下, COMMAND_DIR必须存在,并且其中的任何可执行文件可以调用 。
不过,我不知道我在正确理解这一点。我创建了一个名为gituser的用户,并将他/ usr/bin/git-shell作为一个shell。我创建了一个名为git-shell-commands的目录,并在其中放置了一个名为'testy'的脚本,但是我无法通过git-shell使其运行。
这里就是我可以从其他机器尝试:
$ ssh [email protected] testy
fatal: unrecognized command 'testy'
需要注意的是git的壳是否正常工作,并响应,它只是无法找到我的自定义命令。
这里是脚本:
:/home/gituser/git-shell-commands# ls -l -a
total 12
drwxr-xr-x 2 gituser gituser 4096 Jan 22 17:35 .
drwxr-xr-x 4 gituser gituser 4096 Jan 22 13:57 ..
-rwxr-xr-x 1 gituser gituser 26 Jan 22 13:58 testy
:/home/gituser/git-shell-commands# ./testy
hello!
:/home/sodigit/git-shell-commands# cat testy
echo "hello!"
我在做什么错?如何使用git-shell运行自定义命令?
你是如何启动git-shell的?你定义了'COMMAND_DIR'吗? –
我没有定义它。我假设它是$ HOME/git-shell-commands,其中$ HOME是gituser的主目录(/ home/gituser)。我使用ssh来访问上面例子中的git-shell。 – mimrock
该文档明确指出脚本需要放置在'COMMAND_DIR'中。如果你不知道它指向了哪个目录,你怎么能在其中放置文件? –