yapm
Version:
package manager for io.js (npm fork)
42 lines (37 loc) • 1.03 kB
JavaScript
var Path = require('path')
var YAML = require('js-yaml')
var yUpdate = require('yaml-update')
var read = require('../utils').read
var write = require('../utils').write
var stat = require('../utils').fs.stat
module.exports.read = function(path, cb) {
read(Path.join(path, 'package.yaml'), 'utf8', function(err, data) {
if (err) return cb(err)
try {
data = YAML.safeLoad(data)
} catch(err) {
return cb(err)
}
cb(null, data)
})
}
module.exports.write = function(path, object, cb) {
read(Path.join(path, 'package.yaml'), 'utf8', function(err, data) {
if (err) {
data = YAML.dump(object)
} else {
try {
data = yUpdate.edit(data, JSON.stringify(object))
} catch(_) {
data = YAML.dump(object)
}
}
write(Path.join(path, 'package.yaml'), data, cb)
})
}
module.exports.stat = function(path, cb) {
stat(Path.join(path, 'package.yaml'), function(er, stat) {
if (stat) stat.file = Path.join(path, 'package.yaml')
cb(er, stat)
})
}