ubuntu: check icon existence
Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/d4ea7900 Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/d4ea7900 Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/d4ea7900 Branch: refs/heads/master Commit: d4ea7900f28f50988c756331f6b75b62418c7c9b Parents: 2b32d93 Author: Maxim Ermilov <maxim.ermi...@canonical.com> Authored: Tue Aug 19 15:03:48 2014 +0400 Committer: Anis Kadri <a...@apache.org> Committed: Fri Sep 5 11:12:19 2014 -0700 ---------------------------------------------------------------------- .../src/cordova/metadata/ubuntu_parser.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d4ea7900/cordova-lib/src/cordova/metadata/ubuntu_parser.js ---------------------------------------------------------------------- diff --git a/cordova-lib/src/cordova/metadata/ubuntu_parser.js b/cordova-lib/src/cordova/metadata/ubuntu_parser.js index 634a575..a199662 100644 --- a/cordova-lib/src/cordova/metadata/ubuntu_parser.js +++ b/cordova-lib/src/cordova/metadata/ubuntu_parser.js @@ -87,14 +87,18 @@ module.exports.prototype = { architecture: arch, description: sanitize(this.config.description()) }; - var name = this.config.name().replace(/\n/g, ' '); //FIXME: escaping - var content = '[Desktop Entry]\nName=' + name + '\nExec=./cordova-ubuntu www/\nIcon=qmlscene\nTerminal=false\nType=Application\nX-Ubuntu-Touch=true'; - - name = sanitize(this.config.name()); //FIXME: escaping - content = '[Desktop Entry]\nName=' + name + '\nExec=./cordova-ubuntu www/\nTerminal=false\nType=Application\nX-Ubuntu-Touch=true'; - - if (this.config.doc.find('icon') && this.config.doc.find('icon').attrib.src && fs.existsSync(path.join(this.path, 'www', this.config.doc.find('icon').attrib.src))) { - content += '\nIcon=www/' + this.config.doc.find('icon').attrib.src; + var name = sanitize(this.config.name()); //FIXME: escaping + var content = '[Desktop Entry]\nName=' + name + '\nExec=./cordova-ubuntu www/\nTerminal=false\nType=Application\nX-Ubuntu-Touch=true'; + + if (this.config.doc.find('icon') && this.config.doc.find('icon').attrib.src) { + var iconPath = path.join(this.path, 'www', this.config.doc.find('icon').attrib.src); + if (fs.existsSync(iconPath)) + content += '\nIcon=www/' + this.config.doc.find('icon').attrib.src; + else + return Q.reject(new Error('icon does not exist: ' + iconPath)); + } else { + content += '\nIcon=qmlscene'; + console.warn('missing icon element in config.xml'); } fs.writeFileSync(path.join(this.path, 'manifest.json'), JSON.stringify(manifest)); fs.writeFileSync(path.join(this.path, 'cordova.desktop'), content);