| /* |
| * |
| * Copyright 2013 Jesse MacFadyen |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| */ |
| |
| var common = require('./common'), |
| path = require('path'), |
| glob = require('glob'), |
| fs = require('fs'), |
| csproj = require('../util/csproj'), |
| events = require('../events'), |
| xml_helpers = require('../util/xml-helpers'); |
| |
| module.exports = { |
| www_dir:function(project_dir) { |
| return path.join(project_dir, 'www'); |
| }, |
| package_name:function(project_dir) { |
| return xml_helpers.parseElementtreeSync(path.join(project_dir, 'Properties', 'WMAppManifest.xml')).find('App').attrib.ProductID; |
| }, |
| parseProjectFile:function(project_dir) { |
| var project_files = glob.sync('*.csproj', { |
| cwd:project_dir |
| }); |
| if (project_files.length === 0) { |
| throw new Error('does not appear to be a Windows Phone project (no .csproj file)'); |
| } |
| return new csproj(path.join(project_dir, project_files[0])); |
| }, |
| "source-file":{ |
| install:function(source_el, plugin_dir, project_dir, plugin_id, project_file) { |
| var dest = path.join('Plugins', plugin_id, source_el.attrib['target-dir'] ? source_el.attrib['target-dir'] : '', path.basename(source_el.attrib['src'])); |
| |
| common.copyNewFile(plugin_dir, source_el.attrib['src'], project_dir, dest); |
| // add reference to this file to csproj. |
| project_file.addSourceFile(dest); |
| }, |
| uninstall:function(source_el, project_dir, plugin_id, project_file) { |
| var dest = path.join('Plugins', plugin_id, source_el.attrib['target-dir'] ? source_el.attrib['target-dir'] : '', path.basename(source_el.attrib['src'])); |
| common.removeFile(project_dir, dest); |
| // remove reference to this file from csproj. |
| project_file.removeSourceFile(dest); |
| } |
| }, |
| "header-file": { |
| install:function(source_el, plugin_dir, project_dir, plugin_id) { |
| events.emit('verbose', 'header-file.install is not supported for wp8'); |
| }, |
| uninstall:function(source_el, project_dir, plugin_id) { |
| events.emit('verbose', 'header-file.uninstall is not supported for wp8'); |
| } |
| }, |
| "resource-file":{ |
| install:function(el, plugin_dir, project_dir, plugin_id, project_file) { |
| events.emit('verbose', 'resource-file.install is not supported for wp8'); |
| }, |
| uninstall:function(el, project_dir, plugin_id, project_file) { |
| events.emit('verbose', 'resource-file.uninstall is not supported for wp8'); |
| } |
| }, |
| "framework":{ |
| install:function(el, plugin_dir, project_dir, plugin_id, project_file) { |
| events.emit('verbose', 'wp8 framework install :: ' + plugin_id ); |
| |
| var src = el.attrib['src']; |
| var dest = src; // if !isCustom, we will just add a reference to the file in place |
| var isCustom = el.attrib.custom == "true"; |
| |
| if(isCustom) { |
| dest = path.join('plugins', plugin_id, path.basename(src)); |
| common.copyFile(plugin_dir, src, project_dir, dest); |
| } |
| |
| project_file.addReference(dest); |
| |
| }, |
| uninstall:function(el, project_dir, plugin_id, project_file) { |
| events.emit('verbose', 'wp8 framework uninstall :: ' + plugin_id ); |
| |
| var src = el.attrib['src']; |
| var isCustom = el.attrib.custom == "true"; |
| |
| if(isCustom) { |
| var dest = path.join('plugins', plugin_id); |
| common.removeFile(project_dir, dest); |
| } |
| |
| project_file.removeReference(src); |
| } |
| }, |
| "lib-file": { |
| install:function(source_el, plugin_dir, project_dir, plugin_id) { |
| events.emit('verbose', 'lib-file.install is not supported for wp8'); |
| }, |
| uninstall:function(source_el, project_dir, plugin_id) { |
| events.emit('verbose', 'lib-file.uninstall is not supported for wp8'); |
| } |
| } |
| }; |