"""Commande `rtg`. rtg generer [VOYAGE…] tout faire (sources, positions, vidéos, photos, pages, accueil) rtg etat avancement de chaque voyage rtg analyser VOYAGE ce que RTG trouve dans les sources d'un voyage rtg compresser VOYAGE seulement les vidéos rtg accueil seulement la page d'accueil et la carte globale rtg migrer écrire site.toml et les voyage.toml depuis l'existant La racine du site est le premier dossier, en remontant depuis le dossier courant, qui contient site.toml (sinon le dossier courant) ; --racine la force. """ import argparse import os import sys from rtg import __version__ def main(argv=None): p = argparse.ArgumentParser(prog="rtg", description="RoadTripsGenerator : site web de road-trips.") p.add_argument("--version", action="version", version=f"rtg {__version__}") p.add_argument("--racine", help="racine du site (défaut : recherche de site.toml)") sp = p.add_subparsers(dest="commande", required=True) g = sp.add_parser("generer", help="générer un, plusieurs ou tous les voyages, puis l'accueil") g.add_argument("voyages", nargs="*", help="dossiers des voyages (défaut : tous)") g.add_argument("--sans-compression", action="store_true", help="ne pas encoder les vidéos") g.add_argument("--force", action="store_true", help="tout refaire, même ce qui est à jour") g.add_argument("--mymaps-maj", action="store_true", help="récupérer à nouveau les cartes My Maps") sp.add_parser("etat", help="avancement de chaque voyage") a = sp.add_parser("analyser", help="inventaire des sources d'un voyage") a.add_argument("voyage") c = sp.add_parser("compresser", help="encoder les vidéos d'un voyage") c.add_argument("voyage") c.add_argument("--force", action="store_true") ac = sp.add_parser("accueil", help="régénérer l'accueil et la carte globale") ac.add_argument("--mymaps-maj", action="store_true") sp.add_parser("migrer", help="écrire site.toml et voyage.toml depuis l'organisation actuelle") args = p.parse_args(argv) from rtg import accueil, site, sources, video from rtg.config import reglages_site, reglages_voyage, trouver_racine racine = os.path.abspath(args.racine) if args.racine else trouver_racine(".") try: if args.commande == "generer": ok = site.generer(racine, args.voyages, compression=not args.sans_compression, force=args.force, mymaps_maj=args.mymaps_maj) sys.exit(0 if ok else 1) elif args.commande == "etat": site.etat(racine) elif args.commande == "analyser": site.analyser(args.voyage, racine) elif args.commande == "compresser": v = os.path.abspath(args.voyage) cfg = reglages_voyage(v, reglages_site(racine)) sys.exit(0 if video.compresser(v, cfg, sources.analyser(v, cfg), force=args.force) else 1) elif args.commande == "accueil": accueil.generer(racine, reglages_site(racine), args.mymaps_maj) elif args.commande == "migrer": site.migrer(racine) except KeyboardInterrupt: print("\nInterrompu.") sys.exit(130)