Skip to main content

A utility for creating sets of templated indexes for local or remote directories.

Project description

multi-indexer

A utility for creating sets of templated indexes for local or remote directories.

What does this do?

The multi-indexer creates an Apache HTTPd index-like page dictated by a mustache template. Such a template is provided here in directory-index-template.html.

If provided with a remote location on an AWS S3 bucket, it will create an index of remote directories/files. (It does not upload any index files.)

Local indexing is recursive - it will index subfolders relative to the provided path.

Remote indexing is not recursive - it will create a single index for the provided path only.

Installation

Install with pip:

pip install multi-indexer

Usage

Run from the command line as python -m multi_indexer.

Arguments:

-i INJECT, --inject INJECT Mustache template file to inject into -d DIRECTORY, --directory DIRECTORY The directory to copy from -p PREFIX, --prefix PREFIX The prefix to add to all files and links -x, --execute Actually run--not the default dry run -u, --up Release version, where pages have a link pointing up one level -v, --verbose More verbose output -b BUCKET, --bucket BUCKET Name of S3 bucket, if creating index for remote directory -r REMOTE_DIRECTORY, --remote_directory REMOTE_DIRECTORY Name of S3 remote directory (without leading / ), if creating index for it

The package may be imported as multi_indexer, though the main() function provides most of the functionality.

By default, no files will be written or uploaded unless multi-indexer is passed the -x/--execute flag.

You can find an example HTML template at the project repository:

https://github.com/Knowledge-Graph-Hub/multi-indexer/blob/main/directory-index-template.html

This is also the template the multi-indexer will use if no template is provided.

Example usage for local indexing, just for local testing

This assumes that directory-index-template.html is present in your current working directory.

mkdir -p /tmp/foo/bar/bib/bab && mkdir -p /tmp/foo/bar/fish && mkdir -p /tmp/foo/bar/foul
touch /tmp/foo/top.md && touch /tmp/foo/bar/bib/bab/bottom.txt && touch /tmp/foo/bar/fish/trout.f && touch /tmp/foo/bar/fish/bass.f
python -m multi_indexer -v --inject ./directory-index-template.html --directory /tmp/foo --prefix file:///tmp/foo -x

Example usage for local indexing, assuming indexes will be uploaded:

python -m multi_indexer -v --inject ./directory-index-template.html --directory $WORKSPACE/mnt --prefix https://soyouhave.afancy.website/$PROJECTDIR/ -x'

Example usage for remote indexing:

python -m multi_indexer -v --inject ./directory-index-template.html --prefix https://soyouhave.afancy.website/$PROJECTDIR/ -b a-bucket-name -r $PROJECTDIR -x'

Credits

Adapted from directory_indexer.py by Eric Douglass, Seth Carbon, and Justin Reese, originally at https://github.com/Knowledge-Graph-Hub/go-site/blob/master/scripts/multi_indexer.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multi-indexer-0.0.4.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

multi_indexer-0.0.4-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file multi-indexer-0.0.4.tar.gz.

File metadata

  • Download URL: multi-indexer-0.0.4.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.10

File hashes

Hashes for multi-indexer-0.0.4.tar.gz
Algorithm Hash digest
SHA256 c90f78b802bdd90b448518bdd84127cedd30ffc82fd0285c5da32f5a3ac57fd5
MD5 1f62fcae6db9c8d27d6f9eced0ff9a63
BLAKE2b-256 015a7cdda1df46c5565f1150164e29bdc76a37b4a0d3fb2be0c4a0acb5eefba8

See more details on using hashes here.

File details

Details for the file multi_indexer-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: multi_indexer-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.10

File hashes

Hashes for multi_indexer-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a7f17eff0a76ae4eecc737baf03e4aa019679da0761df4e766d9c52a897bef22
MD5 7f848d8ecd9250d305399fdd91df892f
BLAKE2b-256 bf11c4b9b4ff792f9b8f57fd0d1ee5f419ce789307201c39c4502d9d74e6e72c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page