<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<refentry id="xdg-app-build-export">

    <refentryinfo>
        <title>xdg-app build-export</title>
        <productname>xdg-app</productname>

        <authorgroup>
            <author>
                <contrib>Developer</contrib>
                <firstname>Alexander</firstname>
                <surname>Larsson</surname>
                <email>alexl@redhat.com</email>
            </author>
        </authorgroup>
    </refentryinfo>

    <refmeta>
        <refentrytitle>xdg-app build-export</refentrytitle>
        <manvolnum>1</manvolnum>
    </refmeta>

    <refnamediv>
        <refname>xdg-app-build-export</refname>
        <refpurpose>Create a repository from a build directory</refpurpose>
    </refnamediv>

    <refsynopsisdiv>
            <cmdsynopsis>
                <command>xdg-app build-export</command>
                <arg choice="opt" rep="repeat">OPTION</arg>
                <arg choice="plain">LOCATION</arg>
                <arg choice="plain">DIRECTORY</arg>
                <arg choice="opt">BRANCH</arg>
            </cmdsynopsis>
    </refsynopsisdiv>

    <refsect1>
        <title>Description</title>

        <para>
            Creates or updates a repository with an application build.
            <arg choice="plain">LOCATION</arg> is the location of the
            repository. <arg choice="plain">DIRECTORY</arg> must be a
            finalized build directory. If <arg choice="plain">BRANCH</arg>
            is not specified, it is assumed to be "master".
        </para>
        <para>
            If <arg choice="plain">LOCATION</arg> exists, it is assumed to
            be an OSTree repository, otherwise a new OSTree repository is
            created at this location. The repository can be inspected with
            the <command>ostree</command> tool.
        </para>
        <para>
            The contents of <arg choice="plain">DIRECTORY</arg> are committed
            on the branch with name <literal>app/APPNAME/ARCH/BRANCH</literal>,
            where ARCH is the architecture of the runtime that the application
            is using. A commit filter is used to enforce that only the contents
            of the <filename>files/</filename> and <filename>export/</filename>
            subdirectories and the <filename>metadata</filename> file are included
            in the commit, anything else is ignored.
        </para>
        <para>
            The repo-update command should be used to update repository
            metadata whenever application builds are added to a repository.
        </para>
    </refsect1>

    <refsect1>
        <title>Options</title>

        <para>The following options are understood:</para>

        <variablelist>
            <varlistentry>
                <term><option>-h</option></term>
                <term><option>--help</option></term>

                <listitem><para>
                    Show help options and exit.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>-s</option></term>
                <term><option>--subject=SUBJECT</option></term>

                <listitem><para>
                    One line subject for the commit message.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>-b</option></term>
                <term><option>--body=BODY</option></term>

                <listitem><para>
                    Full description for the commit message.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--gpg-sign=KEYID</option></term>

                <listitem><para>
                    Sign the commit with this GPG key
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--gpg-homedir=PATH</option></term>

                <listitem><para>
                    GPG Homedir to use when looking for keyrings
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>-v</option></term>
                <term><option>--verbose</option></term>

                <listitem><para>
                    Print debug information during command processing.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--version</option></term>

                <listitem><para>
                    Print version information and exit.
                </para></listitem>
            </varlistentry>
        </variablelist>
    </refsect1>

    <refsect1>
        <title>Examples</title>

        <para>
            <command>$ xdg-app build-export ~/repos/gnome-calculator/ ~/build/gnome-calculator/ org.gnome.Calculator</command>
        </para>
<programlisting>
Commit: 9d0044ea480297114d03aec85c3d7ae3779438f9d2cb69d717fb54237acacb8c
Metadata Total: 605
Metadata Written: 5
Content Total: 1174
Content Written: 1
Content Bytes Written: 305
</programlisting>

    </refsect1>

    <refsect1>
        <title>See also</title>

        <para>
            <citerefentry><refentrytitle>ostree</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>xdg-app</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>xdg-app-build-init</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>xdg-app-build</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>xdg-app-build-finish</refentrytitle><manvolnum>1</manvolnum></citerefentry>
            <citerefentry><refentrytitle>xdg-app-repo-update</refentrytitle><manvolnum>1</manvolnum></citerefentry>
        </para>

    </refsect1>

</refentry>
