diff --git a/docker/container-files/bootstrap/Pipfile b/docker/container-files/bootstrap/Pipfile deleted file mode 100644 index d54965e..0000000 --- a/docker/container-files/bootstrap/Pipfile +++ /dev/null @@ -1,12 +0,0 @@ -[[source]] -name = "pypi" -url = "https://pypi.org/simple" -verify_ssl = true - -[dev-packages] - -[packages] -click = "*" - -[requires] -python_version = "3.8" diff --git a/docker/container-files/bootstrap/app/cli.py b/docker/container-files/bootstrap/app/cli.py deleted file mode 100644 index d14bf31..0000000 --- a/docker/container-files/bootstrap/app/cli.py +++ /dev/null @@ -1,30 +0,0 @@ -import click -from app.mkdocs import common - -"""CLI commands interface - - These are the primitive operation wrappers that the CLI - will expose and be available to invoke. - In order to do so, the comprehensive Click library is used to - create commands, subcommands, parameters, flags... - - .. _Click CLI library docs: - https://click.palletsprojects.com/en/7.x/#documentation -""" - - -@click.group(chain=True) -def cli() -> None: - """ - Bootstrap CLI - """ - - -@cli.command('start', help='Start Application') -def start(): - common.start() - - -@cli.command('update', help='Update documentation code from repository') -def update(): - common.update_repo() diff --git a/docker/container-files/bootstrap/app/mkdocs/common.py b/docker/container-files/bootstrap/app/mkdocs/common.py deleted file mode 100644 index 7ceb066..0000000 --- a/docker/container-files/bootstrap/app/mkdocs/common.py +++ /dev/null @@ -1,138 +0,0 @@ -import os -from termcolor import colored -import git -from datetime import datetime -from crontab import CronTab - -docks_dir = os.environ['DOCS_DIRECTORY'] -modules = os.environ['ADD_MODULES'] -repo = os.environ['GIT_REPO'] -git_branch = os.environ['GIT_BRANCH'] -auto_update = os.environ['AUTO_UPDATE'] -interval = int(os.environ['UPDATE_INTERVAL']) - - -def start(): - """ - Start mkdocs server - :return: - """ - if modules != 'false': - _install_modules(modules) - if repo != 'false': - _clone_repo(repo) - _check_previous_installation() - print('Starting MKDocs') - os.chdir(docks_dir) - if "DEV_ADDR" in os.environ: - _dev_addr = os.environ['DEV_ADDR'] - else: - _dev_addr = '0.0.0.0:8000' - os.system(f'mkdocs serve -a {_dev_addr} {_live_reload()} {_fast_mode()}') - - -def _install_modules(modules): - """ - Install Additional Modules - :param modules: str - List of modules to install - :return: - """ - print(colored(f'Installing python modules: {modules}', 'green')) - os.system(f'pip install -q {modules}') - print(colored(f'Modules installed.', 'green')) - - -def _check_previous_installation(): - """ - Check if previous installation present - Creates empty documentation if none detected - :return: - """ - if not os.path.exists(docks_dir + '/mkdocs.yml'): - print(colored( - f'No documentation found in ({docks_dir}). Creating new one.', 'yellow')) - if not os.path.exists(docks_dir): - os.mkdir(docks_dir) - print(colored(f'Starting fresh installation', 'green')) - os.system(f'mkdocs new {docks_dir}/') - else: - print( - colored(f'Detected previous installation in ({docks_dir}).', 'green')) - - -def _live_reload(): - """ - Live Reload - Auto Reload on file change - :return: - """ - if os.environ['LIVE_RELOAD_SUPPORT'] == 'false': - print(colored(f'LIVE RELOAD - [ DISABLED ]', 'red')) - reload = '--no-livereload' - else: - print(colored(f'LIVE RELOAD - [ ENABLED ]', 'green')) - reload = '' - return reload - - -def _fast_mode(): - """ - Fast Mode - Enables/Disables fast reload. - Enabled: build only files that got changed - Disabled: builds all files regardless of changes - :return: - """ - if os.environ['FAST_MODE'] == 'false': - print(colored(f'FAST_MODE - [ DISABLED ]', 'red')) - fast = '' - else: - print(colored(f'FAST_MODE - [ ENABLED ]', 'green')) - fast = '--dirtyreload' - return fast - - -def _set_auto_update(interval): - """ - Creates cron job for auto updating repository - :param interval: (every x minutes) - :return: - """ - os.system(f'crond') - cron = CronTab(user='root') - cron.remove_all() - job = cron.new(command='bootstrap update', comment='update') - job.minute.every(interval) - cron.write() - - -def _clone_repo(repo): - """ - Clone Documentation Code from git repository - :return: - """ - if not os.path.exists(docks_dir + '/mkdocs.yml'): - print(colored(f'Getting documentation from: {repo}', 'green')) - git.Repo.clone_from(repo, docks_dir, branch=git_branch) - - if auto_update == 'true': - print(colored(f'AUTO_UPDATE - [ ENABLED ]', 'green')) - print( - colored(f'UPDATE_INTERVAL set to every {interval} minute/s', 'green')) - _set_auto_update(interval) - - -def update_repo(): - """ - Fetching latest changes - :return: - """ - repo = git.Repo(docks_dir) - for remote in repo.remotes: - remote.fetch() - remote.pull() - headcommit = repo.head.commit - commit_date = datetime.fromtimestamp(headcommit.authored_date) - print(colored( - f'Pulled branch: {git_branch} \nCommit: {headcommit.hexsha} \nCommit Message: {headcommit.message}Date: {commit_date} \nAuthor: {headcommit.committer.name}', - 'green')) diff --git a/docker/container-files/bootstrap/main.py b/docker/container-files/bootstrap/main.py deleted file mode 100644 index cab510f..0000000 --- a/docker/container-files/bootstrap/main.py +++ /dev/null @@ -1,4 +0,0 @@ -from app.cli import cli - -if __name__ == '__main__': - cli() diff --git a/docker/container-files/bootstrap/setup.py b/docker/container-files/bootstrap/setup.py deleted file mode 100644 index 0ac2203..0000000 --- a/docker/container-files/bootstrap/setup.py +++ /dev/null @@ -1,15 +0,0 @@ -from setuptools import setup - -setup( - name='bootstrap', - version='1.0.0', - py_modules=['bootstrap'], - include_package_data=True, - install_requires=[ - 'click', 'termcolor', 'GitPython', 'python-crontab' - ], - entry_points=''' - [console_scripts] - bootstrap=app.cli:cli - ''', -) diff --git a/docker/container-files/root/.ssh/config b/docker/container-files/root/.ssh/config deleted file mode 100644 index 64779c2..0000000 --- a/docker/container-files/root/.ssh/config +++ /dev/null @@ -1,2 +0,0 @@ -Host * - StrictHostKeyChecking no \ No newline at end of file diff --git a/package.json b/package.json index 19cfe36..eb06475 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { "name": "ecm-administrator-manuals", - "version": "0.0.2", + "version": "0.0.3", "description": "ecm-administrator-manuals doc" } \ No newline at end of file