Validate a directory structure using JSON schemas
Project description
A tool to check that a directory structure conforms to a given JSON Schema.
In case of check failure, following actions can be taken, depending on your configuration:
Output defects to the console
Send a file listing all defects to a Slack conference room
Installation
Using pip should suffice
pip install filemarx
Configuration
You have to produce a JSON Schema file against which your directory’s structure will be validated. An example of this can be found in the samples/design.json file.
Let’s say that your file structure is this:
./anotherfile
./file1
./somedir
./somedir/andanother
./somedir/andanother/someotherfile
./somedir/somefilehere
./somedir/anotherdir
./file2
Then the produced JSON would be
{
"files":[
"anotherfile",
"file1",
"file2"
],
"dirs":{
"somedir":{
"files":[
"somefilehere"
],
"dirs":{
"anotherdir":{
"files":[
],
"dirs":{
}
},
"andanother":{
"files":[
"someotherfile"
],
"dirs":{
}
}
}
}
}
}
Usage
The command takes 3 mandatory positional arguments:
Check name (to be set arbitrarily)
Schema file location
Directory to be checked
Example
filemarx Design samples/design.json /home/myself/designs
State-keeping options
If you run filemarx in a cron but you don’t want errors to come up every minute, you can ignore them for X seconds once discovered. This can be done with a combination of options -t which sets a timeout (in seconds) and -s which indicate where to store the state file.
# Only pop errors every hour
filemarx -t 3600 -s /tmp/design_state.json Design samples/design.json /home/myself/designs
Pushing results to Slack
filemarx can connect to the Slack API in order to push errors to a given Slack channel. In order to do that, you need to get an API Token, then use options --slack-token and --slack-channels.
# Send it all to Slack
filemarx --slack-token 'get-your-own' --slack-channels '#general,#design' -t 3600 -s /tmp/design_state.json Design samples/design.json /home/myself/designs
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
File details
Details for the file filemarx-0.1.0.tar.gz
.
File metadata
- Download URL: filemarx-0.1.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2ead8ae0d0dba9bcc4d0ee241a645c62dfc8898d5bbd21e82f3e58cba425056 |
|
MD5 | 3489b0b9ee19921ad7ea2cce7615fd3f |
|
BLAKE2b-256 | 2a7dae018dba250a2d949de1c676757df3a2de76e6027b7ba630994176e9bf27 |