| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #!/usr/bin/python3
- # -*- coding: utf-8 -*-
- # Copyright (C) 2006-2007 Søren Roug, European Environment Agency
- #
- # This is free software. You may redistribute it under the terms
- # of the Apache license and the GNU General Public License Version
- # 2 or at your option any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public
- # License along with this program; if not, write to the Free Software
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- #
- # Contributor(s): Michael Howitz, gocept gmbh & co. kg
- import sys
- import getopt
- import odf.userfield
- if sys.version_info[0]==3: unicode=str
- listfields = False
- Listfields = False
- xfields = []
- Xfields = []
- setfields = {}
- outputfile = None
- inputfile = None
- def exitwithusage(exitcode=2):
- """ print out usage information """
- sys.stderr.write("Usage: %s [-lL] [-xX metafield] [-s metafield:value]... "
- "[-o output] [inputfile]\n" % sys.argv[0])
- sys.stderr.write("\tInputfile must be OpenDocument format\n")
- sys.exit(exitcode)
- try:
- opts, args = getopt.getopt(sys.argv[1:], "lLs:o:x:X:")
- except getopt.GetoptError:
- exitwithusage()
- if len(opts) == 0:
- exitwithusage()
- for o, a in opts:
- if o == '-s':
- if a.find(":") >= 0:
- k,v = a.split(":",1)
- else:
- k,v = (a, "")
- if len(k) == 0:
- exitwithusage()
- setfields[unicode(k)] = unicode(v)
- if o == '-l':
- listfields = True
- Listfields = False
- if o == '-L':
- Listfields = True
- listfields = False
- if o == "-x":
- xfields.append(unicode(a))
- if o == "-X":
- Xfields.append(unicode(a))
- if o == "-o":
- outputfile = unicode(a)
- if len(args) != 0:
- inputfile = unicode(args[0])
- user_fields = odf.userfield.UserFields(inputfile, outputfile)
- if xfields:
- for value in user_fields.list_values(xfields):
- print (value)
- if Listfields or Xfields:
- if Listfields:
- Xfields = None
- for field_name, value_type, value in user_fields.list_fields_and_values(
- Xfields):
- print ("%s#%s:%s" % (field_name, value_type, value))
-
- if listfields:
- for value in user_fields.list_fields():
- print (value)
- if setfields:
- user_fields.update(setfields)
- # Local Variables: ***
- # mode: python ***
- # End: ***
|