UNPKG

coffee-toaster

Version:

Minimalist build system for CoffeeScript.

61 lines (45 loc) 2 kB
#<< toaster/generators/question #<< toaster/generators/config class Project extends toaster.generators.Question # requirements path = require "path" fs = require "fs" fsu = require 'fs-util' {FsUtil} = toaster.utils constructor:(@basepath)-> create:(folderpath, name, src, release)-> if (typeof folderpath) isnt 'string' error_msg = "You need to inform a target path!\n" error_msg += "\ttoaster -n myawesomeapp".green return error error_msg if name? && src? && release? return @scaffold folderpath, name, src, release q1 = "Path to your src folder? [src] : " q2 = "Path to your release file? [www/js/app.js] : " q3 = "Starting from your webroot '/', what's the folderpath to "+ "reach your release file? (i.e. js) (optional) : " @ask q1.magenta, /.*/, (src = null)=> @ask q2.magenta, /.*/, (release = null)=> @ask q3.cyan, /.*/, (httpfolder = null)=> $src = src || "src" $release = release || "www/js/app.js" if src is '' and release is '' and httpfolder is '' $httpfolder = 'js' else $httpfolder = httpfolder || "" @scaffold folderpath, $src, $release, $httpfolder process.exit() scaffold:(target, src, release, httpfolder)=> target = path.resolve target srcdir = path.join target, src vendorsdir = path.join target, "vendors" releasefile = path.join target, release releasedir = path.dirname releasefile log "#{'Created'.green.bold} #{target}" if fsu.mkdir_p target log "#{'Created'.green.bold} #{srcdir}" if fsu.mkdir_p srcdir log "#{'Created'.green.bold} #{vendorsdir}" if fsu.mkdir_p vendorsdir log "#{'Created'.green.bold} #{releasedir}" if fsu.mkdir_p releasedir srcdir = srcdir.replace( target, "" ).substr 1 releasefile = releasefile.replace( target, "" ).substr 1 config = new toaster.generators.Config target config.write srcdir, releasefile, httpfolder