mirror of
https://git.coolaj86.com/coolaj86/fs-safe-replace.js.git
synced 2025-04-20 13:20:37 +00:00
v1.0.3
This commit is contained in:
parent
7b8536d121
commit
b4466d937d
22
index.js
22
index.js
@ -1,7 +1,17 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var PromiseA = require('bluebird').Promise;
|
var PromiseA;
|
||||||
var fs = PromiseA.promisifyAll(require('fs'));
|
try {
|
||||||
|
PromiseA = require('bluebird');
|
||||||
|
} catch(e) {
|
||||||
|
PromiseA = global.Promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
var util = require('util');
|
||||||
|
var fs = require('fs');
|
||||||
|
var writeFileAsync = util.promisify(fs.writeFile);
|
||||||
|
var unlinkAsync = util.promisify(fs.unlink);
|
||||||
|
var renameAsync = util.promisify(fs.rename);
|
||||||
var crypto = require('crypto');
|
var crypto = require('crypto');
|
||||||
|
|
||||||
function noop() {
|
function noop() {
|
||||||
@ -44,23 +54,23 @@ function create(options) {
|
|||||||
, stageAsync: function (filename, data, options) {
|
, stageAsync: function (filename, data, options) {
|
||||||
var tmpname = tmpnamefn(filename);
|
var tmpname = tmpnamefn(filename);
|
||||||
//console.log(tmpname);
|
//console.log(tmpname);
|
||||||
return fs.writeFileAsync(tmpname, data, options).then(function () {
|
return writeFileAsync(tmpname, data, options).then(function () {
|
||||||
return tmpname;
|
return tmpname;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
, commitAsync: function (tmpname, filename) {
|
, commitAsync: function (tmpname, filename) {
|
||||||
var bakname = baknamefn(filename);
|
var bakname = baknamefn(filename);
|
||||||
// this may not exist
|
// this may not exist
|
||||||
return fs.unlinkAsync(bakname).then(noop, noop).then(function () {
|
return unlinkAsync(bakname).then(noop, noop).then(function () {
|
||||||
// this may not exist
|
// this may not exist
|
||||||
//console.log(namefn(filename), '->', bakname);
|
//console.log(namefn(filename), '->', bakname);
|
||||||
return fs.renameAsync(filename, bakname).then(function () {
|
return renameAsync(filename, bakname).then(function () {
|
||||||
//console.log('created bak');
|
//console.log('created bak');
|
||||||
}, noop);
|
}, noop);
|
||||||
}).then(function () {
|
}).then(function () {
|
||||||
// this must be successful
|
// this must be successful
|
||||||
//console.log(filename, '->', filename);
|
//console.log(filename, '->', filename);
|
||||||
return fs.renameAsync(tmpname, filename).then(noop, function (err) {
|
return renameAsync(tmpname, filename).then(noop, function (err) {
|
||||||
//console.error(err);
|
//console.error(err);
|
||||||
return sfs.revert(filename).then(function () {
|
return sfs.revert(filename).then(function () {
|
||||||
return PromiseA.reject(err);
|
return PromiseA.reject(err);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "safe-replace",
|
"name": "safe-replace",
|
||||||
"version": "1.0.2",
|
"version": "1.0.3",
|
||||||
"description": "A micro-module for safely replacing a file.",
|
"description": "A micro-module for safely replacing a file.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -8,7 +8,7 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/coolaj86/node-safe-replace.git"
|
"url": "https://git.coolaj86.com/coolaj86/fs-safe-replace.js.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"cluster",
|
"cluster",
|
||||||
@ -23,7 +23,7 @@
|
|||||||
"author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com/)",
|
"author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com/)",
|
||||||
"license": "(MIT OR Apache-2.0)",
|
"license": "(MIT OR Apache-2.0)",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/coolaj86/node-safe-replace/issues"
|
"url": "https://git.coolaj86.com/coolaj86/fs-safe-replace.js/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/coolaj86/node-safe-replace#readme"
|
"homepage": "https://git.coolaj86.com/coolaj86/fs-safe-replace.jse"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user