Skip to content

Commit c00f931

Browse files
committed
Remove zip library dependency
1 parent fd5c596 commit c00f931

File tree

7 files changed

+16
-81
lines changed

7 files changed

+16
-81
lines changed

ci/build/build-packages.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ release_archive() {
3030
local release_name="code-server-$VERSION-$OS-$ARCH"
3131
if [[ $OS == "linux" ]]; then
3232
tar -czf "release-packages/$release_name.tar.gz" --transform "s/^\.\/release-standalone/$release_name/" ./release-standalone
33-
elif [[ "$OS" == "darwin" && "$ARCH" == "x86_64" ]]; then
33+
elif [[ $OS == "darwin" && $ARCH == "x86_64" ]]; then
3434
# Just exists to make autoupdating from 3.2.0 work again.
3535
mv ./release-standalone "./$release_name"
3636
zip -r "release-packages/$release_name.zip" "./$release_name"

ci/build/code-server.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ _realpath() {
2929
root() {
3030
script="$(_realpath "$0")"
3131
bin_dir="$(dirname "$script")"
32-
echo "$(dirname "$bin_dir")"
32+
dirname "$bin_dir"
3333
}
3434

3535
ROOT="$(root)"

ci/dev/fmt.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set -euo pipefail
44
main() {
55
cd "$(dirname "$0")/../.."
66

7-
shfmt -i 2 -w -s -sr $(git ls-files "*.sh")
7+
shfmt -i 2 -w -sr $(git ls-files "*.sh")
88

99
local prettierExts
1010
prettierExts=(

package.json

-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
},
3131
"main": "out/node/entry.js",
3232
"devDependencies": {
33-
"@types/adm-zip": "^0.4.32",
3433
"@types/fs-extra": "^8.0.1",
3534
"@types/http-proxy": "^1.17.4",
3635
"@types/js-yaml": "^3.12.3",
@@ -66,7 +65,6 @@
6665
},
6766
"dependencies": {
6867
"@coder/logger": "1.1.11",
69-
"adm-zip": "^0.4.14",
7068
"env-paths": "^2.2.0",
7169
"fs-extra": "^8.1.0",
7270
"http-proxy": "^1.18.0",

src/node/app/update.ts

+2-41
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { field, logger } from "@coder/logger"
2-
import zip from "adm-zip"
32
import * as cp from "child_process"
43
import * as fs from "fs-extra"
54
import * as http from "http"
@@ -213,11 +212,7 @@ export class UpdateHttpProvider extends HttpProvider {
213212
const response = await this.requestResponse(url)
214213

215214
try {
216-
if (downloadPath.endsWith(".tar.gz")) {
217-
downloadPath = await this.extractTar(response, downloadPath)
218-
} else {
219-
downloadPath = await this.extractZip(response, downloadPath)
220-
}
215+
downloadPath = await this.extractTar(response, downloadPath)
221216
logger.debug("Downloaded update", field("path", downloadPath))
222217

223218
// The archive should have a directory inside at the top level with the
@@ -275,40 +270,6 @@ export class UpdateHttpProvider extends HttpProvider {
275270
return downloadPath
276271
}
277272

278-
private async extractZip(response: Readable, downloadPath: string): Promise<string> {
279-
logger.debug("Downloading zip", field("path", downloadPath))
280-
281-
response.pause()
282-
await fs.remove(downloadPath)
283-
284-
const write = fs.createWriteStream(downloadPath)
285-
response.pipe(write)
286-
response.on("error", (error) => write.destroy(error))
287-
response.on("close", () => write.end())
288-
289-
await new Promise((resolve, reject) => {
290-
write.on("error", reject)
291-
write.on("close", resolve)
292-
response.resume
293-
})
294-
295-
const zipPath = downloadPath
296-
downloadPath = downloadPath.replace(/\.zip$/, "")
297-
await fs.remove(downloadPath)
298-
299-
logger.debug("Extracting zip", field("path", zipPath))
300-
301-
await new Promise((resolve, reject) => {
302-
new zip(zipPath).extractAllToAsync(downloadPath, true, (error) => {
303-
return error ? reject(error) : resolve()
304-
})
305-
})
306-
307-
await fs.remove(zipPath)
308-
309-
return downloadPath
310-
}
311-
312273
/**
313274
* Given an update return the name for the packaged archived.
314275
*/
@@ -329,7 +290,7 @@ export class UpdateHttpProvider extends HttpProvider {
329290
if (arch === "x64") {
330291
arch = "x86_64"
331292
}
332-
return `code-server-${update.version}-${target}-${arch}.${target === "darwin" ? "zip" : "tar.gz"}`
293+
return `code-server-${update.version}-${target}-${arch}.tar.gz`
333294
}
334295

335296
private async request(uri: string): Promise<Buffer> {

test/update.test.ts

+11-23
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import zip from "adm-zip"
21
import * as assert from "assert"
32
import * as fs from "fs-extra"
43
import * as http from "http"
5-
import * as os from "os"
64
import * as path from "path"
75
import * as tar from "tar-fs"
86
import * as zlib from "zlib"
@@ -88,28 +86,18 @@ describe("update", () => {
8886
fs.writeFile(path.join(archivePath, archiveName, "node"), `NODE BINARY`),
8987
])
9088

91-
if (os.platform() === "darwin") {
92-
await new Promise((resolve, reject) => {
93-
const zipFile = new zip()
94-
zipFile.addLocalFolder(archivePath)
95-
zipFile.writeZip(archivePath + ".zip", (error) => {
96-
return error ? reject(error) : resolve(error)
97-
})
98-
})
99-
} else {
100-
await new Promise((resolve, reject) => {
101-
const write = fs.createWriteStream(archivePath + ".tar.gz")
102-
const compress = zlib.createGzip()
103-
compress.pipe(write)
104-
compress.on("error", (error) => compress.destroy(error))
105-
compress.on("close", () => write.end())
106-
tar.pack(archivePath).pipe(compress)
107-
write.on("close", reject)
108-
write.on("finish", () => {
109-
resolve()
110-
})
89+
await new Promise((resolve, reject) => {
90+
const write = fs.createWriteStream(archivePath + ".tar.gz")
91+
const compress = zlib.createGzip()
92+
compress.pipe(write)
93+
compress.on("error", (error) => compress.destroy(error))
94+
compress.on("close", () => write.end())
95+
tar.pack(archivePath).pipe(compress)
96+
write.on("close", reject)
97+
write.on("finish", () => {
98+
resolve()
11199
})
112-
}
100+
})
113101
})
114102

115103
after(() => {

yarn.lock

-12
Original file line numberDiff line numberDiff line change
@@ -910,13 +910,6 @@
910910
traverse "^0.6.6"
911911
unified "^6.1.6"
912912

913-
"@types/adm-zip@^0.4.32":
914-
version "0.4.33"
915-
resolved "https://registry.yarnpkg.com/@types/adm-zip/-/adm-zip-0.4.33.tgz#ea5b94f771443f655613b64f920c0555867200dd"
916-
integrity sha512-WM0DCWFLjXtddl0fu0+iN2ZF+qz8RF9RddG5OSy/S90AQz01Fu8lHn/3oTIZDxvG8gVcnBLAHMHOdBLbV6m6Mw==
917-
dependencies:
918-
"@types/node" "*"
919-
920913
"@types/color-name@^1.1.1":
921914
version "1.1.1"
922915
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
@@ -1130,11 +1123,6 @@ acorn@^7.1.1:
11301123
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf"
11311124
integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==
11321125

1133-
adm-zip@^0.4.14:
1134-
version "0.4.14"
1135-
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.14.tgz#2cf312bcc9f8875df835b0f6040bd89be0a727a9"
1136-
integrity sha512-/9aQCnQHF+0IiCl0qhXoK7qs//SwYE7zX8lsr/DNk1BRAHYxeLZPL4pguwK29gUEqasYQjqPtEpDRSWEkdHn9g==
1137-
11381126
ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5:
11391127
version "6.12.2"
11401128
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd"

0 commit comments

Comments
 (0)