Print list of components in image

  • Thread starter Thread starter Porfus
  • Start date Start date
P

Porfus

I have to provide a list of components in my working image as part of a
government review. I have been trying to figure out how to do this out of
target designer, but cannot seem to find an easy way. At this point I may
have to do screenshots of the TD screen. Anybody know if there is an easy or
even a massively over-complicated way of generating a list? Much thanks in
advance. And Sean, I know you got tricks. I'm expecting to see evidence of
your awesomeness once again LOL!

-Dan
 
Hi Dan,
when the image is built a log file with components is built also as a plain
text file
Just trim away rows starting " Building...." and you are done. The size of
each components is shown as a bonus...
Regards Raffaele
 
I have to provide a list of components in my working image as part of a
government review. I have been trying to figure out how to do this out of
target designer, but cannot seem to find an easy way. At this point I may
have to do screenshots of the TD screen. Anybody know if there is an easy or
even a massively over-complicated way of generating a list? Much thanks in
advance. And Sean, I know you got tricks. I'm expecting to see evidence of
your awesomeness once again LOL!

An admittedly ugly, albeit simple, implementation of an XSL Transform that
can be manually invoked using msxsl.exe. It produces a simple text file with
a list of all of the components in a .slx file.

http://www.microsoft.com/downloads/...71-C94E-4373-B0E9-DB4816552E41&displaylang=en

Example command line invocation:

msxsl.exe -xe my.slx components.xsl >components.txt

Or, for example, using Sablotron on a GNU platform:

sabcmd components.xsl my.slx >components.txt

Where components.xsl contains:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="text" encoding="utf-8" indent="no" />

<xsl:strip-space elements="*" />

<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>

<xsl:template match="/XCARRIER">
<xsl:apply-templates select="./CONFIG" mode="config" />
</xsl:template>

<xsl:template match="*" mode="config">
<xsl:apply-templates select="./INSTANCES" mode="instances" />
</xsl:template>

<xsl:template match="*" mode="instances">
<xsl:apply-templates select="./INSTANCE" mode="instance" />
</xsl:template>

<xsl:template match="*" mode="instance">
<xsl:variable name="sixtytwo" select="'
'" />
<xsl:choose>
<xsl:when test="contains(./DISPLAYNAME, 'Security Update ')">
<xsl:variable name="name" select="
concat(substring-before(./DISPLAYNAME, 'Security Update '),
substring-after(./DISPLAYNAME, 'Security Update '))" />
<xsl:choose>
<xsl:when test="string-length($name) > 62">
<xsl:value-of
select="substring($name, 0, 62)" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$name" />
<xsl:value-of
select="substring($sixtytwo, 0, 62 - string-length($name))" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="string-length(./DISPLAYNAME) > 62">
<xsl:value-of
select="substring(./DISPLAYNAME, 0, 62)" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./DISPLAYNAME" />
<xsl:value-of

select="substring($sixtytwo,0,62-string-length(./DISPLAYNAME))" />
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
<xsl:text> [</xsl:text>
<xsl:value-of select="./VERSION" />
<xsl:text>]</xsl:text>
<xsl:text>
</xsl:text>
</xsl:template>

<xsl:template match="*" />

</xsl:stylesheet>
 
Back
Top