This file is indexed.

/usr/bin/pmltoxmp is in photoml 0.28-0ubuntu2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#! /bin/sh

# This script converts PhotoML files to XMP format

# Copyright © 2010,2011 Brendt Wohlberg <photoml@wohlberg.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of version 2 of the GNU General Public License at
# http://www.gnu.org/licenses/gpl-2.0.txt.
#
# 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.

# Most recent modification: 28 January 2011


pmlpath="/usr/share/photoml"
pmlvalidx="/usr/bin/pmlvalid"

if [ ! "`which xsltproc 2>/dev/null`" ]; then
  echo "pmltoxmp: error executing xstlproc" >&2
  exit 1
fi

usage()
{
cat <<EOF >&2
usage: pmltoxmp [-h] [-n] ([-o path] [-s fstr] | [-f fid] [-g gid]) infile
       -h       Display usage information
       -n       Omit validity test
       -o path  Specify output path
       -s istr  Specify image id string format
       -f fid   Specify id of frame to convert
       -g gid   Specify id of group containing frame to convert
EOF
}

op=''
ff=''
fp=''
gp=''
novalid=0
while [ $# -ge 1 ]; do
  case $1 in
    -n)    novalid=1 ;;
    -o)    shift; op="$1" ;;
    -s)    shift; ff="$1" ;;
    -f)    shift; fp="$1" ;;
    -g)    shift; gp="$1" ;;
    -*)    usage; exit 1 ;;
    *)     infile=$1; break ;;
  esac
  shift
done   

if [ \( "$op" != '' -o "$ff" != '' \) -a \( "$fp" != '' -o "$gp" != '' \) ]; then
  usage; exit 1
fi
if [ "$infile" = '' ]; then
  usage; exit 1
fi

if [ ! -f "$infile" -o ! -r "$infile" ]; then
  echo pmltoxmp: could not open file $infile >&2
  exit 2
fi

dtdpub=`grep DOCTYPE $infile | grep -o -e '-\/\/.*EN'`;
dtdtyp=`echo $dtdpub | grep -o -e '//DTD[^/]*//' | cut -d ' ' -f 2`
if [ "$dtdtyp" != 'PhotoML' ]; then
  echo "pmltoxmp: input document type $dtdtyp not recognised" >&2
  exit 3
fi

if [ $novalid -eq 0 ]; then
  if ! $pmlvalidx "$infile" 2>/dev/null; then
    echo pmltoxmp: validity error in file $infile >&2
    exit 4
  fi
fi

if [ "$ff" != '' ]; then
  # Ensure that image id format string does not contain a path component
  ff=`echo $ff | sed -e 's|^.*/||'`".xmp"
  ffparam="--stringparam idstring-format $ff"
fi

fpparam=''
if [ "$fp" != '' ]; then
  fpparam="--stringparam fid-param $fp"
fi

gpparam=''
if [ "$gp" != '' ]; then
  gpparam="--stringparam gid-param $gp"
fi

if [ -r /etc/xml/catalog -a "$XML_CATALOG_FILES" = '' ]; then
  XML_CATALOG_FILES=/etc/xml/catalog
fi
XML_CATALOG_FILES="$pmlpath/dtd/catalog.xml $XML_CATALOG_FILES"
export XML_CATALOG_FILES
unset SGML_CATALOG_FILES

edxsl=$pmlpath/xsl/defaults/expand.xsl
txxsl=$pmlpath/xsl/misc/xmp.xsl

tmpin="/tmp/pmltoxmp.in.$$"
xsltproc $fsparam $ecparam $lmparam -o $tmpin $edxsl $infile
if [ "$fp" = '' -a "$gp" = '' ]; then
  tmpout="/tmp/pmltoxmp.out.$$"
  mkdir -p $tmpout
  opparam="--stringparam output-path $tmpout/"
  xsltproc $opparam $ffparam $txxsl $tmpin
  if [ "$op" = '' ]; then
    op='.'
  else
    op=`echo $op | sed -e 's|/$||'`
  fi
  nf=`ls $tmpout/*.xmp 2>/dev/null | wc -l`
  if [ $nf -gt 0 ]; then
    for f in $tmpout/*.xmp; do
      b=`basename $f`
      if [ -f "$b" ]; then
        echo Warning: skipping output "$op/$b" - file exists
      else
        mv "$f" "$op"
      fi
    done
  fi
else
  xsltproc $fpparam $gpparam $txxsl $tmpin
fi
status=$?

rm -f $tmpin
if [ -d "$tmpout" ]; then
  rm -rf $tmpout
fi

exit $status