Skip to content

Commit dffeec9

Browse files
rasadavidhcefx
authored andcommitted
feat: add create-branches.sh and switch-branch.sh
Originally proposed in scopatz#370
1 parent c31b782 commit dffeec9

File tree

2 files changed

+158
-0
lines changed

2 files changed

+158
-0
lines changed

create-branches.sh

+126
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
#!/usr/bin/env bash
2+
3+
set -vxe
4+
5+
if command -v brew &>/dev/null; then
6+
# use gsed if installed
7+
PATH="$(brew --prefix)/opt/gnu-sed/libexec/gnubin:${PATH}"
8+
fi
9+
10+
branches=(
11+
pre-5.0
12+
pre-4.5
13+
pre-2.9.5
14+
pre-2.5.3
15+
pre-2.3.2
16+
pre-2.2.99
17+
pre-2.1.5
18+
)
19+
20+
# git clone https://github.com/rasa/nanorc
21+
22+
# cd nanorc
23+
24+
# git remote remove upstream || true
25+
# git remote add upstream https://github.com/scopatz/nanorc
26+
27+
# git fetch upstream
28+
29+
# https://stackoverflow.com/a/42332860/1432614
30+
31+
# ensures current branch is master
32+
git checkout master
33+
34+
# pulls all new commits made to upstream/master
35+
# git pull upstream master
36+
37+
# this will delete all your local changes to master
38+
# git reset --hard upstream/master
39+
40+
for branch in "${branches[@]}"; do
41+
git branch -D "${branch}" || true
42+
done
43+
44+
# sed will convert symlinks to regular files, so ignore them
45+
mapfile -t nanos <<<"$(find . -not -type l -name '*.nanorc' | sort)"
46+
47+
git checkout -b pre-5.0
48+
sed -E -i.bak -e 's/\bcolor\s+purple\b/color brightmagenta/' "${nanos[@]}"
49+
git commit -am "fix: pre-5.0: change 'brightred' to 'brightmagenta'"
50+
51+
sed -E -i.bak -e 's/\bcolor\s+latte\b/color brightred/' "${nanos[@]}"
52+
git commit -am "fix: pre-5.0: change 'latte' to 'brightred'"
53+
54+
git checkout -b pre-4.5
55+
sed -E -i.bak -e 's/^(\s*tabgives\b)/# \1/' "${nanos[@]}"
56+
git commit -am "fix: pre-4.5: comment out 'tabgives'"
57+
58+
git checkout -b pre-2.9.5
59+
sed -E -i.bak -e 's/color\s+normal\b/color white/' "${nanos[@]}"
60+
sed -E -i.bak -e 's/color\s+,normal\b/color ,white/' "${nanos[@]}"
61+
git commit -am "fix: pre-2.9.5: change 'normal' to 'white'"
62+
63+
sed -E -i.bak -e 's/color\s+brightnormal\b/color brightwhite/' "${nanos[@]}"
64+
git commit -am "fix: pre-2.9.5: change 'brightnormal' to 'brightwhite'"
65+
66+
git checkout -b pre-2.5.3
67+
sed -E -i.bak -e 's/^(\s*comment\b)/# \1/' "${nanos[@]}"
68+
git commit -am "fix: pre-2.5.3: comment out 'comment'"
69+
70+
git checkout -b pre-2.3.2
71+
sed -E -i.bak -e 's/^(\s*linter\b)/# \1/' "${nanos[@]}"
72+
git commit -am "fix: pre-2.3.2: comment out 'linter'"
73+
74+
git checkout -b pre-2.2.99
75+
sed -E -i.bak -e 's/^(\s*magic\b)/# \1/' "${nanos[@]}"
76+
git commit -am "fix: pre-2.2.99: comment out 'magic'"
77+
78+
git checkout -b pre-2.1.5
79+
sed -E -i.bak -e 's/^(\s*header\b)/# \1/' "${nanos[@]}"
80+
git commit -am "fix: pre-2.1.5: comment out 'header'"
81+
82+
sed -E -i.bak -e 's/^(\s*syntax\s+)([^"\s]+)(\s.*)/\1"\2"\3/' "${nanos[@]}"
83+
git commit -am "fix: pre-2.1.5: add quotes around syntax names"
84+
85+
sed -E -i.bak -e 's/^(\s*icolor\s+cyan\s+.*Add-AppPackage)/# \1/' "${nanos[@]}"
86+
git commit -am "fix: pre-2.1.5: comment out string causing out-of-memory"
87+
88+
# +++ b/Rnw.nanorc
89+
# -color blue "([a-zA-Z0-9_\-$\.]*)\("
90+
# +color blue "([a-zA-Z0-9_$\.-]*)\("
91+
sed -E -i.bak -e 's/a-zA-Z0-9_\\-\$\\\./a-zA-Z0-9_$\\.-/' "${nanos[@]}"
92+
93+
# +++ b/jade.nanorc
94+
# +++ b/pug.nanorc
95+
# -icolor brightgreen "https?:\/\/(www\.)?[a-zA-Z0-9@%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)" "_blank"
96+
# +icolor brightgreen "https?:\/\/(www\.)?[a-zA-Z0-9@%._\+~#=]+\.[a-z]+\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)" "_blank"
97+
sed -E -i.bak -e 's/]\{2,256\}\\/]+\\/' "${nanos[@]}"
98+
sed -E -i.bak -e 's/]\{2,6\}\\b/]+\\b/' "${nanos[@]}"
99+
100+
# +++ b/toml.nanorc
101+
# -color ,red "^[[:space:]]*\[\..*?\]"
102+
# +color ,red "^[[:space:]]*\[\..*"
103+
sed -E -i.bak -e 's/(color ,red .*\.\.\*)\?\\]/\1/' "${nanos[@]}"
104+
105+
# +++ b/x11basic.nanorc
106+
# -icolor brightwhite "\<[A-Z_][A-Za-z0-9_]*(|\$|\%|\&|\||\(\))\>"
107+
# +icolor brightwhite "\<[A-Z_][A-Za-z0-9_]*(\$|\%|\&|\||\(\))\>"
108+
sed -E -i.bak -e 's/(icolor\s+brightwhite.*\*\()\|/\1/' "${nanos[@]}"
109+
110+
# +++ b/yaml.nanorc
111+
# -color red "(^|\s+).*+\s*:(\s|$)"
112+
# +color red "(^|\s+).*\+\s*:(\s|$)"
113+
sed -E -i.bak -e 's/(color\s+red\s+.*\)\.\*)\+/\1\\+/' "${nanos[@]}"
114+
git commit -am "fix: pre-2.1.5: fix bad regexes"
115+
116+
# git checkout master
117+
118+
# take care, this will delete all your changes on your forked master
119+
# git push --force origin master
120+
121+
for branch in "${branches[@]}"; do
122+
git checkout "${branch}"
123+
git push --force -u origin "${branch}"
124+
done
125+
126+
git checkout master

switch-branch.sh

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env bash
2+
3+
NANO_VER=$(nano --version 2>/dev/null | awk '/version/ {print $4}' | awk -F . '{printf("%d%02d%02d", $1, $2, $3)}')
4+
5+
if [[ -z "${NANO_VER}" ]]; then
6+
printf "Cannot determine nano's version\\n" >&2
7+
exit 1
8+
fi
9+
10+
printf 'Found nano version %s\n' "$(nano --version 2>/dev/null | awk '/version/ {print $4}')"
11+
12+
if ((NANO_VER < 20105)); then
13+
NANO_BRANCH='pre-2.1.5'
14+
elif ((NANO_VER < 20299)); then
15+
NANO_BRANCH='pre-2.2.99'
16+
elif ((NANO_VER < 20302)); then
17+
NANO_BRANCH='pre-2.3.2'
18+
elif ((NANO_VER < 20503)); then
19+
NANO_BRANCH='pre-2.5.3'
20+
elif ((NANO_VER < 20905)); then
21+
NANO_BRANCH='pre-2.9.5'
22+
elif ((NANO_VER < 40500)); then
23+
NANO_BRANCH='pre-4.5'
24+
elif ((NANO_VER < 50000)); then
25+
NANO_BRANCH='pre-5.0'
26+
else
27+
NANO_BRANCH='master'
28+
fi
29+
30+
printf 'Switching to branch %s\n' "${NANO_BRANCH}"
31+
32+
git checkout "${NANO_BRANCH}"

0 commit comments

Comments
 (0)