moving to a .cordova directory

Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/commit/0605f051
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/tree/0605f051
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/diff/0605f051

Branch: refs/heads/cordova-client
Commit: 0605f051620126141a58ed9ecbca6ba8fc2d0d72
Parents: c6d3886
Author: Fil Maj <maj....@gmail.com>
Authored: Wed Oct 3 16:18:36 2012 -0700
Committer: Fil Maj <maj....@gmail.com>
Committed: Wed Oct 3 16:18:36 2012 -0700

----------------------------------------------------------------------
 spec/build.spec.js                      |   19 ++++++++++++++-
 spec/create.spec.js                     |   33 ++++++++++++++++++--------
 spec/metadata/blackberry_parser.spec.js |   12 ++++----
 src/create.js                           |   27 +++++++++++++++++++-
 src/metadata/blackberry_parser.js       |   12 ++++----
 5 files changed, 78 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/0605f051/spec/build.spec.js
----------------------------------------------------------------------
diff --git a/spec/build.spec.js b/spec/build.spec.js
index db360cd..b36861e 100644
--- a/spec/build.spec.js
+++ b/spec/build.spec.js
@@ -7,6 +7,8 @@ var cordova = require('../cordova'),
     android_parser = require('../src/metadata/android_parser'),
     ios_parser = require('../src/metadata/ios_parser'),
     blackberry_parser = require('../src/metadata/blackberry_parser'),
+    fixtures = path.join(__dirname, 'fixtures'),
+    hooks = path.join(fixtures, 'hooks'),
     tempDir = path.join(__dirname, '..', 'temp');
 
 var cwd = process.cwd();
@@ -147,7 +149,7 @@ describe('build command', function() {
             });
             it('should call blackberry_parser\'s update_project', function() {
                 var cb = jasmine.createSpy();
-                fs.writeFileSync(path.join(tempDir, '.cordova'), 
JSON.stringify({
+                fs.writeFileSync(path.join(tempDir, '.cordova', 
'config.json'), JSON.stringify({
                     blackberry:{
                         qnx:{}
                     }
@@ -235,4 +237,19 @@ describe('build command', function() {
             });
         });
     });
+
+    describe('hooks', function() {
+        beforeEach(function() {
+            cordova.create(tempDir);
+            process.chdir(tempDir);
+            cordova.platform('add', 'android');
+        });
+
+        afterEach(function() {
+            process.chdir(cwd);
+        });
+
+        it('should delegate before hooks to the hooker module');
+        it('should delegate after hooks to the hooker module');
+    });
 });

http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/0605f051/spec/create.spec.js
----------------------------------------------------------------------
diff --git a/spec/create.spec.js b/spec/create.spec.js
index cb3bd03..33f8651 100644
--- a/spec/create.spec.js
+++ b/spec/create.spec.js
@@ -6,24 +6,37 @@ var cordova = require('../cordova'),
 
 describe('create command', function () {
     beforeEach(function() {
-        // Make a temp directory
         shell.rm('-rf', tempDir);
-        shell.mkdir('-p', tempDir);
     });
 
     it('should print out help txt if no directory is provided', function() {
-        var cwd = process.cwd();
-        this.after(function() {
-            process.chdir(cwd);
-        });
-        process.chdir(tempDir);
         expect(cordova.create()).toMatch(/synopsis/i);
     });
     it('should create a cordova project in the specified directory if 
parameter is provided', function() {
         cordova.create(tempDir);
-        var dotc = path.join(tempDir, '.cordova');
+        var dotc = path.join(tempDir, '.cordova', 'config.json');
         expect(fs.lstatSync(dotc).isFile()).toBe(true);
         expect(JSON.parse(fs.readFileSync(dotc, 'utf8')).name).toBe("Hello 
Cordova");
+        var hooks = path.join(tempDir, '.cordova', 'hooks');
+        expect(fs.existsSync(hooks)).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 
'before_platform_add'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 
'after_platform_add'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 
'before_platform_rm'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 
'after_platform_rm'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 
'before_platform_ls'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 
'after_platform_ls'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 
'before_plugin_add'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'after_plugin_add'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'before_plugin_rm'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'after_plugin_rm'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'before_plugin_ls'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'after_plugin_ls'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'before_build'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'after_build'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'before_emulate'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'after_emulate'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'before_docs'))).toBe(true);
+        expect(fs.existsSync(path.join(hooks, 'after_docs'))).toBe(true);
     });
     it('should throw if the directory is already a cordova project', 
function() {
         shell.mkdir('-p', path.join(tempDir, '.cordova'));
@@ -35,14 +48,14 @@ describe('create command', function () {
     it('should create a cordova project in the specified dir with specified 
name if provided', function() {
         cordova.create(tempDir, "balls");
 
-        expect(fs.lstatSync(path.join(tempDir, 
'.cordova')).isFile()).toBe(true);
+        expect(fs.lstatSync(path.join(tempDir, '.cordova', 
'config.json')).isFile()).toBe(true);
 
         expect(fs.readFileSync(path.join(tempDir, 'www', 
'config.xml')).toString('utf8')).toMatch(/<name>balls<\/name>/);
     });
     it('should create a cordova project in the specified dir with specified 
name and id if provided', function() {
         cordova.create(tempDir, "birdy.nam.nam", "numnum");
 
-        expect(fs.lstatSync(path.join(tempDir, 
'.cordova')).isFile()).toBe(true);
+        expect(fs.lstatSync(path.join(tempDir, '.cordova', 
'config.json')).isFile()).toBe(true);
 
         var config = fs.readFileSync(path.join(tempDir, 'www', 
'config.xml')).toString('utf8');
         expect(config).toMatch(/<name>numnum<\/name>/);

http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/0605f051/spec/metadata/blackberry_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/blackberry_parser.spec.js 
b/spec/metadata/blackberry_parser.spec.js
index 7526df2..9f2c4b4 100644
--- a/spec/metadata/blackberry_parser.spec.js
+++ b/spec/metadata/blackberry_parser.spec.js
@@ -115,14 +115,14 @@ describe('blackberry project parser', function() {
             ioFake();
             expect(spyConfig).toHaveBeenCalled();
         });
-        it('should invoke get_blackberry_environment if .cordova file has no 
BB config', function() {
+        it('should invoke get_blackberry_environment if .cordova/config.json 
file has no BB config', function() {
             var spyEnv = spyOn(parser, 'get_blackberry_environment');
             parser.update_project(cfg);
             expect(spyEnv).toHaveBeenCalled();
         });
-        it('should not invoke get_blackberry_environment if .cordova file has 
BB config', function() {
+        it('should not invoke get_blackberry_environment if 
.cordova/config.json file has BB config', function() {
             var spyEnv = spyOn(parser, 'get_blackberry_environment');
-            fs.writeFileSync(path.join(tempDir, '.cordova'), JSON.stringify({
+            fs.writeFileSync(path.join(tempDir, '.cordova', 'config.json'), 
JSON.stringify({
                 blackberry:{
                     qnx:{
                     }
@@ -131,7 +131,7 @@ describe('blackberry project parser', function() {
             parser.update_project(cfg);
             expect(spyEnv).not.toHaveBeenCalled();
         });
-        it('should write out project properties with no BB config in 
.cordova', function() {
+        it('should write out project properties with no BB config in 
.cordova/config.json', function() {
             var spyProps = spyOn(parser, 'write_project_properties');
             var cb = jasmine.createSpy();
             runs(function() {
@@ -143,10 +143,10 @@ describe('blackberry project parser', function() {
                 expect(spyProps).toHaveBeenCalled();
             });
         });
-        it('should write out project properties with BB config in .cordova', 
function() {
+        it('should write out project properties with BB config in 
.cordova/config.json', function() {
             var spyProps = spyOn(parser, 'write_project_properties');
             var cb = jasmine.createSpy();
-            fs.writeFileSync(path.join(tempDir, '.cordova'), JSON.stringify({
+            fs.writeFileSync(path.join(tempDir, '.cordova/config.json'), 
JSON.stringify({
                 blackberry:{
                     qnx:{
                     }

http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/0605f051/src/create.js
----------------------------------------------------------------------
diff --git a/src/create.js b/src/create.js
index 0b33ecf..d99b04c 100644
--- a/src/create.js
+++ b/src/create.js
@@ -38,11 +38,34 @@ module.exports = function create (dir, id, name) {
     }
 
     // Create basic project structure.
+    shell.mkdir('-p', dotCordova);
     shell.mkdir('-p', path.join(dir, 'platforms'));
     shell.mkdir('-p', path.join(dir, 'plugins'));
+    var hooks = path.join(dotCordova, 'hooks');
+    shell.mkdir('-p', hooks);
 
-    // Write out .cordova file with a simple json manifest
-    fs.writeFileSync(dotCordova, JSON.stringify({
+    // Add directories for hooks
+    shell.mkdir(path.join(hooks, 'after_build'));
+    shell.mkdir(path.join(hooks, 'after_docs'));
+    shell.mkdir(path.join(hooks, 'after_emulate'));
+    shell.mkdir(path.join(hooks, 'after_platform_add'));
+    shell.mkdir(path.join(hooks, 'after_platform_rm'));
+    shell.mkdir(path.join(hooks, 'after_platform_ls'));
+    shell.mkdir(path.join(hooks, 'after_plugin_add'));
+    shell.mkdir(path.join(hooks, 'after_plugin_ls'));
+    shell.mkdir(path.join(hooks, 'after_plugin_rm'));
+    shell.mkdir(path.join(hooks, 'before_build'));
+    shell.mkdir(path.join(hooks, 'before_docs'));
+    shell.mkdir(path.join(hooks, 'before_emulate'));
+    shell.mkdir(path.join(hooks, 'before_platform_add'));
+    shell.mkdir(path.join(hooks, 'before_platform_rm'));
+    shell.mkdir(path.join(hooks, 'before_platform_ls'));
+    shell.mkdir(path.join(hooks, 'before_plugin_add'));
+    shell.mkdir(path.join(hooks, 'before_plugin_ls'));
+    shell.mkdir(path.join(hooks, 'before_plugin_rm'));
+
+    // Write out .cordova/config.json file with a simple json manifest
+    fs.writeFileSync(path.join(dotCordova, 'config.json'), JSON.stringify({
         id:id,
         name:name
     }));

http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/0605f051/src/metadata/blackberry_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/blackberry_parser.js 
b/src/metadata/blackberry_parser.js
index b5ae45d..6728c05 100644
--- a/src/metadata/blackberry_parser.js
+++ b/src/metadata/blackberry_parser.js
@@ -28,7 +28,7 @@ module.exports.prototype = {
 
         // Do we have BB config?
         var projectRoot = util.isCordova(this.path);
-        var dotFile = path.join(projectRoot, '.cordova');
+        var dotFile = path.join(projectRoot, '.cordova', 'config.json');
         var dot = JSON.parse(fs.readFileSync(dotFile, 'utf-8'));
         if (dot.blackberry === undefined || dot.blackberry.qnx === undefined) {
             this.get_blackberry_environment(function() {
@@ -73,7 +73,7 @@ module.exports.prototype = {
         var projFile = path.join(this.path, 'project.properties');
         var props = fs.readFileSync(projFile, 'utf-8');
 
-        var dotFile = path.join(projectRoot, '.cordova');
+        var dotFile = path.join(projectRoot, '.cordova', 'config.json');
         var dot = JSON.parse(fs.readFileSync(dotFile, 'utf-8'));
 
         props = props.replace(/qnx\.bbwp\.dir=.*\n/, 'qnx.bbwp.dir=' + 
dot.blackberry.qnx.bbwp + '\n');
@@ -87,9 +87,9 @@ module.exports.prototype = {
     get_blackberry_environment:function(callback) {
         // TODO: add other blackberry sub-platforms
         var projectRoot = util.isCordova(this.path);
-        var dotFile = path.join(projectRoot, '.cordova');
+        var dotFile = path.join(projectRoot, '.cordova', 'config.json');
         var dot = JSON.parse(fs.readFileSync(dotFile, 'utf-8'));
-        // Let's save relevant BB SDK + signing info to .cordova
+        // Let's save relevant BB SDK + signing info to .cordova/config.json
         console.log('Looks like we need some of your BlackBerry development 
environment information. We\'ll just ask you a few questions and we\'ll be on 
our way to building.');
         prompt.start();
         prompt.get([{
@@ -116,7 +116,7 @@ module.exports.prototype = {
         }
         ], function(err, results) {
             if (err) throw 'Error during BlackBerry environment config 
retrieval';
-            // Write out .cordova file
+            // Write out .cordova/config.json file
             if (dot.blackberry === undefined) dot.blackberry = {};
             if (dot.blackberry.qnx === undefined) dot.blackberry.qnx = {};
             dot.blackberry.qnx.bbwp = results.bbwp;
@@ -126,7 +126,7 @@ module.exports.prototype = {
             dot.blackberry.qnx.sim_ip = results.sim_ip;
             dot.blackberry.qnx.sim_password = results.sim_password;
             fs.writeFileSync(dotFile, JSON.stringify(dot), 'utf-8');
-            console.log('Perfect! If you need to change any of these 
properties, just edit the .cordova file in the root of your cordova project 
(it\'s just JSON, you\'ll be OK).');
+            console.log('Perfect! If you need to change any of these 
properties, just edit the .cordova/config.json file in the root of your cordova 
project.');
             if (callback) callback();
         });
     }

Reply via email to