Skip to content

Instantly share code, notes, and snippets.

@victorvoid
Created July 28, 2018 12:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save victorvoid/d08f1fae805b9855a61b782491d7636e to your computer and use it in GitHub Desktop.
Save victorvoid/d08f1fae805b9855a61b782491d7636e to your computer and use it in GitHub Desktop.
const fs = require('fs-extra')
const { createATemplate } = require('./template')
const { fromNullable } = require('folktale/maybe');
const { fromPromised, rejected, of } = require('folktale/concurrency/task');
const fsCopy = fromPromised(fs.copy)
const pathExists = fromPromised(fs.pathExists)
function cp(directory){
return fsCopy(directory, `packblade/roles/${directory}/files/`)
}
function exist(path){
return pathExists(path)
.chain(exist => exist ? of(exist)
: /* otherwise */ rejected(`${path} not found`))
}
function Add(directory, dirWhereSaved){
return fromNullable(directory)
.map(() =>
exist(directory)
.and(createATemplate(directory, dirWhereSaved))
.and(cp(directory)))
.getOrElse(rejected(`You need to pass the path as a parameter`))
}
module.exports = Add
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment