Skip to content

Commit

Permalink
Bug 1022728 - Prevent building gaia when running ./build.sh gecko
Browse files Browse the repository at this point in the history
  • Loading branch information
Ricky Chien committed Nov 17, 2014
1 parent 83e694f commit e0a6c8a
Show file tree
Hide file tree
Showing 9 changed files with 40 additions and 44 deletions.
2 changes: 1 addition & 1 deletion Android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ gaia-tests-zip:

.PHONY: gaia-prefs
gaia-prefs:
$(MAKE) -C $(GAIA_PATH) $(GAIA_MAKE_FLAGS) preferences
$(MAKE) -C $(GAIA_PATH) $(GAIA_MAKE_FLAGS) preferences settings

.PHONY: $(LOCAL_PATH)/profile.tar.gz
$(LOCAL_PATH)/profile.tar.gz: gaia-prefs
Expand Down
11 changes: 8 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -563,6 +563,10 @@ LANG=POSIX # Avoiding sort order differences between OSes
app: b2g_sdk profile-dir
@$(call run-js-command,app)

.PHONY: pre-app
pre-app: b2g_sdk profile-dir
@$(call run-js-command,pre-app)

# Keep old targets just for people/scripts still using it
.PHONY: post-manifest
post-manifest: app
Expand Down Expand Up @@ -670,6 +674,9 @@ endif # USE_LOCAL_XULRUNNER_SDK
preferences: profile-dir b2g_sdk
@$(call run-js-command,preferences)

# Generate profile/settings.json
settings: pre-app

# Generate $(PROFILE_FOLDER)/extensions
EXT_DIR=$(PROFILE_FOLDER)/extensions
extensions: $(STAGE_DIR)/additional-extensions/downloaded.json
Expand Down Expand Up @@ -1012,10 +1019,8 @@ purge:
$(ADB) shell rm -r $(MSYS_FIX)/system/b2g/webapps
$(ADB) shell 'if test -d $(MSYS_FIX)/persist/svoperapps; then rm -r $(MSYS_FIX)/persist/svoperapps; fi'

$(PROFILE_FOLDER)/settings.json: b2g_sdk profile-dir app

# push $(PROFILE_FOLDER)/settings.json and $(PROFILE_FOLDER)/contacts.json (if CONTACTS_PATH defined) to the phone
install-default-data: $(PROFILE_FOLDER)/settings.json contacts
install-default-data: settings contacts app
$(ADB) shell stop b2g
$(ADB) remount
$(ADB) push $(PROFILE_FOLDER)/settings.json $(MSYS_FIX)/system/b2g/defaults/settings.json
Expand Down
2 changes: 1 addition & 1 deletion apps/operatorvariant/build/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ OperatorAppBuilder.prototype.setOptions = function(options) {

this.gaia = utils.gaia.getInstance(options);

var settingsFile = utils.getFile(options.STAGE_DIR, 'settings_stage.json');
var settingsFile = utils.getFile(options.PROFILE_DIR, 'settings.json');
if (!settingsFile.exists()) {
throw new Error('file not found: ' + settingsFile.path);
}
Expand Down
2 changes: 1 addition & 1 deletion build/clean-stage-app.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ exports.execute = function(options) {
return;
}

options.rebuildAppDirs.forEach(function(appdirPath) {
options.GAIA_APPDIRS.split(' ').forEach(function(appdirPath) {
try {
var appName = utils.getFile(appdirPath).leafName;
remove(options.STAGE_DIR, appName);
Expand Down
18 changes: 0 additions & 18 deletions build/copy-common-files.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,6 @@

const utils = require('./utils');

/**
* Copy settings_stage.json under stage to settings.json under profile.
*/
function copySettingsJStoProfile(stageDir, profileDir) {
var settingsFile = stageDir.clone();
var defaultsDir = profileDir.clone();
settingsFile.append('settings_stage.json');
settingsFile.copyTo(profileDir, 'settings.json');

defaultsDir.append('defaults');
utils.ensureFolderExists(defaultsDir);
settingsFile.copyTo(defaultsDir, 'settings.json');
}

function cleanProfile(webappsDir) {
// Profile can contain folders with a generated uuid that need to be deleted
// or apps will be duplicated.
Expand Down Expand Up @@ -52,10 +38,6 @@ function execute(options) {
var webappsBaseDir = utils.getFile(options.PROFILE_DIR);
var stageDir = gaia.stageDir;

if (options.BUILD_APP_NAME === '*') {
copySettingsJStoProfile(stageDir, webappsBaseDir);
}

var webappsJSONFile = stageDir.clone();
webappsJSONFile.append('webapps_stage.json');
var webappsStageJSON = utils.getJSON(webappsJSONFile);
Expand Down
8 changes: 4 additions & 4 deletions build/pre-app.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ function execute(options) {
// A separate step for shared/ folder to generate its content in build time
require('./keyboard-layouts').execute(options);

// Generate user.js
require('./preferences').execute(options);

if (options.BUILD_APP_NAME == '*') {
require('./settings').execute(options);
}

// Copy shared files to stage folders
require('./webapp-shared').execute(options);

// Generate user.js
require('./preferences').execute(options);

// Copy common files such as settings.json and webapps.json
// Copy common files such as webapps.json
require('./copy-common-files').execute(options);
}
exports.execute = execute;
6 changes: 2 additions & 4 deletions build/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,10 @@ PreferencesBuilder.prototype.writeDefaultUserJs = function() {
return;
}

// create a clean folder to store data for B2G, this folder will copy to
// create a folder to store data for B2G, this folder will copy to
// b2g output folder.
let defaultsDir = utils.getFile(this.config.PROFILE_DIR, 'defaults');
if (defaultsDir.exists()) {
defaultsDir.remove(true);
}

defaultsDir.append('pref');
utils.ensureFolderExists(defaultsDir);
let userJs = defaultsDir.clone();
Expand Down
16 changes: 12 additions & 4 deletions build/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -201,11 +201,20 @@ function setHomescreenURL(settings, config) {

function writeSettings(settings, config) {
// Finally write the settings file
let settingsFile = utils.getFile(config.STAGE_DIR, 'settings_stage.json');
utils.log('settings.js', 'Writing settings file: ' + settingsFile.path);
let profileDir = utils.getFile(config.PROFILE_DIR);
let settingsFile = utils.getFile(config.PROFILE_DIR, 'settings.json');
let defaultsSettings = utils.getFile(
config.PROFILE_DIR, 'defaults', 'settings.json');

utils.ensureFolderExists(profileDir);
let content = JSON.stringify(settings);
utils.writeContent(settingsFile, content + '\n');
utils.log('settings.js', 'Settings file has been written');
utils.log('settings.js', 'Writing settings file: ' + settingsFile.path);

profileDir.append('defaults');
utils.ensureFolderExists(profileDir);
utils.writeContent(defaultsSettings, content + '\n');
utils.log('settings.js', 'Writing settings file: ' + defaultsSettings.path);
}

function execute(config) {
Expand Down Expand Up @@ -292,7 +301,6 @@ function execute(config) {
}).then(function() {
overrideSettings(settings, config);
}).then(function() {
// Set the homescreen URL
setHomescreenURL(settings, config);
}).then(function() {
writeSettings(settings, config);
Expand Down
19 changes: 11 additions & 8 deletions build/test/unit/settings.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ suite('settings.js', function() {
GAIA_DISTRIBUTION_DIR: 'testDistributionDir',
GAIA_DIR: 'testGaia',
SETTINGS_PATH: 'testSettingsPath',
STAGE_DIR: 'testStageDir'
STAGE_DIR: 'testStageDir',
PROFILE_DIR: 'testProfileDir'
};
mockUtils.resolve = function(file, baseLink) {
var fileExist = false;
Expand Down Expand Up @@ -185,21 +186,22 @@ suite('settings.js', function() {
});

test('writeSettings', function () {
var settingsFile = {result: ''};
var settingsFile = { result: '' };
var settings = { 'testKey': 'testValue' };
mockUtils.getFile = function(dir, file) {
mockUtils.getFile = function() {
var args = Array.prototype.slice.call(arguments);
return {
path: dir + '/' + file
path: args.join('/'),
append: function() {}
};
};
mockUtils.writeContent = function(target, string) {
if (target.path === config.STAGE_DIR + '/settings_stage.json') {
if (target.path === config.PROFILE_DIR + '/settings.json') {
settingsFile.result = string;
}
};
app.writeSettings(settings, config);
assert.deepEqual(JSON.parse(settingsFile.result),
settings);
assert.deepEqual(JSON.parse(settingsFile.result), settings);
});

test('setHomescreenURL with default homescreen', function() {
Expand Down Expand Up @@ -247,7 +249,8 @@ suite('settings.js', function() {
return {
exists: function() {
return true;
}
},
append: function() {}
};
};
mockUtils.getJSON = function(json) {
Expand Down

0 comments on commit e0a6c8a

Please sign in to comment.