aboutsummaryrefslogtreecommitdiff
path: root/scripts/vim-patch.sh
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-11-07 00:29:19 +0100
committerJustin M. Keyes <justinkz@gmail.com>2017-11-07 00:54:05 +0100
commitdc9290109481e5e0d0c224fecb217ceb5a4c978d (patch)
treef581191531c2e6c1d6b1565ba17cf6988d6f8f66 /scripts/vim-patch.sh
parent7bcbf5d45620209b652b7bdd669878dbacd08dbe (diff)
downloadrneovim-dc9290109481e5e0d0c224fecb217ceb5a4c978d.tar.gz
rneovim-dc9290109481e5e0d0c224fecb217ceb5a4c978d.tar.bz2
rneovim-dc9290109481e5e0d0c224fecb217ceb5a4c978d.zip
vim-patch.sh: new option `-P`
Diffstat (limited to 'scripts/vim-patch.sh')
-rwxr-xr-xscripts/vim-patch.sh37
1 files changed, 26 insertions, 11 deletions
diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh
index 4f6bb40488..fd1d2a200b 100755
--- a/scripts/vim-patch.sh
+++ b/scripts/vim-patch.sh
@@ -22,9 +22,10 @@ usage() {
echo "Options:"
echo " -h Show this message and exit."
echo " -l Show list of Vim patches missing from Neovim."
- echo " -p {vim-revision} Download and apply the Vim patch vim-revision."
- echo " vim-revision can be a version number of the "
- echo " format '7.4.xxx' or a Git commit hash."
+ echo " -p {vim-revision} Download and generate the specified Vim patch."
+ echo " vim-revision can be a version number '8.0.xxx'"
+ echo " or a valid Git ref (hash, tag, etc.)."
+ echo " -P {vim-revision} Download, generate and apply the Vim patch."
echo " -g {vim-revision} Download the Vim patch vim-revision."
echo " vim-revision can be a version number of the "
echo " format '7.4.xxx' or a Git commit hash."
@@ -32,7 +33,7 @@ usage() {
echo " -r {pr-number} Review a vim-patch pull request to Neovim."
echo
echo "Set VIM_SOURCE_DIR to change where Vim's sources are stored."
- echo "The default is '${VIM_SOURCE_DIR_DEFAULT}'."
+ echo "Default is '${VIM_SOURCE_DIR_DEFAULT}'."
}
# Checks if a program is in the user's PATH, and is executable.
@@ -186,6 +187,7 @@ get_vim_patch() {
stage_patch() {
get_vim_patch "$1"
+ local try_apply="${2:-}"
local git_remote
git_remote="$(find_git_remote)"
@@ -215,14 +217,23 @@ stage_patch() {
echo "āœ” ${output}" ||
(echo "✘ ${output}"; false)
- printf "\nInstructions:
- Proceed to port the patch. This may help:
- patch -p1 < ${patch_file}
+ if test -n "$try_apply" ; then
+ if ! check_executable patch; then
+ printf "\n✘ 'patch' command not found\n"
+ else
+ printf "\nApplying patch...\n"
+ patch -p1 < "${patch_file}"
+ fi
+ printf "\nInstructions:\n Proceed to port the patch.\n"
+ else
+ printf "\nInstructions:\n Proceed to port the patch.\n Try the 'patch' command (or use '${BASENAME} -P ...' next time):\n patch -p1 < ${patch_file}\n"
+ fi
- Stage your changes ('git add ...') and use 'git commit --amend' to commit.
+ printf "
+ Stage your changes ('git add ...'), then use 'git commit --amend' to commit.
- To port additional patches related to ${vim_version} and add them to the
- current branch, call '${BASENAME} -p' again.
+ To port more patches (if any) related to ${vim_version},
+ run '${BASENAME}' again.
* Do this only for _related_ patches (otherwise it increases the
size of the pull request, making it harder to review)
@@ -446,7 +457,7 @@ review_pr() {
clean_files
}
-while getopts "hlp:g:r:s" opt; do
+while getopts "hlp:P:g:r:s" opt; do
case ${opt} in
h)
usage
@@ -460,6 +471,10 @@ while getopts "hlp:g:r:s" opt; do
stage_patch "${OPTARG}"
exit 0
;;
+ P)
+ stage_patch "${OPTARG}" TRY_APPLY
+ exit 0
+ ;;
g)
get_vim_patch "${OPTARG}"
exit 0