diff --git a/docgen.sh b/docgen.sh index ec22ecea..258d5ed7 100755 --- a/docgen.sh +++ b/docgen.sh @@ -5,6 +5,7 @@ cd jc pydocmd simple jc+ > ../docs/readme.md pydocmd simple utils+ > ../docs/utils.md pydocmd simple jc.parsers.arp+ > ../docs/parsers/arp.md +pydocmd simple jc.parsers.crontab+ > ../docs/parsers/crontab.md pydocmd simple jc.parsers.df+ > ../docs/parsers/df.md pydocmd simple jc.parsers.dig+ > ../docs/parsers/dig.md pydocmd simple jc.parsers.du+ > ../docs/parsers/du.md diff --git a/docs/parsers/crontab.md b/docs/parsers/crontab.md new file mode 100644 index 00000000..0c366b0c --- /dev/null +++ b/docs/parsers/crontab.md @@ -0,0 +1,190 @@ +# jc.parsers.crontab +jc - JSON CLI output utility crontab file Parser + +Usage: + + specify --crontab as the first argument if the piped input is coming from a crontab file + +Compatibility: + + 'linux', 'aix', 'freebsd' + +Examples: + + $ crontab | jc --crontab -p + { + "variables": [ + { + "name": "MAILTO", + "value": "root" + }, + { + "name": "PATH", + "value": "/sbin:/bin:/usr/sbin:/usr/bin" + }, + { + "name": "SHELL", + "value": "/bin/bash" + } + ], + "schedule": [ + { + "minute": [ + "5" + ], + "hour": [ + "10-11", + "22" + ], + "day_of_month": [ + "*" + ], + "month": [ + "*" + ], + "day_of_week": [ + "*" + ], + "command": "/var/www/devdaily.com/bin/mk-new-links.php" + }, + { + "minute": [ + "30" + ], + "hour": [ + "4/2" + ], + "day_of_month": [ + "*" + ], + "month": [ + "*" + ], + "day_of_week": [ + "*" + ], + "command": "/var/www/devdaily.com/bin/create-all-backups.sh" + }, + { + "occurrence": "yearly", + "command": "/home/maverick/bin/annual-maintenance" + }, + { + "occurrence": "reboot", + "command": "/home/cleanup" + }, + { + "occurrence": "monthly", + "command": "/home/maverick/bin/tape-backup" + } + ] + } + + $ crontab | jc --crontab -p -r + { + "variables": [ + { + "name": "MAILTO", + "value": "root" + }, + { + "name": "PATH", + "value": "/sbin:/bin:/usr/sbin:/usr/bin" + }, + { + "name": "SHELL", + "value": "/bin/bash" + } + ], + "schedule": [ + { + "minute": "5", + "hour": "10-11,22", + "day_of_month": "*", + "month": "*", + "day_of_week": "*", + "command": "/var/www/devdaily.com/bin/mk-new-links.php" + }, + { + "minute": "30", + "hour": "4/2", + "day_of_month": "*", + "month": "*", + "day_of_week": "*", + "command": "/var/www/devdaily.com/bin/create-all-backups.sh" + }, + { + "occurrence": "yearly", + "command": "/home/maverick/bin/annual-maintenance" + }, + { + "occurrence": "reboot", + "command": "/home/cleanup" + }, + { + "occurrence": "monthly", + "command": "/home/maverick/bin/tape-backup" + } + ] + } + +## info +```python +info(self, /, *args, **kwargs) +``` + +## process +```python +process(proc_data) +``` + +Final processing to conform to the schema. + +Parameters: + + proc_data: (dictionary) raw structured data to process + +Returns: + + dictionary structured data with the following schema: + + [ + { + "occurrence" string, + "minute": [ + string + ], + "hour": [ + string + ], + "day_of_month": [ + string + ], + "month": [ + string + ], + "day_of_week": [ + string + ], + "username": string + } + ] + + +## parse +```python +parse(data, raw=False, quiet=False) +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) output preprocessed JSON if True + quiet: (boolean) suppress warning messages if True + +Returns: + + dictionary raw or processed structured data +