@sentry/cli 2.56.0 → 2.56.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/checksums.txt +10 -10
- package/package.json +9 -9
- package/scripts/wheels +179 -0
package/checksums.txt
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
sentry-cli-Darwin-arm64=
|
|
2
|
-
sentry-cli-Darwin-universal=
|
|
3
|
-
sentry-cli-Darwin-x86_64=
|
|
4
|
-
sentry-cli-Linux-aarch64=
|
|
5
|
-
sentry-cli-Linux-armv7=
|
|
6
|
-
sentry-cli-Linux-i686=
|
|
7
|
-
sentry-cli-Linux-x86_64=
|
|
8
|
-
sentry-cli-Windows-aarch64.exe=
|
|
9
|
-
sentry-cli-Windows-i686.exe=
|
|
10
|
-
sentry-cli-Windows-x86_64.exe=
|
|
1
|
+
sentry-cli-Darwin-arm64=f91b37e40d6702ca00eaa24edcb82fdaa13e6573a25ba60f17a2e5a2a8910283
|
|
2
|
+
sentry-cli-Darwin-universal=87788404f46205637f0713140bcb20269d9859c0706144fa7a8fbe6e7e02b776
|
|
3
|
+
sentry-cli-Darwin-x86_64=d00bb8bd62ca17b61dd604db4cd2d444b029790510010a1a0b99ce2ad3b6ca43
|
|
4
|
+
sentry-cli-Linux-aarch64=cc58bca49593cd6fcda4d934e1bf68f3bed9194156ba122cdb2e4cfd79a23878
|
|
5
|
+
sentry-cli-Linux-armv7=636cf1211e55e816474e227282ebda032bcc75efe074a7f680abcedd092096ac
|
|
6
|
+
sentry-cli-Linux-i686=c913b72fd887be3d1c6bf73161f19b85b7063418bfbc5390df21f9c421515f95
|
|
7
|
+
sentry-cli-Linux-x86_64=be0bcbf4740c95330cf2d735769f31640d69fd297a2b74ad0cd9ed383814cafa
|
|
8
|
+
sentry-cli-Windows-aarch64.exe=d34275dfe92e74b9280dcc83dd9a7185618c0153f4c47e8b675ed3ca8e5a67f3
|
|
9
|
+
sentry-cli-Windows-i686.exe=1daea54f6f1c318c77091fdbcc8a596b263e71831787705c77f7ea09291a8697
|
|
10
|
+
sentry-cli-Windows-x86_64.exe=9a5d968428c9ae1ad03720b6f26d371c8571a0c1359ad4046b01893724ddfc97
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentry/cli",
|
|
3
|
-
"version": "2.56.
|
|
3
|
+
"version": "2.56.1",
|
|
4
4
|
"description": "A command line utility to work with Sentry. https://docs.sentry.io/hosted/learn/cli/",
|
|
5
5
|
"repository": "git://github.com/getsentry/sentry-cli.git",
|
|
6
6
|
"homepage": "https://docs.sentry.io/hosted/learn/cli/",
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
"typescript": "~5.8.3"
|
|
33
33
|
},
|
|
34
34
|
"optionalDependencies": {
|
|
35
|
-
"@sentry/cli-darwin": "2.56.
|
|
36
|
-
"@sentry/cli-linux-arm": "2.56.
|
|
37
|
-
"@sentry/cli-linux-arm64": "2.56.
|
|
38
|
-
"@sentry/cli-linux-i686": "2.56.
|
|
39
|
-
"@sentry/cli-linux-x64": "2.56.
|
|
40
|
-
"@sentry/cli-win32-i686": "2.56.
|
|
41
|
-
"@sentry/cli-win32-x64": "2.56.
|
|
42
|
-
"@sentry/cli-win32-arm64": "2.56.
|
|
35
|
+
"@sentry/cli-darwin": "2.56.1",
|
|
36
|
+
"@sentry/cli-linux-arm": "2.56.1",
|
|
37
|
+
"@sentry/cli-linux-arm64": "2.56.1",
|
|
38
|
+
"@sentry/cli-linux-i686": "2.56.1",
|
|
39
|
+
"@sentry/cli-linux-x64": "2.56.1",
|
|
40
|
+
"@sentry/cli-win32-i686": "2.56.1",
|
|
41
|
+
"@sentry/cli-win32-x64": "2.56.1",
|
|
42
|
+
"@sentry/cli-win32-arm64": "2.56.1"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"postinstall": "node ./scripts/install.js",
|
package/scripts/wheels
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
import argparse
|
|
3
|
+
import base64
|
|
4
|
+
import hashlib
|
|
5
|
+
import os.path
|
|
6
|
+
import shutil
|
|
7
|
+
import tempfile
|
|
8
|
+
import zipfile
|
|
9
|
+
from typing import NamedTuple
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Wheel(NamedTuple):
|
|
13
|
+
src: str
|
|
14
|
+
plat: str
|
|
15
|
+
exe: str = 'sentry-cli'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
WHEELS = (
|
|
19
|
+
Wheel(
|
|
20
|
+
src='sentry-cli-Darwin-arm64',
|
|
21
|
+
plat='macosx_11_0_arm64',
|
|
22
|
+
),
|
|
23
|
+
Wheel(
|
|
24
|
+
src='sentry-cli-Darwin-universal',
|
|
25
|
+
plat='macosx_11_0_universal2',
|
|
26
|
+
),
|
|
27
|
+
Wheel(
|
|
28
|
+
src='sentry-cli-Darwin-x86_64',
|
|
29
|
+
plat='macosx_10_15_x86_64',
|
|
30
|
+
),
|
|
31
|
+
Wheel(
|
|
32
|
+
src='sentry-cli-Linux-aarch64',
|
|
33
|
+
plat='manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_2_aarch64',
|
|
34
|
+
),
|
|
35
|
+
Wheel(
|
|
36
|
+
src='sentry-cli-Linux-armv7',
|
|
37
|
+
plat='manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_2_armv7l',
|
|
38
|
+
),
|
|
39
|
+
Wheel(
|
|
40
|
+
src='sentry-cli-Linux-i686',
|
|
41
|
+
plat='manylinux_2_17_i686.manylinux2014_i686.musllinux_1_2_i686',
|
|
42
|
+
),
|
|
43
|
+
Wheel(
|
|
44
|
+
src='sentry-cli-Linux-x86_64',
|
|
45
|
+
plat='manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_2_x86_64',
|
|
46
|
+
),
|
|
47
|
+
Wheel(
|
|
48
|
+
src='sentry-cli-Windows-i686.exe',
|
|
49
|
+
plat='win32',
|
|
50
|
+
exe='sentry-cli.exe',
|
|
51
|
+
),
|
|
52
|
+
Wheel(
|
|
53
|
+
src='sentry-cli-Windows-x86_64.exe',
|
|
54
|
+
plat='win_amd64',
|
|
55
|
+
exe='sentry-cli.exe',
|
|
56
|
+
),
|
|
57
|
+
Wheel(
|
|
58
|
+
src='sentry-cli-Windows-aarch64.exe',
|
|
59
|
+
plat='win_arm64',
|
|
60
|
+
exe='sentry-cli.exe',
|
|
61
|
+
),
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def main() -> int:
|
|
66
|
+
parser = argparse.ArgumentParser()
|
|
67
|
+
parser.add_argument('--binaries', required=True)
|
|
68
|
+
parser.add_argument('--base', required=True)
|
|
69
|
+
parser.add_argument('--dest', required=True)
|
|
70
|
+
args = parser.parse_args()
|
|
71
|
+
|
|
72
|
+
expected = {wheel.src for wheel in WHEELS}
|
|
73
|
+
received = set(os.listdir(args.binaries))
|
|
74
|
+
if expected < received:
|
|
75
|
+
raise SystemExit(
|
|
76
|
+
f'Unexpected binaries:\n\n'
|
|
77
|
+
f'- extra: {", ".join(sorted(received - expected))}\n'
|
|
78
|
+
f'- missing: {", ".join(sorted(expected - received))}'
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
sdist_path = wheel_path = None
|
|
82
|
+
for fname in os.listdir(args.base):
|
|
83
|
+
if fname.endswith('.tar.gz'):
|
|
84
|
+
sdist_path = os.path.join(args.base, fname)
|
|
85
|
+
elif fname.endswith('.whl'):
|
|
86
|
+
wheel_path = os.path.join(args.base, fname)
|
|
87
|
+
else:
|
|
88
|
+
raise SystemExit(f'unexpected file in `--base`: {fname}')
|
|
89
|
+
|
|
90
|
+
if sdist_path is None or wheel_path is None:
|
|
91
|
+
raise SystemExit('expected wheel and sdist in `--base`')
|
|
92
|
+
|
|
93
|
+
os.makedirs(args.dest, exist_ok=True)
|
|
94
|
+
shutil.copy(sdist_path, args.dest)
|
|
95
|
+
|
|
96
|
+
for wheel in WHEELS:
|
|
97
|
+
binary_src = os.path.join(args.binaries, wheel.src)
|
|
98
|
+
binary_size = os.stat(binary_src).st_size
|
|
99
|
+
with open(binary_src, 'rb') as bf:
|
|
100
|
+
digest = hashlib.sha256(bf.read()).digest()
|
|
101
|
+
digest_b64 = base64.urlsafe_b64encode(digest).rstrip(b'=').decode()
|
|
102
|
+
|
|
103
|
+
basename = os.path.basename(wheel_path)
|
|
104
|
+
wheelname, _ = os.path.splitext(basename)
|
|
105
|
+
name, version, py, abi, plat = wheelname.split('-')
|
|
106
|
+
|
|
107
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
108
|
+
with zipfile.ZipFile(wheel_path) as zipf:
|
|
109
|
+
zipf.extractall(tmp)
|
|
110
|
+
|
|
111
|
+
distinfo = os.path.join(tmp, f'{name}-{version}.dist-info')
|
|
112
|
+
scripts = os.path.join(tmp, f'{name}-{version}.data', 'scripts')
|
|
113
|
+
|
|
114
|
+
# replace the script binary with our copy
|
|
115
|
+
os.remove(os.path.join(scripts, 'sentry-cli'))
|
|
116
|
+
shutil.copy(binary_src, os.path.join(scripts, wheel.exe))
|
|
117
|
+
|
|
118
|
+
# rewrite RECORD to include the new file
|
|
119
|
+
record_fname = os.path.join(distinfo, 'RECORD')
|
|
120
|
+
with open(record_fname) as f:
|
|
121
|
+
record_lines = list(f)
|
|
122
|
+
|
|
123
|
+
record = f'{name}-{version}.data/scripts/sentry-cli,'
|
|
124
|
+
for i, line in enumerate(record_lines):
|
|
125
|
+
if line.startswith(record):
|
|
126
|
+
record_lines[i] = (
|
|
127
|
+
f'{name}-{version}.data/scripts/{wheel.exe},'
|
|
128
|
+
f'sha256={digest_b64},'
|
|
129
|
+
f'{binary_size}\n'
|
|
130
|
+
)
|
|
131
|
+
break
|
|
132
|
+
else:
|
|
133
|
+
raise SystemExit(f'could not find {record!r} in RECORD')
|
|
134
|
+
|
|
135
|
+
with open(record_fname, 'w') as f:
|
|
136
|
+
f.writelines(record_lines)
|
|
137
|
+
|
|
138
|
+
# rewrite WHEEL to have the new tags
|
|
139
|
+
wheel_fname = os.path.join(distinfo, 'WHEEL')
|
|
140
|
+
with open(wheel_fname) as f:
|
|
141
|
+
wheel_lines = list(f)
|
|
142
|
+
|
|
143
|
+
for i, line in enumerate(wheel_lines):
|
|
144
|
+
if line.startswith('Tag: '):
|
|
145
|
+
wheel_lines[i:i + 1] = [
|
|
146
|
+
f'Tag: {py}-{abi}-{plat}\n'
|
|
147
|
+
for plat in wheel.plat.split('.')
|
|
148
|
+
]
|
|
149
|
+
break
|
|
150
|
+
else:
|
|
151
|
+
raise SystemExit("could not find 'Tag: ' in WHEEL")
|
|
152
|
+
|
|
153
|
+
with open(wheel_fname, 'w') as f:
|
|
154
|
+
f.writelines(wheel_lines)
|
|
155
|
+
|
|
156
|
+
# write out the final zip
|
|
157
|
+
new_basename = f'{name}-{version}-{py}-{abi}-{wheel.plat}.whl'
|
|
158
|
+
tmp_new_wheel = os.path.join(tmp, new_basename)
|
|
159
|
+
fnames = sorted(
|
|
160
|
+
os.path.join(root, fname)
|
|
161
|
+
for root, _, fnames in os.walk(tmp)
|
|
162
|
+
for fname in fnames
|
|
163
|
+
)
|
|
164
|
+
with zipfile.ZipFile(tmp_new_wheel, 'w') as zipf:
|
|
165
|
+
for fname in fnames:
|
|
166
|
+
zinfo = zipfile.ZipInfo(os.path.relpath(fname, tmp))
|
|
167
|
+
if '/scripts/' in zinfo.filename:
|
|
168
|
+
zinfo.external_attr = 0o100755 << 16
|
|
169
|
+
with open(fname, 'rb') as fb:
|
|
170
|
+
zipf.writestr(zinfo, fb.read())
|
|
171
|
+
|
|
172
|
+
# move into dest
|
|
173
|
+
shutil.move(tmp_new_wheel, args.dest)
|
|
174
|
+
|
|
175
|
+
return 0
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
if __name__ == '__main__':
|
|
179
|
+
raise SystemExit(main())
|