1
1
#! /usr/bin/env bash
2
2
3
3
set -euo pipefail
4
+
4
5
if [ ! -z ${GITHUB_ACTIONS-} ]; then
5
6
set -x
6
7
fi
@@ -10,7 +11,7 @@ help() {
10
11
Install a binary release of ord hosted on GitHub
11
12
12
13
USAGE:
13
- install [options]
14
+ install.sh [options]
14
15
15
16
FLAGS:
16
17
-h, --help Display this message
@@ -23,25 +24,20 @@ OPTIONS:
23
24
EOF
24
25
}
25
26
26
- git=ordinals/ord
27
27
crate=ord
28
28
url=https://github.com/ordinals/ord
29
29
releases=$url /releases
30
30
31
31
say () {
32
- echo " install: $@ "
33
- }
34
-
35
- say_err () {
36
- say " $@ " >&2
32
+ echo " install.sh: $* " >&2
37
33
}
38
34
39
35
err () {
40
- if [ ! -z ${td -} ]; then
41
- rm -rf $td
36
+ if [ ! -z ${tempdir -} ]; then
37
+ rm -rf $tempdir
42
38
fi
43
39
44
- say_err " error: $@ "
40
+ say " error: $* "
45
41
exit 1
46
42
}
47
43
@@ -86,17 +82,11 @@ need mkdir
86
82
need mktemp
87
83
need tar
88
84
89
- # Optional dependencies
85
+ dest=${dest-" $HOME /bin" }
86
+
90
87
if [ -z ${tag-} ]; then
91
88
need cut
92
- need rev
93
- fi
94
89
95
- if [ -z ${dest-} ]; then
96
- dest=" $HOME /bin"
97
- fi
98
-
99
- if [ -z ${tag-} ]; then
100
90
tag=$( curl --proto =https --tlsv1.2 -sSf https://api.github.com/repos/ordinals/ord/releases/latest |
101
91
grep tag_name |
102
92
cut -d' "' -f4
@@ -111,34 +101,37 @@ if [ -z ${target-} ]; then
111
101
x86_64-Darwin) target=x86_64-apple-darwin;;
112
102
x86_64-Linux) target=x86_64-unknown-linux-gnu;;
113
103
* )
114
- err ' Could not determine target from output of `uname -m`-`uname -s`, please use `--target`:' $uname_target
115
- err ' Target architecture is not supported by this install script.'
116
- err ' Consider opening an issue or building from source: https://github.com/ordinals/ord'
104
+ say ' Could not determine target from output of `uname -m`-`uname -s`, please use `--target`:' $uname_target
105
+ say ' Target architecture is not supported by this install script.'
106
+ say ' Consider opening an issue or building from source: https://github.com/ordinals/ord'
107
+ exit 1
117
108
;;
118
109
esac
119
110
fi
120
111
121
112
archive=" $releases /download/$tag /$crate -$tag -$target .tar.gz"
122
113
123
- say_err " Repository: $url "
124
- say_err " Crate: $crate "
125
- say_err " Tag: $tag "
126
- say_err " Target: $target "
127
- say_err " Destination: $dest "
128
- say_err " Archive: $archive "
114
+ say " Repository: $url "
115
+ say " Crate: $crate "
116
+ say " Tag: $tag "
117
+ say " Target: $target "
118
+ say " Destination: $dest "
119
+ say " Archive: $archive "
120
+
121
+ tempdir=` mktemp -d || mktemp -d -t tmp`
129
122
130
- td=$( mktemp -d || mktemp -d -t tmp)
131
- curl --proto =https --tlsv1.2 -sSfL $archive | tar --directory $td --strip-components 1 -xz
123
+ curl --proto =https --tlsv1.2 -sSfL $archive | tar --directory $tempdir --strip-components 1 -xz
132
124
133
- for f in $( ls $td ) ; do
134
- test -x $td /$f || continue
125
+ for name in ` ls $tempdir ` ; do
126
+ file=" $tempdir /$name "
127
+ test -x $file || continue
135
128
136
- if [ -e " $dest /$f " ] && [ $force = false ]; then
137
- err " $f already exists in $dest "
129
+ if [ -e " $dest /$name " ] && [ $force = false ]; then
130
+ err " $name already exists in $dest "
138
131
else
139
132
mkdir -p $dest
140
- install -m 755 $td / $f $dest
133
+ install -m 755 $file $dest
141
134
fi
142
135
done
143
136
144
- rm -rf $td
137
+ rm -rf $tempdir
0 commit comments