Skip to content

Commit 8b1bb47

Browse files
author
Vladimir Kotal
committed
make it possible to avoid source tree removal
1 parent a9fac2d commit 8b1bb47

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

tools/src/main/python/projadm.py

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
print("Need Python 3, you are running {}".format(MAJOR_VERSION))
4949
sys.exit(1)
5050

51-
__version__ = "0.2"
51+
__version__ = "0.3"
5252

5353

5454
def exec_command(doit, logger, cmd, msg):
@@ -161,7 +161,7 @@ def project_add(doit, logger, project, uri):
161161
add_project(logger, project, uri)
162162

163163

164-
def project_delete(doit, logger, project, uri):
164+
def project_delete(logger, project, uri, doit=True, deletesource=False):
165165
"""
166166
Delete the project for configuration and all its data.
167167
Works in multiple steps:
@@ -180,15 +180,16 @@ def project_delete(doit, logger, project, uri):
180180
if doit:
181181
delete_project(logger, project, uri)
182182

183-
src_root = get_config_value(logger, 'sourceRoot', uri)
184-
if not src_root or len(src_root) == 0:
185-
raise Exception("source root empty")
186-
logger.debug("Source root = {}".format(src_root))
187-
sourcedir = path.join(src_root, project)
188-
logger.debug("Removing directory tree {}".format(sourcedir))
189-
if doit:
190-
logger.info("Removing source code under {}".format(sourcedir))
191-
shutil.rmtree(sourcedir)
183+
if deletesource:
184+
src_root = get_config_value(logger, 'sourceRoot', uri)
185+
if not src_root or len(src_root) == 0:
186+
raise Exception("source root empty")
187+
logger.debug("Source root = {}".format(src_root))
188+
sourcedir = path.join(src_root, project)
189+
logger.debug("Removing directory tree {}".format(sourcedir))
190+
if doit:
191+
logger.info("Removing source code under {}".format(sourcedir))
192+
shutil.rmtree(sourcedir)
192193

193194

194195
if __name__ == '__main__':
@@ -211,6 +212,9 @@ def project_delete(doit, logger, project, uri):
211212
parser.add_argument('-n', '--noop', action='store_true', default=False,
212213
help='Do not run any commands or modify any config'
213214
', just report. Usually implies the --debug option.')
215+
parser.add_argument('-N', '--nosourcedelete', action='store_true',
216+
default=False, help='Do not delete source code when '
217+
'deleting a project')
214218

215219
group = parser.add_mutually_exclusive_group()
216220
group.add_argument('-a', '--add', metavar='project', nargs='+',
@@ -237,6 +241,10 @@ def project_delete(doit, logger, project, uri):
237241

238242
logger = logging.getLogger(os.path.basename(sys.argv[0]))
239243

244+
if args.nosourcedelete and not args.delete:
245+
logger.error("The no source delete option is only valid for delete")
246+
sys.exit(1)
247+
240248
# Set the base directory
241249
if args.base:
242250
if path.isdir(args.base):
@@ -284,9 +292,10 @@ def project_delete(doit, logger, project, uri):
284292
roconfig=args.roconfig)
285293
elif args.delete:
286294
for proj in args.delete:
287-
project_delete(doit=doit, logger=logger,
295+
project_delete(logger=logger,
288296
project=proj,
289-
uri=uri)
297+
uri=uri, doit=doit,
298+
deletesource=not args.nosourcedelete)
290299

291300
config_refresh(doit=doit, logger=logger,
292301
basedir=args.base,

0 commit comments

Comments
 (0)