const State = require('../State') const Repository = require('../../git/Repository') class CloneState extends State { 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() } } async _repo() { const path = await this._host.get_path(this._config.path) if ( !path.is_valid() ) await path.touch(true) return new Repository(path) } } module.exports = exports = CloneState