maestro/app/classes/state/git/CloneState.js

34 lines
791 B
JavaScript
Raw Normal View History

const AbstractGitState = require('./AbstractGitState')
2020-03-05 17:48:38 +00:00
class CloneState extends AbstractGitState {
2020-03-05 17:48:38 +00:00
async apply() {
if ( !(await this.check()) ) {
const repo = await this._repo()
await repo.clone(this._config.source)
}
}
async check() {
const repo = await this._repo()
return repo.is_repo()
}
async reverse() {
if ( await this.check() ) {
const path = await this._host.get_path(this._config.path)
await path.unlink()
}
}
failure_message() {
return `Could not find the cloned Git repo at "${this._config.path}" on host "${this._host.name}."`
}
check_message() {
return this.failure_message()
}
2020-03-05 17:48:38 +00:00
}
module.exports = exports = CloneState