diff --git a/app/classes/routine/Routine.js b/app/classes/routine/Routine.js index 98c4aa4..bc46c23 100644 --- a/app/classes/routine/Routine.js +++ b/app/classes/routine/Routine.js @@ -27,6 +27,7 @@ class Routine extends Injectable { let step_no = 1 for ( const step of result.steps ) { + if ( with_logging ) this.output.info('', 0) this.output.info(`(${step_no}/${result.steps.length}) ${step.step.display()}`, with_logging ? 0 : 10) step_no += 1 diff --git a/app/classes/state/fs/PermissionState.js b/app/classes/state/fs/PermissionState.js index 143b197..898ea89 100644 --- a/app/classes/state/fs/PermissionState.js +++ b/app/classes/state/fs/PermissionState.js @@ -13,10 +13,13 @@ class PermissionState extends State { } async check() { - const path = await this._path() - const permissions = `${await path.permissions()}`.trim() - const target = `${this._config.level}`.trim() - return permissions === target + try { + const path = await this._path() + const permissions = `${await path.permissions()}`.trim() + const target = `${this._config.level}`.trim() + return permissions === target + } catch (e) {} + return false } async reverse() { diff --git a/app/classes/state/git/PullState.js b/app/classes/state/git/PullState.js index df5705b..5095fdf 100644 --- a/app/classes/state/git/PullState.js +++ b/app/classes/state/git/PullState.js @@ -1,6 +1,8 @@ const AbstractGitState = require('./AbstractGitState') class PullState extends AbstractGitState { + #ran_once = false + static get services() { return [...super.services, 'output'] } @@ -9,11 +11,12 @@ class PullState extends AbstractGitState { if ( !(await this.check()) ) { const repo = await this._repo() await repo.pull(this._config.target) + this.#ran_once = true } } async check() { - return true // TODO support a better check here + return this.#ran_once // TODO support a better check here } async reverse() {