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