-
Notifications
You must be signed in to change notification settings - Fork 2
/
.deploy-to-homebrew
executable file
·120 lines (92 loc) · 3.37 KB
/
.deploy-to-homebrew
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/bash
set -e
if [ "$VERSION" = "" ]; then echo "\$VERSION isn't set"; exit 1; fi
ARCHIVE=$(mktemp /tmp/branchout.XXXXXX)
CHECKOUT_DIR=$(mktemp -d /tmp/homebrew-branchout.XXXXXX)
cleanup() {
rm -r "${ARCHIVE}"
rm -r "${CHECKOUT_DIR}"
}
# trap cleanup EXIT
curl -sSL https://github.com/Branchout/branchout/archive/$VERSION.tar.gz -o "$ARCHIVE"
if ! tar xOf "$ARCHIVE" > /dev/null 2>/dev/null; then echo "$ARCHIVE isn't a valid archive"; exit 1; fi
HASH=$(shasum -a 256 "$ARCHIVE" | cut -d\ -f1)
git clone https://github.com/Branchout/homebrew-branchout.git "$CHECKOUT_DIR"
echo "class Branchout < Formula
desc \"Command-line git repository layout manage\"
homepage \"https://github.com/Branchout/branchout\"
url \"https://github.com/StickySource/branchout/archive/${VERSION}.tar.gz\"
sha256 \"${HASH}\"
version \"${VERSION:1}\"
depends_on \"branchout/branchout/branchout-core\"
depends_on \"branchout/branchout/branchout-maven\"
depends_on \"branchout/branchout/branchout-yarn\"
def install
bin.install \"branchout-intro\"
end
def test
system \"#{bin}/branchout version\"
end
end
" > "$CHECKOUT_DIR/branchout.rb"
echo "class BranchoutCore < Formula
desc \"Command-line git repository layout manage\"
homepage \"https://github.com/Branchout/branchout\"
url \"https://github.com/StickySource/branchout/archive/${VERSION}.tar.gz\"
sha256 \"${HASH}\"
version \"${VERSION:1}\"
depends_on \"git\"
depends_on \"bash\"
def install
bin.install \"branchout\"
bin.install \"branchout-project\"
bin.install \"branchout-group\"
bin.install \"branchout-init\"
bin.install \"branchout-environment\"
bin.install \"branchout-configuration\"
end
def test
system \"#{bin}/branchout version\"
end
end
" > "$CHECKOUT_DIR/branchout-core.rb"
echo "class BranchoutMaven < Formula
desc \"Command-line git repository layout manager\"
homepage \"https://github.com/Branchout/branchout\"
url \"https://github.com/StickySource/branchout/archive/${VERSION}.tar.gz\"
sha256 \"${HASH}\"
version \"${VERSION:1}\"
depends_on \"branchout/branchout/branchout-core\"
depends_on \"branchout/branchout/[email protected]\"
def install
bin.install \"branchout-maven\"
end
def test
system \"#{bin}/branchout version\"
end
end
" > "$CHECKOUT_DIR/branchout-maven.rb"
echo "class BranchoutYarn < Formula
desc \"Command-line git repository layout manager\"
homepage \"https://github.com/Branchout/branchout\"
url \"https://github.com/StickySource/branchout/archive/${VERSION}.tar.gz\"
sha256 \"${HASH}\"
version \"${VERSION:1}\"
depends_on \"branchout/branchout/branchout-core\"
depends_on \"yarn\"
def install
bin.install \"branchout-yarn\"
end
def test
system \"#{bin}/branchout version\"
end
end
" > "$CHECKOUT_DIR/branchout-yarn.rb"
echo "Changes about to be committed:"
git -C "$CHECKOUT_DIR" diff -U0
read -p "Press enter to commit and push/publish the changes to homebrew, or ctrl C to cancel and bail out."
# Read email/name from the main branchout repo that we're in when this script is run
userEmail="$(git config user.email)"
userName="$(git config user.name)"
# Then apply them to the freshly cloned repo
(cd "$CHECKOUT_DIR" && git config user.email "${userEmail}" && git config user.name "${userName}" && git commit -a -m "$VERSION" && git tag -m "$VERSION" "$VERSION" HEAD && git push origin master "$VERSION")