From e82992ae32fcbc3310b4a24e1e2905b46c4babeb Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Mon, 31 Dec 2018 22:02:56 -0800 Subject: license: license command prints sorted, non-redundant results - spack license command now ignores symlinks - spack license list-files now prints sorted output, and checks for files we've already seen. --- lib/spack/spack/cmd/license.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/spack/spack/cmd/license.py b/lib/spack/spack/cmd/license.py index df208d8bbe..e3349c505d 100644 --- a/lib/spack/spack/cmd/license.py +++ b/lib/spack/spack/cmd/license.py @@ -67,10 +67,14 @@ lgpl_exceptions = [ def _all_spack_files(root=spack.paths.prefix): """Generates root-relative paths of all files in the spack repository.""" + visited = set() for cur_root, folders, files in os.walk(root): for filename in files: - path = os.path.join(cur_root, filename) - yield os.path.relpath(path, root) + path = os.path.realpath(os.path.join(cur_root, filename)) + + if path not in visited: + yield os.path.relpath(path, root) + visited.add(path) def _licensed_files(root=spack.paths.prefix): @@ -81,7 +85,7 @@ def _licensed_files(root=spack.paths.prefix): def list_files(args): """list files in spack that should have license headers""" - for relpath in _licensed_files(): + for relpath in sorted(_licensed_files()): print(os.path.join(spack.paths.spack_root, relpath)) -- cgit v1.2.3-70-g09d2