forked from erp-dev/erp
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
from datetime import date
|
||
|
||
from django.core.management.base import BaseCommand, CommandError
|
||
|
||
from flower.app_version import set_cached_app_version_payload
|
||
|
||
|
||
class Command(BaseCommand):
|
||
help = "更新 App 最新版本信息缓存"
|
||
|
||
def add_arguments(self, parser):
|
||
parser.add_argument("--major", type=int, required=True)
|
||
parser.add_argument("--minor", type=int, required=True)
|
||
parser.add_argument("--build", type=int, required=True)
|
||
parser.add_argument("--download-url", required=True)
|
||
parser.add_argument("--force", action="store_true", default=False)
|
||
parser.add_argument(
|
||
"--publish-date",
|
||
help="发布日期,格式 YYYY-MM-DD;不传则使用当前日期",
|
||
)
|
||
|
||
def handle(self, *args, **options):
|
||
publish_date = options.get("publish_date")
|
||
if publish_date:
|
||
try:
|
||
date.fromisoformat(publish_date)
|
||
except ValueError as exc:
|
||
raise CommandError("publish-date 必须是 YYYY-MM-DD 格式") from exc
|
||
|
||
payload = set_cached_app_version_payload(
|
||
major=options["major"],
|
||
minor=options["minor"],
|
||
build=options["build"],
|
||
download_url=options["download_url"],
|
||
force=options["force"],
|
||
publish_date=publish_date,
|
||
)
|
||
self.stdout.write(self.style.SUCCESS(str(payload)))
|