Skip to content

Commit

Permalink
chore: update CHANGELOG
Browse files Browse the repository at this point in the history
  • Loading branch information
jsjoeio committed May 11, 2021
1 parent aa4e8c8 commit 9c462c0
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 27 deletions.
27 changes: 26 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,16 @@
# Changelog

- [Changelog](#changelog)
- [3.10.0](#3100)
- [3.11.0](#3110)
- [New Features](#new-features)
- [Bug Fixes](#bug-fixes)
- [Documentation](#documentation)
- [Development](#development)
- [3.10.0](#3100)
- [New Features](#new-features-1)
- [Bug Fixes](#bug-fixes-1)
- [Documentation](#documentation-1)
- [Development](#development-1)
- [Previous versions](#previous-versions)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Expand Down Expand Up @@ -47,6 +52,26 @@ VS Code v0.00.0
-->

## 3.11.0

VS Code v1.56

### New Features

- item

### Bug Fixes

- fix(socket): use xdgBasedir.runtime instead of tmp #3304 @jsjoeio

## Documentation

- item

## Development

- item

## 3.10.0

VS Code v1.56
Expand Down
2 changes: 1 addition & 1 deletion src/node/socket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ export class SocketProxyProvider {
.then((pipe) => {
this.proxyPipe = pipe
return Promise.all([
fs.mkdir(paths.runtime, { recursive: true }),
fs.mkdir(path.dirname(this.proxyPipe), { recursive: true }),
fs.rmdir(this.proxyPipe, { recursive: true }),
])
})
Expand Down
48 changes: 27 additions & 21 deletions src/node/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ import * as os from "os"
import * as path from "path"
import * as util from "util"
import xdgBasedir from "xdg-basedir"
import { tmpdir } from "./constants"

interface Paths {
export interface Paths {
data: string
config: string
runtime: string
Expand All @@ -23,26 +22,33 @@ export const paths = getEnvPaths()
* ones. Most CLIs do this as in practice only GUI apps use the standard macOS directories.
*/
export function getEnvPaths(): Paths {
let paths: Paths
if (process.platform === "win32") {
paths = {
...envPaths("code-server", {
suffix: "",
}),
runtime: tmpdir,
}
} else {
if (xdgBasedir.data === undefined || xdgBasedir.config === undefined) {
throw new Error("No home folder?")
}
paths = {
data: path.join(xdgBasedir.data, "code-server"),
config: path.join(xdgBasedir.config, "code-server"),
runtime: xdgBasedir.runtime ? path.join(xdgBasedir.runtime, "code-server") : tmpdir,
}
const paths = envPaths("code-server", { suffix: "" })
const append = (p: string): string => path.join(p, "code-server")
switch (process.platform) {
case "darwin":
return {
// envPaths uses native directories so force Darwin to use the XDG spec
// to align with other CLI tools.
data: xdgBasedir.data ? append(xdgBasedir.data) : paths.data,
config: xdgBasedir.config ? append(xdgBasedir.config) : paths.config,
// Fall back to temp if there is no runtime dir.
runtime: xdgBasedir.runtime ? append(xdgBasedir.runtime) : paths.temp,
}
case "win32":
return {
data: paths.data,
config: paths.config,
// Windows doesn't have a runtime dir.
runtime: paths.temp,
}
default:
return {
data: paths.data,
config: paths.config,
// Fall back to temp if there is no runtime dir.
runtime: xdgBasedir.runtime ? append(xdgBasedir.runtime) : paths.temp,
}
}

return paths
}

/**
Expand Down
9 changes: 5 additions & 4 deletions test/unit/node/util.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { getEnvPaths } from "../../../src/node/util"
import { getEnvPaths, Paths } from "../../../src/node/util"

describe("getEnvPaths", () => {
it("should return an object with the data, config and runtime path", () => {
const actualPaths = getEnvPaths()
expect(actualPaths.hasOwnProperty("data")).toBe(true)
expect(actualPaths.hasOwnProperty("config")).toBe(true)
expect(actualPaths.hasOwnProperty("runtime")).toBe(true)
const expectedProperties = ["data", "config", "runtime"]
expectedProperties.forEach((property) => {
expect(actualPaths[property as keyof Paths]).toBeDefined()
})
})
})

0 comments on commit 9c462c0

Please sign in to comment.