|  | @@ -0,0 +1,99 @@
 | 
	
		
			
				|  |  | +/*
 | 
	
		
			
				|  |  | + * grunt-init-amber
 | 
	
		
			
				|  |  | + * https://amber-lang.net/
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * Copyright (c) 2013 Manfred Kroehnert, contributors
 | 
	
		
			
				|  |  | + * Licensed under the MIT license.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +'use strict';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Basic template description.
 | 
	
		
			
				|  |  | +exports.description = 'Create a web application based on Amber Smalltalk.';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Template-specific notes to be displayed before question prompts.
 | 
	
		
			
				|  |  | +exports.notes = ' _Project title_ should be a human-readable title.';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Template-specific notes to be displayed after question prompts.
 | 
	
		
			
				|  |  | +exports.after = 'You should now install project dependencies with _bower install_.' +
 | 
	
		
			
				|  |  | +  ' Afterwards, start the development server with _./bower_components/amber/bin/amber serve_.' +
 | 
	
		
			
				|  |  | +  ' Your application is then accessible via _http://localhost:4000/_';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Any existing file or directory matching this wildcard will cause a warning.
 | 
	
		
			
				|  |  | +exports.warnOn = '*';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// The actual init template.
 | 
	
		
			
				|  |  | +exports.template = function(grunt, init, done) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  init.process({type: 'amber'}, [
 | 
	
		
			
				|  |  | +    // Prompt for these values.
 | 
	
		
			
				|  |  | +    init.prompt('name', 'AmberApplication'),
 | 
	
		
			
				|  |  | +    init.prompt('title'),
 | 
	
		
			
				|  |  | +    init.prompt('description', 'Amber Application.'),
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      name: 'namespace',
 | 
	
		
			
				|  |  | +      message: 'The namespace used to store your Amber Packages.',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      name: 'amber_version',
 | 
	
		
			
				|  |  | +      default: '>= 0.12.4',
 | 
	
		
			
				|  |  | +      message: 'The version of Amber to use. Must be >= 0.12.4',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    init.prompt('version'),
 | 
	
		
			
				|  |  | +    init.prompt('repository'),
 | 
	
		
			
				|  |  | +    init.prompt('homepage'),
 | 
	
		
			
				|  |  | +    init.prompt('bugs'),
 | 
	
		
			
				|  |  | +    init.prompt('licenses', 'MIT'),
 | 
	
		
			
				|  |  | +    init.prompt('author_name'),
 | 
	
		
			
				|  |  | +    init.prompt('author_email'),
 | 
	
		
			
				|  |  | +    init.prompt('author_url')
 | 
	
		
			
				|  |  | +  ], function(err, props) {
 | 
	
		
			
				|  |  | +    // A few additional properties.
 | 
	
		
			
				|  |  | +    props.amberjson = props.name + '.amber.json';
 | 
	
		
			
				|  |  | +    props.dependencies = {'amber': '~0.10.0'};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    props.keywords = ['Amber', 'Smalltalk'];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    //props.devDependencies = {'amber': '~0.10.0'};
 | 
	
		
			
				|  |  | +    props.node_version = '>= 0.8.0';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // Files to copy (and process).
 | 
	
		
			
				|  |  | +    var files = init.filesToCopy(props);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // Add properly-named license files.
 | 
	
		
			
				|  |  | +    init.addLicenseFiles(files, props.licenses);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // Actually copy (and process) files.
 | 
	
		
			
				|  |  | +    init.copyAndProcess(files, props, {noProcess: 'libs/**'});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // Generate package.json file, used by npm and grunt.
 | 
	
		
			
				|  |  | +    //init.writePackageJSON('package.json', props);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // generate bower.json file
 | 
	
		
			
				|  |  | +    grunt.file.write('bower.json', JSON.stringify({
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        "name": props.name,
 | 
	
		
			
				|  |  | +        "description": props.description,
 | 
	
		
			
				|  |  | +        "version": props.version,
 | 
	
		
			
				|  |  | +        "authors": [
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                "name": props.author_name,
 | 
	
		
			
				|  |  | +                "email": props.author_email
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        "homepage": props.homepage,
 | 
	
		
			
				|  |  | +        "main": props.main,
 | 
	
		
			
				|  |  | +        "keywords": props.keywords,
 | 
	
		
			
				|  |  | +        "license": props.licenses,
 | 
	
		
			
				|  |  | +        "private": false,
 | 
	
		
			
				|  |  | +        "dependencies": {
 | 
	
		
			
				|  |  | +            "amber": "~" + props.amber_version
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }, null, 4));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // All done!
 | 
	
		
			
				|  |  | +    done();
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +};
 |