<?xml version="1.0" encoding="ISO-8859-1"?> <!-- $Id:$ --> <!-- Extracts minimal versions from LFS book host requirements, and generates a script containing statements of the form MIN_prog_VERSION=xx.yy.zz. --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text"/> <xsl:template match="/sect1"> <xsl:apply-templates select=".//listitem//emphasis"/> </xsl:template> <xsl:template match="emphasis"> <!-- We assume that what is emphasized is in the form: aa...aa-dccsaaa (a anything except @, - "dash", d digit, c anything except space, s space) or aa...aasdccsaaa This means we have to replace digits with @, and look for '-@' or ' @' --> <xsl:variable name="normalized-string" select="translate(normalize-space(string()), '0123456789', '@@@@@@@@@@')"/> <xsl:variable name="begin-ver"> <xsl:choose> <xsl:when test="contains($normalized-string,' @')"> <xsl:value-of select="string-length(substring-before($normalized-string,' @'))+1"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="string-length(substring-before($normalized-string,'-@'))+1"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="remaining-part" select="substring($normalized-string,number($begin-ver)+1)"/> <xsl:variable name="end-ver"> <xsl:choose> <xsl:when test="contains($remaining-part,' ')"> <xsl:value-of select="string-length(substring-before($remaining-part,' '))"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="string-length($remaining-part)"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:text>local MIN_</xsl:text> <xsl:choose> <xsl:when test="contains(string(),'Kernel')"> <xsl:text>Linux</xsl:text> </xsl:when> <xsl:when test="contains(string(),'GLIBC')"> <xsl:text>Glibc</xsl:text> </xsl:when> <xsl:when test="contains(string(),'XZ')"> <xsl:text>Xz</xsl:text> </xsl:when> <xsl:otherwise> <!-- We assume that there are no dash nor space in other names --> <xsl:value-of select="substring(string(),1,number($begin-ver)-1)"/> </xsl:otherwise> </xsl:choose> <xsl:text>_VER=</xsl:text> <xsl:value-of select="substring(string(),number($begin-ver)+1,$end-ver)"/> <xsl:text> </xsl:text> </xsl:template> </xsl:stylesheet>