+ # Trash arguments validation
+ trash_at = None
+ if args.trash_at is not None:
+ try:
+ trash_at = ciso8601.parse_datetime(args.trash_at)
+ except:
+ logger.error("--trash-at argument format invalid, should be YYYY-MM-DDTHH:MM.")
+ sys.exit(1)
+ else:
+ if trash_at.tzinfo is not None:
+ # Timezone-aware datetime provided, convert to non-aware UTC
+ delta = trash_at.tzinfo.utcoffset(None)
+ trash_at = trash_at.replace(tzinfo=None) - delta
+ if trash_at <= datetime.datetime.utcnow():
+ logger.error("--trash-at argument should be set in the future")
+ sys.exit(1)
+ if args.trash_after is not None:
+ if args.trash_after < 1:
+ logger.error("--trash-after argument should be >= 1")
+ sys.exit(1)
+ trash_at = datetime.timedelta(seconds=(args.trash_after * 24 * 60 * 60))
+