|
@@ -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();
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+};
|