projen
Version:
CDK for software projects
28 lines • 3.55 kB
JavaScript
;
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.exec("git checkout -b scratch", {
name: 'save current HEAD in "scratch" branch',
});
task.exec("git checkout $BRANCH");
task.exec("git fetch origin", { name: "fetch latest changes from origin" });
task.exec("git reset --hard origin/$BRANCH", {
name: "hard reset to origin commit",
});
task.exec("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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvYmJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbG9iYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF3QztBQUd4QyxNQUFhLE9BQVEsU0FBUSxxQkFBUztJQUNwQyxZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMzQyxXQUFXLEVBQUUseURBQXlEO1lBQ3RFLFNBQVMsRUFBRSxrQ0FBa0M7WUFDN0MsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSw4QkFBOEI7YUFDdkM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQ25DLElBQUksRUFBRSx1Q0FBdUM7U0FDOUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUU7WUFDM0MsSUFBSSxFQUFFLDZCQUE2QjtTQUNwQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLDJCQUEyQixFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsR0FBRyxDQUNOLGtFQUFrRSxDQUNuRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBekJELDBCQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuXG5leHBvcnQgY2xhc3MgQ2xvYmJlciBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IHRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayhcImNsb2JiZXJcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiaGFyZCByZXNldHMgdG8gSEVBRCBvZiBvcmlnaW4gYW5kIGNsZWFucyB0aGUgbG9jYWwgcmVwb1wiLFxuICAgICAgY29uZGl0aW9uOiBcImdpdCBkaWZmIC0tZXhpdC1jb2RlID4gL2Rldi9udWxsXCIsXG4gICAgICBlbnY6IHtcbiAgICAgICAgQlJBTkNIOiBcIiQoZ2l0IGJyYW5jaCAtLXNob3ctY3VycmVudClcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0YXNrLmV4ZWMoXCJnaXQgY2hlY2tvdXQgLWIgc2NyYXRjaFwiLCB7XG4gICAgICBuYW1lOiAnc2F2ZSBjdXJyZW50IEhFQUQgaW4gXCJzY3JhdGNoXCIgYnJhbmNoJyxcbiAgICB9KTtcbiAgICB0YXNrLmV4ZWMoXCJnaXQgY2hlY2tvdXQgJEJSQU5DSFwiKTtcbiAgICB0YXNrLmV4ZWMoXCJnaXQgZmV0Y2ggb3JpZ2luXCIsIHsgbmFtZTogXCJmZXRjaCBsYXRlc3QgY2hhbmdlcyBmcm9tIG9yaWdpblwiIH0pO1xuICAgIHRhc2suZXhlYyhcImdpdCByZXNldCAtLWhhcmQgb3JpZ2luLyRCUkFOQ0hcIiwge1xuICAgICAgbmFtZTogXCJoYXJkIHJlc2V0IHRvIG9yaWdpbiBjb21taXRcIixcbiAgICB9KTtcbiAgICB0YXNrLmV4ZWMoXCJnaXQgY2xlYW4gLWZkeFwiLCB7IG5hbWU6IFwiY2xlYW4gYWxsIHVudHJhY2tlZCBmaWxlc1wiIH0pO1xuICAgIHRhc2suc2F5KFxuICAgICAgJ3JlYWR5IHRvIHJvY2shICh1bnB1c2hlZCBjb21taXRzIGFyZSB1bmRlciB0aGUgXCJzY3JhdGNoXCIgYnJhbmNoKScsXG4gICAgKTtcbiAgfVxufVxuIl19