// apt-ftparchive configuration file setup for Mendel distro generation

Dir {
    ArchiveDir ".";
    OverrideDir "..";
    CacheDir "..";
};

Default {
    Packages::Compress "gzip xz";
    Sources::Compress  "gzip xz";
    Contents::Compress "gzip xz";

    Packages {
        Extensions ".deb";
    };
};

TreeDefault {
   // These are all defaults and are provided for completeness
   Directory "$(DIST)/$(SECTION)/binary-$(ARCH)/";
   Packages "$(DIST)/$(SECTION)/binary-$(ARCH)/Packages";
   
   SrcDirectory "$(DIST)/$(SECTION)/source/";
   Sources "$(DIST)/$(SECTION)/source/Sources";
   
   Contents "$(DIST)/Contents-$(ARCH)";   

   FileList "../packages.txt";
   SourceFileList "../sources.txt";
};

Tree "dists/unstable" {
    // NOTE: Update Sections with additional bsp sections as we go
    Sections "core enterprise-bsp";
    Architectures "source all arm64 armhf";
};
