test: Add 'dir' support for installed files in test.json

This is useful for automatically generated docs (doxygen, hotdoc)
with a lot of generated files that may differ with different
versions of the generator.
pull/7651/head
Daniel Mensinger 4 years ago committed by Nirbheek Chauhan
parent fdae213a49
commit 17439fa3e8
  1. 1
      data/test.schema.json
  2. 1
      docs/markdown/Contributing.md
  3. 27
      run_project_tests.py
  4. 84
      test cases/frameworks/14 doxygen/test.json
  5. 315
      test cases/frameworks/23 hotdoc/test.json

@ -20,6 +20,7 @@
"type": "string",
"enum": [
"file",
"dir",
"exe",
"shared_lib",
"pdb",

@ -242,6 +242,7 @@ current platform. The following values are currently supported:
| type | Description |
| ------------- | ------------------------------------------------------------------------------------------------------- |
| `file` | No postprocessing, just use the provided path |
| `dir` | To include all files inside the directory (for generated docs, etc). The path must be a valid directory |
| `exe` | For executables. On Windows the `.exe` suffix is added to the path in `file` |
| `shared_lib` | For shared libraries, always written as `name`. The appropriate suffix and prefix are added by platform |
| `pdb` | For Windows PDB files. PDB entries are ignored on non Windows platforms |

@ -131,7 +131,7 @@ class InstalledFile:
return None
# Handle the different types
if self.typ == 'file':
if self.typ in ['file', 'dir']:
return p
elif self.typ == 'shared_lib':
if env.machines.host.is_windows() or env.machines.host.is_cygwin():
@ -182,6 +182,20 @@ class InstalledFile:
return p
def get_paths(self, compiler: str, env: environment.Environment, installdir: Path) -> T.List[Path]:
p = self.get_path(compiler, env)
if not p:
return []
if self.typ == 'dir':
abs_p = installdir / p
if not abs_p.exists():
raise RuntimeError('{} does not exist'.format(p))
if not abs_p.is_dir():
raise RuntimeError('{} is not a directory'.format(p))
return [x.relative_to(installdir) for x in abs_p.rglob('*') if x.is_file() or x.is_symlink()]
else:
return [p]
@functools.total_ordering
class TestDef:
def __init__(self, path: Path, name: T.Optional[str], args: T.List[str], skip: bool = False):
@ -295,10 +309,15 @@ def platform_fix_name(fname: str, canonical_compiler: str, env: environment.Envi
return fname
def validate_install(test: TestDef, installdir: Path, compiler: str, env: environment.Environment) -> str:
expected_raw = [x.get_path(compiler, env) for x in test.installed_files]
expected = {Path(x): False for x in expected_raw if x}
found = [x.relative_to(installdir) for x in installdir.rglob('*') if x.is_file() or x.is_symlink()]
ret_msg = ''
expected_raw = [] # type: T.List[Path]
for i in test.installed_files:
try:
expected_raw += i.get_paths(compiler, env, installdir)
except RuntimeError as err:
ret_msg += 'Expected path error: {}\n'.format(err)
expected = {x: False for x in expected_raw}
found = [x.relative_to(installdir) for x in installdir.rglob('*') if x.is_file() or x.is_symlink()]
# Mark all found files as found and detect unexpected files
for fname in found:
if fname not in expected:

@ -1,87 +1,5 @@
{
"installed": [
{"type": "file", "file": "usr/share/doc/spede/html/annotated.html"},
{"type": "file", "file": "usr/share/doc/spede/html/bc_s.png"},
{"type": "file", "file": "usr/share/doc/spede/html/bdwn.png"},
{"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Comedian.html"},
{"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Comedian.png"},
{"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Comedian-members.html"},
{"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Spede.html"},
{"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Spede.png"},
{"type": "file", "file": "usr/share/doc/spede/html/classComedy_1_1Spede-members.html"},
{"type": "file", "file": "usr/share/doc/spede/html/classes.html"},
{"type": "file", "file": "usr/share/doc/spede/html/closed.png"},
{"type": "file", "file": "usr/share/doc/spede/html/comedian_8h_source.html"},
{"type": "file", "file": "usr/share/doc/spede/html/dir_7bdce917e28dfbd493cadd1d2e5c7d80.html"},
{"type": "file", "file": "usr/share/doc/spede/html/dir_44a4667d36a4476878de085754f6d2b9.html"},
{"type": "file", "file": "usr/share/doc/spede/html/dir_68b523c5b3a2dcea45d5ce70397fb722.html"},
{"type": "file", "file": "usr/share/doc/spede/html/dir_a7e6472d2301212032fd74682f8217f3.html"},
{"type": "file", "file": "usr/share/doc/spede/html/dir_ee191f21c02d247cc959e80c1a3acadf.html"},
{"type": "file", "file": "usr/share/doc/spede/html/doc.png"},
{"type": "file", "file": "usr/share/doc/spede/html/doxygen.css"},
{"type": "file", "file": "usr/share/doc/spede/html/doxygen.png"},
{"type": "file", "file": "usr/share/doc/spede/html/dynsections.js"},
{"type": "file", "file": "usr/share/doc/spede/html/files.html"},
{"type": "file", "file": "usr/share/doc/spede/html/folderclosed.png"},
{"type": "file", "file": "usr/share/doc/spede/html/folderopen.png"},
{"type": "file", "file": "usr/share/doc/spede/html/functions.html"},
{"type": "file", "file": "usr/share/doc/spede/html/functions_func.html"},
{"type": "file", "file": "usr/share/doc/spede/html/hierarchy.html"},
{"type": "file", "file": "usr/share/doc/spede/html/index.html"},
{"type": "file", "file": "usr/share/doc/spede/html/jquery.js"},
{"type": "file", "file": "usr/share/doc/spede/html/menu.js"},
{"type": "file", "file": "usr/share/doc/spede/html/menudata.js"},
{"type": "file", "file": "usr/share/doc/spede/html/namespaceComedy.html"},
{"type": "file", "file": "usr/share/doc/spede/html/namespacemembers.html"},
{"type": "file", "file": "usr/share/doc/spede/html/namespacemembers_func.html"},
{"type": "file", "file": "usr/share/doc/spede/html/namespaces.html"},
{"type": "file", "file": "usr/share/doc/spede/html/nav_f.png"},
{"type": "file", "file": "usr/share/doc/spede/html/nav_g.png"},
{"type": "file", "file": "usr/share/doc/spede/html/nav_h.png"},
{"type": "file", "file": "usr/share/doc/spede/html/open.png"},
{"type": "file", "file": "usr/share/doc/spede/html/search/all_0.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/all_0.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/all_1.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/all_1.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/all_2.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/all_2.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/all_3.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/all_3.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/classes_0.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/classes_0.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/classes_1.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/classes_1.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/close.png"},
{"type": "file", "file": "usr/share/doc/spede/html/search/files_0.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/files_0.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/functions_0.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/functions_0.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/functions_1.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/functions_1.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/functions_2.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/functions_2.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/mag_sel.png"},
{"type": "file", "file": "usr/share/doc/spede/html/search/namespaces_0.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/namespaces_0.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/nomatches.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/pages_0.html"},
{"type": "file", "file": "usr/share/doc/spede/html/search/pages_0.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/search.css"},
{"type": "file", "file": "usr/share/doc/spede/html/search/search.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/searchdata.js"},
{"type": "file", "file": "usr/share/doc/spede/html/search/search_l.png"},
{"type": "file", "file": "usr/share/doc/spede/html/search/search_m.png"},
{"type": "file", "file": "usr/share/doc/spede/html/search/search_r.png"},
{"type": "file", "file": "usr/share/doc/spede/html/spede_8cpp.html"},
{"type": "file", "file": "usr/share/doc/spede/html/spede_8h.html"},
{"type": "file", "file": "usr/share/doc/spede/html/spede_8h_source.html"},
{"type": "file", "file": "usr/share/doc/spede/html/splitbar.png"},
{"type": "file", "file": "usr/share/doc/spede/html/sync_off.png"},
{"type": "file", "file": "usr/share/doc/spede/html/sync_on.png"},
{"type": "file", "file": "usr/share/doc/spede/html/tabs.css"},
{"type": "file", "file": "usr/share/doc/spede/html/tab_a.png"},
{"type": "file", "file": "usr/share/doc/spede/html/tab_b.png"},
{"type": "file", "file": "usr/share/doc/spede/html/tab_h.png"},
{"type": "file", "file": "usr/share/doc/spede/html/tab_s.png"}
{"type": "dir", "file": "usr/share/doc/spede/html"}
]
}

@ -1,319 +1,6 @@
{
"installed": [
{"type": "file", "file": "usr/share/doc/foobar/html/foo.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/c-index.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/index.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/dumped.trie"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/theme.json"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/css/prism-tomorrow.css"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/css/bootstrap-toc.min.css"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/css/frontend.css"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/css/dumped.trie"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/css/jquery.mCustomScrollbar.min.css"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/css/custom_bootstrap.css"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/navbar_links.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/scripts.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/stylesheets.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/multi_return_value.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/parameters.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/base_page.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/footer.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/extra_head.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/parameter_detail.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/navbar_center.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/enum_member.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/member_list.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/return_item.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/subpages.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/dumped.trie"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/page_content.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/navbar.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/site_navigation.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/field_detail.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/templates/brand-logo.html"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/prism_autoloader_path_override.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/jquery.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/scrollspy.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/isotope.pkgd.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/utils.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/typeahead.jquery.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/language_switching.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/tag_filtering.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/prism-autoloader.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/navbar_offset_scroller.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/lines_around_headings.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/trie_index.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/trie.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/bootstrap.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/navigation.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/bootstrap-toc.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/anchor.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/prism-core.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/sitemap.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/dumped.trie"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/mustache.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/compare-versions.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/jquery.touchSwipe.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/jquery.mCustomScrollbar.concat.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/members"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/Hello"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hello"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/type"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/FooIndecision"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/fooindecision"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/Members"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/dumped.trie"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/indecision"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/index.html-hello-world.fragment"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/dumped.trie"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/foo.html-FooIndecision.fragment"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/Subpages"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/foo"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/API"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/Reference"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/api"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/reference"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/subpages"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/index.html-subpages.fragment"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/js/search/hotdoc_fragments/c-index.html-subpages.fragment"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-inform7.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-pascal.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bro.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nim.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-gherkin.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-stylus.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ocaml.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-powershell.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-smalltalk.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-verilog.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-puppet.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-aspnet.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-parigp.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-objectivec.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-processing.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-objectivec.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-jsx.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nginx.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-powershell.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-php.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-smarty.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-roboconf.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-batch.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-vhdl.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-protobuf.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-textile.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-crystal.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scss.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bro.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-smarty.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bison.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-tcl.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-pure.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-makefile.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-applescript.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-css-extras.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-stylus.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-q.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-dart.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-oz.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haskell.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-clike.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-kotlin.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-http.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bash.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-apl.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-docker.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sass.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-basic.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nasm.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-kotlin.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-abap.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-perl.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rust.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-c.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scala.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-glsl.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-lua.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-coffeescript.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-jade.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-keyman.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-crystal.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rest.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-json.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-roboconf.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-twig.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-dart.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-vim.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-handlebars.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-cpp.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-fsharp.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sas.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-brainfuck.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haxe.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-julia.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-jade.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-python.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nim.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-typescript.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-csharp.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-brainfuck.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-asciidoc.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-groovy.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-applescript.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-elixir.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-diff.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scheme.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-parser.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-qore.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-yaml.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-j.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-mel.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-css-extras.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-erlang.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-icon.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-actionscript.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-cpp.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-makefile.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-q.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nsis.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-mizar.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-wiki.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-csharp.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-julia.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-coffeescript.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sql.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-php-extras.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-basic.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-swift.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haxe.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-apacheconf.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-javascript.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-markup.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-keyman.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sql.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-php-extras.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scheme.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-python.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-autoit.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-gherkin.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-java.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-parigp.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-autohotkey.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ruby.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nginx.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-core.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-fortran.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nasm.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ini.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-protobuf.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-jsx.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-markdown.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nix.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nsis.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-oz.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-less.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-abap.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-puppet.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-nix.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-pascal.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-latex.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-verilog.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-aspnet.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-go.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-glsl.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-inform7.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-yaml.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-matlab.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-lua.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-mizar.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-c.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-fsharp.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haml.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rust.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-icon.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-fortran.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-qore.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-batch.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-eiffel.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-vim.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-j.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-eiffel.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-elixir.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-erlang.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-matlab.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-tcl.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ruby.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-d.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-swift.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-wiki.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-lolcode.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-latex.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-prolog.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-php.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scss.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-vhdl.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-lolcode.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-prolog.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-apacheconf.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-core.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-diff.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-json.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ini.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/dumped.trie"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-r.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-markup.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-apl.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-markdown.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-asciidoc.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-ocaml.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-javascript.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-autohotkey.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-less.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-pure.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-groovy.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bison.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sass.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-css.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haml.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-handlebars.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-textile.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-parser.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-docker.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-monkey.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-http.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-git.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-sas.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-go.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-mel.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rest.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-clike.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-d.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-haskell.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-git.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-java.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rip.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-perl.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-typescript.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-actionscript.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-autoit.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-rip.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-twig.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-monkey.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-processing.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-scala.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-smalltalk.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-bash.min.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-r.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/prism_components/prism-css.js"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.woff"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.woff2"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.svg"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.ttf"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/glyphicons-halflings-regular.eot"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/fonts/dumped.trie"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/images/home.svg"},
{"type": "file", "file": "usr/share/doc/foobar/html/assets/images/dumped.trie"}
{"type": "dir", "file": "usr/share/doc/foobar/html"}
],
"tools": {
"hotdoc": ">=0.1.0"

Loading…
Cancel
Save