123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import click
- from tabulate import tabulate
- from pycs import app
- from pycs.database.Project import Project
- from pycs.util import FileOperations
- from flask.cli import AppGroup
- from flask.cli import with_appcontext
- def setup_commands(app):
- app.cli.add_command(project_cli)
- project_cli = AppGroup("project")
- @project_cli.command()
- @click.argument("project_id")
- def generate_thumbnails(project_id):
- if project_id == "all":
- projects = Project.query.all()
- app.logger.info(f"Generating thumbnails for all projects ({len(projects)})!")
- else:
- project = Project.query.get(project_id)
- if project is None:
- app.logger.error(f"Could not find project with ID {project_id}!")
- return
- app.logger.info(f"Generating thumbnails for project {project}!")
- projects = [project]
- for project in projects:
- FileOperations.generate_thumbnails(project)
- @project_cli.command("list")
- def list_projects():
- projects = Project.query.all()
- print(f"Got {len(projects)} projects")
- rows = [(p.id, p.name, p.description) for p in projects]
- print(tabulate(rows,
- headers=["id", "name", "description"],
- tablefmt="fancy_grid"
- ))
|