@neoskop/dockerfile.js
Advanced tools
Comparing version 0.3.0 to 0.4.0
import { From } from './commands/from'; | ||
import { DockerfileBuildContext } from './dockerfile'; | ||
import { Arg } from './commands/arg'; | ||
export interface StageBuildContext extends DockerfileBuildContext { | ||
@@ -15,2 +16,3 @@ stage: Stage; | ||
protected _from?: From; | ||
protected _preArgs: Arg[]; | ||
protected _commands: IDockerCommand[]; | ||
@@ -22,2 +24,4 @@ constructor(name?: string); | ||
from(from: From | Fromable): this; | ||
preArgs(): Arg[]; | ||
preArgs(arg: Arg, ...args: Arg[]): this; | ||
commands(): IDockerCommand[]; | ||
@@ -24,0 +28,0 @@ commands(cmd: IDockerCommand, ...commands: IDockerCommand[]): this; |
@@ -8,2 +8,3 @@ "use strict"; | ||
this.name = name; | ||
this._preArgs = []; | ||
this._commands = []; | ||
@@ -24,2 +25,9 @@ } | ||
} | ||
preArgs(arg, ...args) { | ||
if (arg) { | ||
this._preArgs.push(arg, ...args); | ||
return this; | ||
} | ||
return this._preArgs; | ||
} | ||
commands(cmd, ...commands) { | ||
@@ -34,3 +42,3 @@ if (cmd) { | ||
const buildContext = Object.assign(Object.assign({}, context), { stage: this }); | ||
return [this.from().toDockerCommand(buildContext), '', ...this._commands.map(cmd => cmd.toDockerCommand(buildContext))].join('\n'); | ||
return [...this._preArgs.map(arg => arg.toDockerCommand()), this.from().toDockerCommand(buildContext), '', ...this._commands.map(cmd => cmd.toDockerCommand(buildContext))].join('\n'); | ||
} | ||
@@ -43,2 +51,2 @@ } | ||
exports.stage = stage; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3N0YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMENBQXVDO0FBZXZDLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztBQUV0QixNQUFhLEtBQUs7SUFJZCxZQUFzQixPQUFlLEdBQUcsR0FBRyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQXBFLFNBQUksR0FBSixJQUFJLENBQWdFO1FBRmhGLGNBQVMsR0FBc0IsRUFBRSxDQUFDO0lBSTVDLENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFJRCxJQUFJLENBQUMsSUFBb0I7UUFDckIsSUFBRyxJQUFJLEVBQUU7WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksWUFBWSxXQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUQsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBSUQsUUFBUSxDQUFDLEdBQW9CLEVBQUUsR0FBRyxRQUEyQjtRQUN6RCxJQUFHLEdBQUcsRUFBRTtZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFnQztRQUNyQyxNQUFNLFlBQVksbUNBQ1gsT0FBTyxLQUNWLEtBQUssRUFBRSxJQUFJLEdBQ2QsQ0FBQTtRQUVELE9BQU8sQ0FBRSxJQUFJLENBQUMsSUFBSSxFQUFHLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBRSxDQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNJLENBQUM7Q0FDSjtBQTVDRCxzQkE0Q0M7QUFFRCxTQUFnQixLQUFLLENBQUMsR0FBRyxJQUEwQztJQUMvRCxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUZELHNCQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnJvbSB9IGZyb20gJy4vY29tbWFuZHMvZnJvbSc7XG5pbXBvcnQgeyBEb2NrZXJmaWxlLCBEb2NrZXJmaWxlQnVpbGRDb250ZXh0IH0gZnJvbSAnLi9kb2NrZXJmaWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUJ1aWxkQ29udGV4dCBleHRlbmRzIERvY2tlcmZpbGVCdWlsZENvbnRleHQge1xuICAgIHN0YWdlOiBTdGFnZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRG9ja2VyQ29tbWFuZCB7XG4gICAgdG9Eb2NrZXJDb21tYW5kKGNvbnRleHQgOiBTdGFnZUJ1aWxkQ29udGV4dCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9tYWJsZSB7XG4gICAgZ2V0RnJvbU5hbWUoKTogc3RyaW5nO1xufVxuXG5sZXQgc3RhZ2VVbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCBjbGFzcyBTdGFnZSBpbXBsZW1lbnRzIEZyb21hYmxlIHtcbiAgICBwcm90ZWN0ZWQgX2Zyb20/OiBGcm9tO1xuICAgIHByb3RlY3RlZCBfY29tbWFuZHMgOiBJRG9ja2VyQ29tbWFuZFtdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbmFtZTogc3RyaW5nID0gJ1MnICsgKCsrc3RhZ2VVbmlxdWVJZCkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsICcwJykpIHtcblxuICAgIH1cblxuICAgIGdldE5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgZ2V0RnJvbU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgZnJvbSgpIDogRnJvbXx1bmRlZmluZWQ7XG4gICAgZnJvbShmcm9tIDogRnJvbXxGcm9tYWJsZSkgOiB0aGlzO1xuICAgIGZyb20oZnJvbT86IEZyb218RnJvbWFibGUpIDogdGhpcyB8IEZyb20gfCB1bmRlZmluZWQge1xuICAgICAgICBpZihmcm9tKSB7XG4gICAgICAgICAgICB0aGlzLl9mcm9tID0gZnJvbSBpbnN0YW5jZW9mIEZyb20gPyBmcm9tIDogbmV3IEZyb20oZnJvbSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZnJvbTtcbiAgICB9XG5cbiAgICBjb21tYW5kcygpIDogSURvY2tlckNvbW1hbmRbXTtcbiAgICBjb21tYW5kcyhjbWQ6IElEb2NrZXJDb21tYW5kLCAuLi5jb21tYW5kcyA6IElEb2NrZXJDb21tYW5kW10pIDogdGhpcztcbiAgICBjb21tYW5kcyhjbWQ/OiBJRG9ja2VyQ29tbWFuZCwgLi4uY29tbWFuZHMgOiBJRG9ja2VyQ29tbWFuZFtdKSA6IHRoaXMgfCBJRG9ja2VyQ29tbWFuZFtdIHtcbiAgICAgICAgaWYoY21kKSB7XG4gICAgICAgICAgICB0aGlzLl9jb21tYW5kcy5wdXNoKGNtZCwgLi4uY29tbWFuZHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbW1hbmRzO1xuICAgIH1cblxuICAgIHRvU3RyaW5nKGNvbnRleHQgOiBEb2NrZXJmaWxlQnVpbGRDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGJ1aWxkQ29udGV4dCA6IFN0YWdlQnVpbGRDb250ZXh0ID0ge1xuICAgICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAgIHN0YWdlOiB0aGlzXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gWyB0aGlzLmZyb20oKSEudG9Eb2NrZXJDb21tYW5kKGJ1aWxkQ29udGV4dCksICcnLCAuLi50aGlzLl9jb21tYW5kcy5tYXAoY21kID0+IGNtZC50b0RvY2tlckNvbW1hbmQoYnVpbGRDb250ZXh0KSApIF0uam9pbignXFxuJyk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhZ2UoLi4uYXJncyA6IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgU3RhZ2U+KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFnZSguLi5hcmdzKTtcbn0iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3N0YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMENBQXVDO0FBZ0J2QyxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFFdEIsTUFBYSxLQUFLO0lBS2QsWUFBc0IsT0FBZSxHQUFHLEdBQUcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUFwRSxTQUFJLEdBQUosSUFBSSxDQUFnRTtRQUhoRixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLGNBQVMsR0FBc0IsRUFBRSxDQUFDO0lBSTVDLENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFJRCxJQUFJLENBQUMsSUFBb0I7UUFDckIsSUFBRyxJQUFJLEVBQUU7WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksWUFBWSxXQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUQsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBSUQsT0FBTyxDQUFDLEdBQVMsRUFBRSxHQUFHLElBQVc7UUFDN0IsSUFBRyxHQUFHLEVBQUU7WUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxRQUFRLENBQUMsR0FBb0IsRUFBRSxHQUFHLFFBQTJCO1FBQ3pELElBQUcsR0FBRyxFQUFFO1lBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWdDO1FBQ3JDLE1BQU0sWUFBWSxtQ0FDWCxPQUFPLEtBQ1YsS0FBSyxFQUFFLElBQUksR0FDZCxDQUFBO1FBRUQsT0FBTyxDQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFHLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBRSxDQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9MLENBQUM7Q0FDSjtBQXhERCxzQkF3REM7QUFFRCxTQUFnQixLQUFLLENBQUMsR0FBRyxJQUEwQztJQUMvRCxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUZELHNCQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnJvbSB9IGZyb20gJy4vY29tbWFuZHMvZnJvbSc7XG5pbXBvcnQgeyBEb2NrZXJmaWxlQnVpbGRDb250ZXh0IH0gZnJvbSAnLi9kb2NrZXJmaWxlJztcbmltcG9ydCB7IEFyZyB9IGZyb20gJy4vY29tbWFuZHMvYXJnJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUJ1aWxkQ29udGV4dCBleHRlbmRzIERvY2tlcmZpbGVCdWlsZENvbnRleHQge1xuICAgIHN0YWdlOiBTdGFnZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRG9ja2VyQ29tbWFuZCB7XG4gICAgdG9Eb2NrZXJDb21tYW5kKGNvbnRleHQgOiBTdGFnZUJ1aWxkQ29udGV4dCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9tYWJsZSB7XG4gICAgZ2V0RnJvbU5hbWUoKTogc3RyaW5nO1xufVxuXG5sZXQgc3RhZ2VVbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCBjbGFzcyBTdGFnZSBpbXBsZW1lbnRzIEZyb21hYmxlIHtcbiAgICBwcm90ZWN0ZWQgX2Zyb20/OiBGcm9tO1xuICAgIHByb3RlY3RlZCBfcHJlQXJnczogQXJnW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgX2NvbW1hbmRzIDogSURvY2tlckNvbW1hbmRbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIG5hbWU6IHN0cmluZyA9ICdTJyArICgrK3N0YWdlVW5pcXVlSWQpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCAnMCcpKSB7XG5cbiAgICB9XG5cbiAgICBnZXROYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lO1xuICAgIH1cblxuICAgIGdldEZyb21OYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lO1xuICAgIH1cblxuICAgIGZyb20oKSA6IEZyb218dW5kZWZpbmVkO1xuICAgIGZyb20oZnJvbSA6IEZyb218RnJvbWFibGUpIDogdGhpcztcbiAgICBmcm9tKGZyb20/OiBGcm9tfEZyb21hYmxlKSA6IHRoaXMgfCBGcm9tIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYoZnJvbSkge1xuICAgICAgICAgICAgdGhpcy5fZnJvbSA9IGZyb20gaW5zdGFuY2VvZiBGcm9tID8gZnJvbSA6IG5ldyBGcm9tKGZyb20pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zyb207XG4gICAgfVxuXG4gICAgcHJlQXJncygpOiBBcmdbXTtcbiAgICBwcmVBcmdzKGFyZzogQXJnLCAuLi5hcmdzOiBBcmdbXSk6IHRoaXM7XG4gICAgcHJlQXJncyhhcmc/OiBBcmcsIC4uLmFyZ3M6IEFyZ1tdKTogdGhpcyB8IEFyZ1tdIHtcbiAgICAgICAgaWYoYXJnKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVBcmdzLnB1c2goYXJnLCAuLi5hcmdzKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZUFyZ3M7XG4gICAgfVxuXG4gICAgY29tbWFuZHMoKSA6IElEb2NrZXJDb21tYW5kW107XG4gICAgY29tbWFuZHMoY21kOiBJRG9ja2VyQ29tbWFuZCwgLi4uY29tbWFuZHMgOiBJRG9ja2VyQ29tbWFuZFtdKSA6IHRoaXM7XG4gICAgY29tbWFuZHMoY21kPzogSURvY2tlckNvbW1hbmQsIC4uLmNvbW1hbmRzIDogSURvY2tlckNvbW1hbmRbXSkgOiB0aGlzIHwgSURvY2tlckNvbW1hbmRbXSB7XG4gICAgICAgIGlmKGNtZCkge1xuICAgICAgICAgICAgdGhpcy5fY29tbWFuZHMucHVzaChjbWQsIC4uLmNvbW1hbmRzKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21tYW5kcztcbiAgICB9XG5cbiAgICB0b1N0cmluZyhjb250ZXh0IDogRG9ja2VyZmlsZUJ1aWxkQ29udGV4dCkge1xuICAgICAgICBjb25zdCBidWlsZENvbnRleHQgOiBTdGFnZUJ1aWxkQ29udGV4dCA9IHtcbiAgICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgICBzdGFnZTogdGhpc1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFsgLi4udGhpcy5fcHJlQXJncy5tYXAoYXJnID0+IGFyZy50b0RvY2tlckNvbW1hbmQoKSksIHRoaXMuZnJvbSgpIS50b0RvY2tlckNvbW1hbmQoYnVpbGRDb250ZXh0KSwgJycsIC4uLnRoaXMuX2NvbW1hbmRzLm1hcChjbWQgPT4gY21kLnRvRG9ja2VyQ29tbWFuZChidWlsZENvbnRleHQpICkgXS5qb2luKCdcXG4nKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFnZSguLi5hcmdzIDogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTdGFnZT4pIHtcbiAgICByZXR1cm4gbmV3IFN0YWdlKC4uLmFyZ3MpO1xufSJdfQ== |
{ | ||
"name": "@neoskop/dockerfile.js", | ||
"version": "0.3.0", | ||
"version": "0.4.0", | ||
"description": "Write configurable, scriptable, reusable dockerfiles in Typescript or plain Javascript.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
86376
939