Archived
1
0

Fix moving data directory across devices

This commit is contained in:
Asher
2019-03-12 15:45:44 -05:00
parent ba37a34fa2
commit f7c1ebf667
5 changed files with 14 additions and 33 deletions

View File

@ -97,22 +97,3 @@ export const parse = (arg: string): any => { // tslint:disable-line no-any
return arg ? convert(JSON.parse(arg)) : arg;
};
export const mkdirP = async (path: string): Promise<void> => {
// Since our fills require this file, we can't import them up top or we get
// circular dependency issue.
const { mkdir } = require("fs") as typeof import("fs");
const { promisify } = require("util") as typeof import("util");
const split = path.replace(/^\/*|\/*$/g, "").split("/");
let dir = "";
while (split.length > 0) {
dir += "/" + split.shift();
try {
await promisify(mkdir)(dir);
} catch (error) {
if (error.code !== "EEXIST" && error.code !== "EISDIR") {
throw error;
}
}
}
};

View File

@ -1,10 +1,10 @@
import { mkdirp } from "fs-extra";
import * as os from "os";
import { logger, field } from "@coder/logger";
import { Pong, ClientMessage, WorkingInitMessage, ServerMessage } from "../proto";
import { evaluate, ActiveEvaluation } from "./evaluate";
import { ForkProvider } from "../common/helpers";
import { ReadWriteConnection } from "../common/connection";
import { mkdirP } from "../common/util";
export interface ServerOptions {
readonly workingDirectory: string;
@ -42,9 +42,9 @@ export class Server {
}
Promise.all([
mkdirP(this.options.cacheDirectory),
mkdirP(this.options.dataDirectory),
mkdirP(this.options.workingDirectory),
mkdirp(this.options.cacheDirectory),
mkdirp(this.options.dataDirectory),
mkdirp(this.options.workingDirectory),
]).catch((error) => {
logger.error(error.message, field("error", error));
});