diff options
author | Andrew Janke <andrew@apjanke.net> | 2015-07-07 16:47:31 -0400 |
---|---|---|
committer | Marc Cornellà <marc.cornella@live.com> | 2015-11-27 16:59:06 +0100 |
commit | d7e6ba0b66fd65c71e9e3d4a4a5216dfde141944 (patch) | |
tree | 65e9a5fb90f838e02a7d9f6821798b2754b54912 | |
parent | befb5b66c5d5b5af294dc18ea0d122754a42de89 (diff) | |
download | zsh-d7e6ba0b66fd65c71e9e3d4a4a5216dfde141944.tar.gz zsh-d7e6ba0b66fd65c71e9e3d4a4a5216dfde141944.tar.bz2 zsh-d7e6ba0b66fd65c71e9e3d4a4a5216dfde141944.zip |
history-substring-search: add a script to automatically update OMZ from the upstream repo
-rwxr-xr-x | plugins/history-substring-search/update-from-upstream.zsh | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/plugins/history-substring-search/update-from-upstream.zsh b/plugins/history-substring-search/update-from-upstream.zsh new file mode 100755 index 000000000..45950f447 --- /dev/null +++ b/plugins/history-substring-search/update-from-upstream.zsh @@ -0,0 +1,94 @@ +#!/usr/bin/env zsh +# +# update-from-upstream.zsh +# +# This script updates the Oh My Zsh version of the zsh-history-substring-search +# plugin from the independent upstream repo. This is to be run by OMZ developers +# when they want to pull in new changes from upstream to OMZ. It is not run +# during normal use of the plugin. +# +# The official upstream repo is zsh-users/zsh-history-substring-search +# https://github.com/zsh-users/zsh-history-substring-search +# +# This is a zsh script, not a function. Call it with `zsh update-from-upstream.zsh` +# from the command line, running it from within the plugin directory. +# +# You can set the environment variable REPO_PATH to point it at an upstream +# repo you have already prepared. Otherwise, it will do a clean checkout of +# upstream's HEAD to a temporary local repo and use that. + + +# Just bail on any error so we don't have to do extra checking. +# This is a developer-use script, so terse output like that should +# be fine. +set -e + + +UPSTREAM_BASE=zsh-history-substring-search +UPSTREAM_REPO=zsh-users/$UPSTREAM_BASE +need_repo_cleanup=false +upstream_github_url="https://github.com/$UPSTREAM_REPO" + +if [[ -z "$UPSTREAM_REPO_PATH" ]]; then + # Do a clean checkout + my_tempdir=$(mktemp -d -t omz-update-histsubstrsrch) + UPSTREAM_REPO_PATH="$my_tempdir/$UPSTREAM_BASE" + git clone "$upstream_github_url" "$UPSTREAM_REPO_PATH" + need_repo_cleanup=true + print "Checked out upstream repo to $UPSTREAM_REPO_PATH" +else + print "Using existing zsh-history-substring-search repo at $UPSTREAM_REPO_PATH" +fi + +upstream="$UPSTREAM_REPO_PATH" + +# Figure out what we're pulling in +upstream_sha=$(cd $upstream && git rev-parse HEAD) +upstream_commit_date=$(cd $upstream && git log -1 --pretty=format:%ci) +print "upstream SHA: $upstream_sha" +print "upstream commit date: $upstream_commit_date" +print + +# Copy the files over, using the OMZ plugin's names where needed +cp -v "$upstream"/* . +mv zsh-history-substring-search.plugin.zsh history-substring-search.plugin.zsh +mv zsh-history-substring-search.zsh history-substring-search.zsh + +if [[ $need_repo_cleanup == true ]]; then + print "Removing temporary repo at $my_tempdir" + rm -rf "$my_tempdir" +fi + +# Do OMZ-specific edits + +print +print "Updating files with OMZ-specific stuff" + +# Tack OMZ-specific notes on to readme +thin_line="------------------------------------------------------------------------------" +cat >> README.md <<EOF + +$thin_line +Oh My Zsh Notes +$thin_line + +This is Oh My Zsh's repackaging of zsh-history-substring-search as an OMZ module +inside the Oh My Zsh distribution. + +The upstream repo, $UPSTREAM_REPO, can be found on GitHub at $upstream_github_url. + +This downstream copy was last updated from the following upstream commit: + + SHA: $upstream_sha + Commit date: $upstream_commit_date + +Everything above this section is a copy of the original upstream's README, so things +may differ slightly when you're using this inside OMZ. In particular, you do not +need to set up key bindings yourself in \`~/.zshrc\`; the OMZ plugin does that for +you. + +EOF + +print +print "Done OK" + |