#!/bin/bash
#
# Build Resources/schema.xml with UTIs extacted from Info.plist
#

set -e

SCRIPT=`basename $0`
PLIST="${SRCROOT}/${INFOPLIST_FILE}"
SCHEMA="${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/schema.xml"

echo $0 "+" $PLIST "->" $SCHEMA

rm -f "${SCHEMA}"

DELIMSTART=schema:start
DELIMSTOP=schema:stop
utis=`awk "/${DELIMSTART}/, /${DELIMSTOP}/" "${PLIST}" | sed -n -E 's|^[[:space:]]*<string>(.*)</string>.*|\1|p'`

cat > "${SCHEMA}" <<HEADER
<?xml version="1.0" encoding="UTF-8"?>

<!-- Generated by $SCRIPT -->

<schema version="1.0" xmlns="http://www.apple.com/metadata"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.apple.com/metadata file:///System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Resources/MetadataSchema.xsd">
	<attributes>
		<attribute name="uk_org_marginal_qlvideo_framerate" type="CFNumber" uniqued="true"/>
		<attribute name="uk_org_marginal_qlvideo_subtitles" type="CFString" multivalued="true" uniqued="true"/>
	</attributes>
	<types>
HEADER

for uti in $utis; do
	cat >> "${SCHEMA}" <<UTI
		<type name="$uti">
			<allattrs>
				kMDItemAlternateNames
				kMDItemContentCreationDate
				kMDItemComment
				kMDItemLanguages
				kMDItemPublishers
				kMDItemRecordingDate
				kMDItemRecordingYear
				uk_org_marginal_qlvideo_framerate
				uk_org_marginal_qlvideo_subtitles
			</allattrs>
			<displayattrs>
				<!-- From public.audiovisual-content -->
				kMDItemTitle
				kMDItemPixelHeight
				kMDItemPixelWidth
				kMDItemDurationSeconds
				kMDItemAuthors
				kMDItemPerformers
				kMDItemDirector
				kMDItemProducer
				kMDItemRecordingYear	<!-- appears hereabouts in public.audio -->
				kMDItemComment		<!-- appears hereabouts in public.audio -->
				kMDItemGenre
				kMDItemCopyright
				kMDItemCodecs	<!-- moved up -->
				uk_org_marginal_qlvideo_framerate	<!-- added -->
				kMDItemLanguages	<!-- added -->
				kMDItemAudioChannelCount
				kMDItemAudioSampleRate
				kMDItemBitsPerSample
				uk_org_marginal_qlvideo_subtitles	<!-- added -->
				<!-- kMDItemMediaExtensions	omitted -->
				kMDItemEncodingApplications
				kMDItemOriginalFormat
				kMDItemOriginalSource
				kMDItemStarRating
				kMDItemInformation
				kMDItemDescription
			</displayattrs>
		</type>
UTI
done

cat >> "${SCHEMA}" <<FOOTER
	</types>
</schema>
FOOTER

exit 0
