Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  clean.py

  Sprache: Python
 

#!/usr/bin/env python3
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.

"""
Clean the world.

Note that this is probably only a partial clean - in particular, no attempt
is made to clean the iOS/Swift world, because markh doesn't know what that
involves.

Please make a PR with anything you notice that should be cleaned but isn't!
"""

import argparse
import shlex
import shutil
import subprocess
from pathlib import Path

PROJECT_ROOT = Path(__file__).parent.parent


def run_command(dry_run, cmdline, **kwargs):
    print("Executing:"" ".join(shlex.quote(str(part)) for part in cmdline))
    if not dry_run:
        subprocess.check_call(cmdline, **kwargs)


def find_generated_directories(look_dir):
    for child in look_dir.iterdir():
        if child.name == "support":
            for sub in find_generated_directories(child):
                yield sub
        else:
            # `android/build` directories should be removed.
            sub = child / "android" / "build"
            if sub.is_dir():
                yield sub
            # TODO: ios/swift?


def clean_android(dry_run):
    # pathlib.Path will join "." and "gradlew" as "gradlew", which doesn't
    # work as "." is not on the path!
    gradlew = (PROJECT_ROOT / "gradlew").resolve()
    # Running gradle is fairly likely to fail if the environment isn't setup,
    # so we ignore errors there...
    try:
        run_command(dry_run, [gradlew, "clean"], shell=True)
    except subprocess.CalledProcessError:
        print("`./gradle clean` failed, but looking for other Android stuff...")
    # ... and still try and find obviously generated directories.
    for to_rm in find_generated_directories(PROJECT_ROOT / "components"):
        print("Removing:", to_rm)
        if not dry_run:
            shutil.rmtree(to_rm)


def parse_args():
    parser = argparse.ArgumentParser(
        description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
    )
    parser.add_argument(
        "-n",
        "--dry-run",
        dest="dry_run",
        action="store_true",
        help="show what would be executed/removed without actually doing it.",
    )
    return parser.parse_args()


def main():
    args = parse_args()
    run_command(args.dry_run, ["cargo""clean"])
    clean_android(args.dry_run)
    # TODO: add swift etc.
    print("We should be clean! (except for iOS - fix me? :)")


if __name__ == "__main__":
    main()

Messung V0.5 in Prozent
C=82 H=86 G=83

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=752002