From e3656943ca868c3008e4b237587b3444070c2a08 Mon Sep 17 00:00:00 2001 From: Pawel Szostek <pawel.szostek@gmail.com> Date: Thu, 14 Jul 2011 12:13:16 +0200 Subject: [PATCH] Add --clean option to hdlmake --clean forces hdlmake to remove modules fetched from repositories. All unneeded folders are removed either. --- hdlmake | Bin 31295 -> 31477 bytes src/hdlmake_kernel.py | 5 +++++ src/module.py | 24 ++++++++++++++++++++++-- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/hdlmake b/hdlmake index 89b05285cf3eed54ccc81344829bf80183ff0cc7..f1bd74f6d3d407f279aa174a906a50fe9183f392 100755 GIT binary patch delta 6770 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 delta 6534 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 diff --git a/src/hdlmake_kernel.py b/src/hdlmake_kernel.py index 29c8caa8..da42c4b5 100644 --- a/src/hdlmake_kernel.py +++ b/src/hdlmake_kernel.py @@ -254,6 +254,11 @@ class HdlmakeKernel(object): f.write("process run {Generate Programming File} -force rerun_all\n") f.close() + def clean_modules(self): + for m in self.modules_pool: + if m.source in ["svn", "git"]: + m.remove() + def generate_fetch_makefile(self): pool = self.modules_pool diff --git a/src/module.py b/src/module.py index 140aa8ae..37359d37 100644 --- a/src/module.py +++ b/src/module.py @@ -76,8 +76,8 @@ class Module(object): self.path = url self.isfetched = True else: - if os.path.exists(os.path.join(fetchto, self.basename)): - self.path = os.path.join(fetchto, self.basename) + if os.path.exists(os.path.abspath(os.path.join(fetchto, self.basename))): + self.path = os.path.abspath(os.path.join(fetchto, self.basename)) self.isfetched = True else: self.path = None @@ -125,6 +125,26 @@ class Module(object): sth = [] return sth + def remove(self): + if not self.isfetched: + return + + import shutil + import os + + p.vprint("Removing " + self.path) + shutil.rmtree(self.path) + + parts = self.path.split('/') + while True: + try: + parts = parts[:-1] + tmp = '/'.join(parts) + p.vprint("Trying to remove " + tmp) + os.rmdir(tmp) + except OSError: #a catologue is not empty - we are done + break + def parse_manifest(self): if self.isparsed == True or self.isfetched == False: return -- GitLab