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
Argument | Long Argument | Description |
---|---|---|
-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
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:
multi_indexer -v --inject ./directory-index-template.html --directory $WORKSPACE/mnt --prefix https://soyouhave.afancy.website/$PROJECTDIR/ -x'
Example usage for remote indexing:
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file multi-indexer-0.0.5.tar.gz
.
File metadata
- Download URL: multi-indexer-0.0.5.tar.gz
- Upload date:
- Size: 6.9 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | deab41975981228eeee0740f3d8162c0d2d4194e4268b3191295a1e8125e227b |
|
MD5 | 36985385d5cf103d66ca5c3a3407c7dd |
|
BLAKE2b-256 | 26cf71d3c8ca3ec04d7dffa024d38dfa4067bb763fd4fb3fbec4896691e29706 |
File details
Details for the file multi_indexer-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: multi_indexer-0.0.5-py3-none-any.whl
- Upload date:
- Size: 7.8 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7892ccf44138a20892928b9bb9b8b95553279268ea490dd8fa6831006e1515ba |
|
MD5 | 4bb48de1ef6213a4f1400484535635cf |
|
BLAKE2b-256 | 804c9da0c5fdfca87dfe1a5b390856f1d90e3dccbdc012c739b48dc7bb2c96cc |