52 lines
842 B
Python
52 lines
842 B
Python
|
import sys
|
||
|
|
||
|
import click
|
||
|
from flask.cli import FlaskGroup
|
||
|
|
||
|
|
||
|
def init():
|
||
|
global __version__
|
||
|
global app
|
||
|
global ssmanager
|
||
|
|
||
|
import signal
|
||
|
from importlib.metadata import version
|
||
|
|
||
|
from flask import Flask
|
||
|
|
||
|
from kiss.ssmanager import ScreenshotManager
|
||
|
|
||
|
__version__ = version("kiss")
|
||
|
|
||
|
# Initialize App
|
||
|
app = Flask(__name__)
|
||
|
|
||
|
# Screenshot Manager
|
||
|
ssmanager = ScreenshotManager()
|
||
|
|
||
|
# Handle SIGINT
|
||
|
signal.signal(signal.SIGINT, signal_handler)
|
||
|
|
||
|
|
||
|
def signal_handler(sig, frame):
|
||
|
if ssmanager:
|
||
|
ssmanager.stop()
|
||
|
sys.exit(0)
|
||
|
|
||
|
|
||
|
def create_app():
|
||
|
init()
|
||
|
|
||
|
import kiss.api as api_common
|
||
|
|
||
|
app.register_blueprint(api_common.bp)
|
||
|
|
||
|
ssmanager.start()
|
||
|
|
||
|
return app
|
||
|
|
||
|
|
||
|
@click.group(cls=FlaskGroup, create_app=create_app)
|
||
|
def cli():
|
||
|
"""Management script for the application."""
|