#!/usr/bin/python2.4 | |
# | |
# Copyright 2008-2009 Google Inc. | |
# | |
# 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. | |
# ======================================================================== | |
""" | |
mage.exe does not provide a way to add the trustURLParameters attribute to an | |
application manifest. This script fills that gap. It also adds in the | |
localized display name, to get around issues with the Python commands | |
module. | |
""" | |
import sys | |
import os | |
import getopt | |
import commands | |
def _AddTrustURLParametersAndName(manifest_file, output_file, display_name): | |
f_in = open(manifest_file, 'r') | |
manifest_contents = f_in.read() | |
f_in.close() | |
manifest_contents = manifest_contents.replace('<deployment ', \ | |
'<deployment trustURLParameters="true" ') | |
manifest_contents = manifest_contents.replace('\"xxxXXXxxx', \ | |
'\"%s' % display_name) | |
f_out = open(output_file, 'w') | |
# Works without needing to write the codecs.BOM_UTF8 at the beginning of the | |
# file. May need to write this at some point though. | |
f_out.write(manifest_contents) | |
f_out.close() | |
def _Usage(): | |
"""Prints out script usage information.""" | |
print """ | |
add_trusturlparams.py: Modify the given manifest file by adding in a | |
trustURLParameters=true to the deployment section. Also substitutes | |
the dummy name xxxXXXxxx with the localized display name. | |
Usage: | |
add_trusturlparams.py [--help | |
| --manifest_file filename | |
| --output_file filename | |
--display_name {i18n display name}] | |
Options: | |
--help Show this information. | |
--manifest_file filename Path/name of input/output manifest file. | |
--output_file filename Path/name of an optional output manifest file. | |
--display_name name i18n display name. | |
""" | |
def _Main(): | |
# use getopt to parse the option and argument list; this may raise, but | |
# don't catch it | |
_ARGUMENT_LIST = ["help", "manifest_file=", "output_file=", "display_name="] | |
(opts, args) = getopt.getopt(sys.argv[1:], "", _ARGUMENT_LIST) | |
if not opts or ("--help", "") in opts: | |
_Usage() | |
sys.exit() | |
manifest_file = "" | |
output_file = "" | |
display_name = "" | |
for (o, v) in opts: | |
if o == "--manifest_file": | |
manifest_file = v | |
if o == "--output_file": | |
output_file = v | |
if o == "--display_name": | |
display_name = v | |
# make sure we have work to do | |
if not manifest_file: | |
raise SystemExit("no manifest_filename specified") | |
if not display_name: | |
raise SystemExit("no display_name specified") | |
# overwrite existing file if no separate output specified | |
if not output_file: | |
output_file = manifest_file | |
_AddTrustURLParametersAndName(manifest_file, output_file, display_name) | |
sys.exit() | |
if __name__ == "__main__": | |
_Main() | |