balena-cli/lib/resin/helpers/helpers.coffee
2014-12-05 15:10:57 -04:00

44 lines
974 B
CoffeeScript

_ = require('lodash')
path = require('path')
# Check is path is absolute
#
# @private
#
# @param {String} path path
# @return {Boolean} is absolute
#
# @example Is path absolute?
# console.log isAbsolutePath('/usr') # True
# console.log isAbsolutePath('../Music') # False
#
exports.isAbsolutePath = (p) ->
return path.resolve(p) is p
# Prefix relative value paths with another path
#
# @private
#
# @param {String} prefix path prefix
# @param {Object} object object containing relative paths as values
#
# @note Absolute values will be omitted
#
# @example Prefix object with path
# object =
# dataPrefix: 'resin'
#
# object = prefixObjectValuesWithPath('/opt', object)
# console.log(object.dataPrefix) # /opt/resin
#
exports.prefixObjectValuesWithPath = (prefix, object) ->
return _.object _.map object, (value, key) ->
result = [ key ]
if exports.isAbsolutePath(value)
result.push(value)
else
result.push(path.join(prefix, value))
return result