fix: move no longer crash for non-existant sub-directory dest
This commit is contained in:
parent
4632330d7c
commit
36a6bc0827
@ -5,7 +5,7 @@
|
|||||||
const Git = require('git-wrapper2-promise')
|
const Git = require('git-wrapper2-promise')
|
||||||
const Promise = require('bluebird')
|
const Promise = require('bluebird')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const fs = Promise.promisifyAll(require('fs'))
|
const fs = Promise.promisifyAll(require('fs-extra'))
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
const URL = require('url')
|
const URL = require('url')
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ module.exports = {
|
|||||||
*
|
*
|
||||||
* @return {Object} Git model instance
|
* @return {Object} Git model instance
|
||||||
*/
|
*/
|
||||||
init () {
|
init() {
|
||||||
let self = this
|
let self = this
|
||||||
|
|
||||||
// -> Build repository path
|
// -> Build repository path
|
||||||
@ -67,7 +67,7 @@ module.exports = {
|
|||||||
* @param {Object} appconfig The application config
|
* @param {Object} appconfig The application config
|
||||||
* @return {Object} Promise
|
* @return {Object} Promise
|
||||||
*/
|
*/
|
||||||
_initRepo (appconfig) {
|
_initRepo(appconfig) {
|
||||||
let self = this
|
let self = this
|
||||||
|
|
||||||
winston.info('Checking Git repository...')
|
winston.info('Checking Git repository...')
|
||||||
@ -141,7 +141,7 @@ module.exports = {
|
|||||||
*
|
*
|
||||||
* @return {String} The repo path.
|
* @return {String} The repo path.
|
||||||
*/
|
*/
|
||||||
getRepoPath () {
|
getRepoPath() {
|
||||||
return this._repo.path || path.join(ROOTPATH, 'repo')
|
return this._repo.path || path.join(ROOTPATH, 'repo')
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ module.exports = {
|
|||||||
*
|
*
|
||||||
* @return {Promise} Resolve on sync success
|
* @return {Promise} Resolve on sync success
|
||||||
*/
|
*/
|
||||||
resync () {
|
resync() {
|
||||||
let self = this
|
let self = this
|
||||||
|
|
||||||
// Is git remote disabled?
|
// Is git remote disabled?
|
||||||
@ -165,32 +165,32 @@ module.exports = {
|
|||||||
return self._git.pull('origin', self._repo.branch).then((cProc) => {
|
return self._git.pull('origin', self._repo.branch).then((cProc) => {
|
||||||
winston.info('Git Pull completed.')
|
winston.info('Git Pull completed.')
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
winston.error('Unable to fetch from git origin!')
|
winston.error('Unable to fetch from git origin!')
|
||||||
throw err
|
throw err
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// Check for changes
|
// Check for changes
|
||||||
|
|
||||||
return self._git.exec('log', 'origin/' + self._repo.branch + '..HEAD').then((cProc) => {
|
return self._git.exec('log', 'origin/' + self._repo.branch + '..HEAD').then((cProc) => {
|
||||||
let out = cProc.stdout.toString()
|
let out = cProc.stdout.toString()
|
||||||
|
|
||||||
if (_.includes(out, 'commit')) {
|
if (_.includes(out, 'commit')) {
|
||||||
winston.info('Performing push to remote Git repository...')
|
winston.info('Performing push to remote Git repository...')
|
||||||
return self._git.push('origin', self._repo.branch).then(() => {
|
return self._git.push('origin', self._repo.branch).then(() => {
|
||||||
return winston.info('Git Push completed.')
|
return winston.info('Git Push completed.')
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
winston.info('Git Push skipped. Repository is already in sync.')
|
winston.info('Git Push skipped. Repository is already in sync.')
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
winston.error('Unable to push changes to remote Git repository!')
|
||||||
|
throw err
|
||||||
})
|
})
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
winston.error('Unable to push changes to remote Git repository!')
|
|
||||||
throw err
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -199,7 +199,7 @@ module.exports = {
|
|||||||
* @param {String} entryPath The entry path
|
* @param {String} entryPath The entry path
|
||||||
* @return {Promise} Resolve on commit success
|
* @return {Promise} Resolve on commit success
|
||||||
*/
|
*/
|
||||||
commitDocument (entryPath, author) {
|
commitDocument(entryPath, author) {
|
||||||
let self = this
|
let self = this
|
||||||
let gitFilePath = entryPath + '.md'
|
let gitFilePath = entryPath + '.md'
|
||||||
let commitMsg = ''
|
let commitMsg = ''
|
||||||
@ -225,18 +225,21 @@ module.exports = {
|
|||||||
* @param {String} newEntryPath The new entry path
|
* @param {String} newEntryPath The new entry path
|
||||||
* @return {Promise<Boolean>} Resolve on success
|
* @return {Promise<Boolean>} Resolve on success
|
||||||
*/
|
*/
|
||||||
moveDocument (entryPath, newEntryPath) {
|
moveDocument(entryPath, newEntryPath) {
|
||||||
let self = this
|
let self = this
|
||||||
let gitFilePath = entryPath + '.md'
|
let gitFilePath = entryPath + '.md'
|
||||||
let gitNewFilePath = newEntryPath + '.md'
|
let gitNewFilePath = newEntryPath + '.md'
|
||||||
|
let destPathObj = path.parse(this.getRepoPath() + '/' + gitNewFilePath)
|
||||||
|
|
||||||
return self._git.exec('mv', [gitFilePath, gitNewFilePath]).then((cProc) => {
|
return fs.ensureDir(destPathObj.dir).then(() => {
|
||||||
let out = cProc.stdout.toString()
|
return self._git.exec('mv', [gitFilePath, gitNewFilePath]).then((cProc) => {
|
||||||
if (_.includes(out, 'fatal')) {
|
let out = cProc.stdout.toString()
|
||||||
let errorMsg = _.capitalize(_.head(_.split(_.replace(out, 'fatal: ', ''), ',')))
|
if (_.includes(out, 'fatal')) {
|
||||||
throw new Error(errorMsg)
|
let errorMsg = _.capitalize(_.head(_.split(_.replace(out, 'fatal: ', ''), ',')))
|
||||||
}
|
throw new Error(errorMsg)
|
||||||
return true
|
}
|
||||||
|
return true
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -246,7 +249,7 @@ module.exports = {
|
|||||||
* @param {String} msg The commit message
|
* @param {String} msg The commit message
|
||||||
* @return {Promise} Resolve on commit success
|
* @return {Promise} Resolve on commit success
|
||||||
*/
|
*/
|
||||||
commitUploads (msg) {
|
commitUploads(msg) {
|
||||||
let self = this
|
let self = this
|
||||||
msg = msg || 'Uploads repository sync'
|
msg = msg || 'Uploads repository sync'
|
||||||
|
|
||||||
@ -257,7 +260,7 @@ module.exports = {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
getHistory (entryPath) {
|
getHistory(entryPath) {
|
||||||
let self = this
|
let self = this
|
||||||
let gitFilePath = entryPath + '.md'
|
let gitFilePath = entryPath + '.md'
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ block rootNavRight
|
|||||||
a.button.is-outlined(v-on:click='$store.dispatch("modalDiscardPage/open")')
|
a.button.is-outlined(v-on:click='$store.dispatch("modalDiscardPage/open")')
|
||||||
i.icon-cross
|
i.icon-cross
|
||||||
span= t('nav.discard')
|
span= t('nav.discard')
|
||||||
a.button(v-on:click='$root.$emit("editor-save")')
|
a.button(v-on:click='$root.$emit("editor/save")')
|
||||||
i.icon-check
|
i.icon-check
|
||||||
span= t('nav.savedocument')
|
span= t('nav.savedocument')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user