UNPKG

projen

Version:

CDK for software projects

33 lines 4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Clobber = void 0; const component_1 = require("./component"); class Clobber extends component_1.Component { constructor(project) { super(project); const task = this.project.addTask("clobber", { description: "hard resets to HEAD of origin and cleans the local repo", condition: "git diff --exit-code > /dev/null", env: { BRANCH: "$(git branch --show-current)", }, }); task.execArgs(["git", "checkout", "-b", "scratch"], { name: 'save current HEAD in "scratch" branch', }); // `$BRANCH` needs a shell to expand task.exec('git checkout "$BRANCH"'); task.execArgs(["git", "fetch", "origin"], { name: "fetch latest changes from origin", }); task.exec('git reset --hard "origin/$BRANCH"', { name: "hard reset to origin commit", }); task.execArgs(["git", "clean", "-fdx"], { name: "clean all untracked files", }); task.say('ready to rock! (unpushed commits are under the "scratch" branch)'); } } exports.Clobber = Clobber; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvYmJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbG9iYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF3QztBQUd4QyxNQUFhLE9BQVEsU0FBUSxxQkFBUztJQUNwQyxZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMzQyxXQUFXLEVBQUUseURBQXlEO1lBQ3RFLFNBQVMsRUFBRSxrQ0FBa0M7WUFDN0MsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSw4QkFBOEI7YUFDdkM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDbEQsSUFBSSxFQUFFLHVDQUF1QztTQUM5QyxDQUFDLENBQUM7UUFDSCxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ3hDLElBQUksRUFBRSxrQ0FBa0M7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsRUFBRTtZQUM3QyxJQUFJLEVBQUUsNkJBQTZCO1NBQ3BDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLElBQUksRUFBRSwyQkFBMkI7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FDTixrRUFBa0UsQ0FDbkUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTlCRCwwQkE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcblxuZXhwb3J0IGNsYXNzIENsb2JiZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCB0YXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soXCJjbG9iYmVyXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcImhhcmQgcmVzZXRzIHRvIEhFQUQgb2Ygb3JpZ2luIGFuZCBjbGVhbnMgdGhlIGxvY2FsIHJlcG9cIixcbiAgICAgIGNvbmRpdGlvbjogXCJnaXQgZGlmZiAtLWV4aXQtY29kZSA+IC9kZXYvbnVsbFwiLFxuICAgICAgZW52OiB7XG4gICAgICAgIEJSQU5DSDogXCIkKGdpdCBicmFuY2ggLS1zaG93LWN1cnJlbnQpXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGFzay5leGVjQXJncyhbXCJnaXRcIiwgXCJjaGVja291dFwiLCBcIi1iXCIsIFwic2NyYXRjaFwiXSwge1xuICAgICAgbmFtZTogJ3NhdmUgY3VycmVudCBIRUFEIGluIFwic2NyYXRjaFwiIGJyYW5jaCcsXG4gICAgfSk7XG4gICAgLy8gYCRCUkFOQ0hgIG5lZWRzIGEgc2hlbGwgdG8gZXhwYW5kXG4gICAgdGFzay5leGVjKCdnaXQgY2hlY2tvdXQgXCIkQlJBTkNIXCInKTtcbiAgICB0YXNrLmV4ZWNBcmdzKFtcImdpdFwiLCBcImZldGNoXCIsIFwib3JpZ2luXCJdLCB7XG4gICAgICBuYW1lOiBcImZldGNoIGxhdGVzdCBjaGFuZ2VzIGZyb20gb3JpZ2luXCIsXG4gICAgfSk7XG4gICAgdGFzay5leGVjKCdnaXQgcmVzZXQgLS1oYXJkIFwib3JpZ2luLyRCUkFOQ0hcIicsIHtcbiAgICAgIG5hbWU6IFwiaGFyZCByZXNldCB0byBvcmlnaW4gY29tbWl0XCIsXG4gICAgfSk7XG4gICAgdGFzay5leGVjQXJncyhbXCJnaXRcIiwgXCJjbGVhblwiLCBcIi1mZHhcIl0sIHtcbiAgICAgIG5hbWU6IFwiY2xlYW4gYWxsIHVudHJhY2tlZCBmaWxlc1wiLFxuICAgIH0pO1xuICAgIHRhc2suc2F5KFxuICAgICAgJ3JlYWR5IHRvIHJvY2shICh1bnB1c2hlZCBjb21taXRzIGFyZSB1bmRlciB0aGUgXCJzY3JhdGNoXCIgYnJhbmNoKScsXG4gICAgKTtcbiAgfVxufVxuIl19