commitmnt
Version:
Copy your gitlab and bitbucket commits to a new, publishable github repo
43 lines • 2.21 kB
JavaScript
export class ChangeDirectory {
current;
last;
/**
* @param base the directory to start at
* @constructor
*/
constructor(baseDir) {
const dir = baseDir ?? process.cwd();
this.go(dir);
}
/**
* Changes back to the last directory
*/
back() {
const last = this.last;
this.go(last);
}
/**
* Changes to a directory
*
* @param dir the directory to go to
*/
go(dir) {
this.last = process.cwd();
process.chdir(dir);
this.current = process.cwd();
this.ensure(dir);
}
/**
* Ensures the process is in the specified directory
*
* @param dir the directory to test
* @returns true if the directory matches
* @throws error if the directory does not match
*/
ensure(dir) {
if (process.cwd() !== dir)
throw new Error(`Unexpected directory: ${process.cwd()} - Expected: ${dir}`);
return true;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2NkL2NkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxlQUFlO0lBQzFCLE9BQU8sQ0FBUztJQUNoQixJQUFJLENBQVM7SUFFYjs7O09BR0c7SUFDSCxZQUFZLE9BQWdCO1FBQzFCLE1BQU0sR0FBRyxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFckMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLENBQUMsR0FBVztRQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQVc7UUFDaEIsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBRztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixPQUFPLENBQUMsR0FBRyxFQUFFLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRS9FLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIn0=