Skip to content

Commit 4c2197e

Browse files
committed
move ignored files to superproject
1 parent 537122c commit 4c2197e

4 files changed

Lines changed: 18 additions & 18 deletions

File tree

dfetch/commands/check.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
import dfetch.commands.command
3434
import dfetch.project
35-
from dfetch.commands.common import check_child_manifests, files_to_ignore
35+
from dfetch.commands.common import check_child_manifests
3636
from dfetch.log import get_logger
3737
from dfetch.manifest.manifest import Manifest
3838
from dfetch.project.superproject import SuperProject
@@ -98,7 +98,8 @@ def __call__(self, args: argparse.Namespace) -> None:
9898
for project in superproject.manifest.selected_projects(args.projects):
9999
with catch_runtime_exceptions(exceptions) as exceptions:
100100
dfetch.project.make(project).check_for_update(
101-
reporters, files_to_ignore=files_to_ignore(project.destination)
101+
reporters,
102+
files_to_ignore=superproject.ignored_files(project.destination),
102103
)
103104

104105
if not args.no_recommendations and os.path.isdir(project.destination):

dfetch/commands/common.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
"""Module for common command operations."""
22

33
import os
4-
from collections.abc import Sequence
54

65
import yaml
76

87
from dfetch.log import get_logger
98
from dfetch.manifest.manifest import Manifest, get_childmanifests
109
from dfetch.manifest.project import ProjectEntry
11-
from dfetch.vcs.git import GitLocalRepo
12-
from dfetch.vcs.svn import SvnRepo
1310

1411
logger = get_logger(__name__)
1512

@@ -66,14 +63,3 @@ def _make_recommendation(
6663
for line in recommendation_json.splitlines():
6764
logger.warning(line)
6865
logger.warning("")
69-
70-
71-
def files_to_ignore(path: str) -> Sequence[str]:
72-
"""Return a list of files that can be ignored in a given path."""
73-
if GitLocalRepo().is_git():
74-
ignore_list = GitLocalRepo.ignored_files(path)
75-
elif SvnRepo().is_svn():
76-
ignore_list = SvnRepo.ignored_files(path)
77-
else:
78-
ignore_list = []
79-
return ignore_list

dfetch/commands/update.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
import dfetch.manifest.validate
3838
import dfetch.project.git
3939
import dfetch.project.svn
40-
from dfetch.commands.common import check_child_manifests, files_to_ignore
40+
from dfetch.commands.common import check_child_manifests
4141
from dfetch.log import get_logger
4242
from dfetch.project.superproject import SuperProject
4343
from dfetch.util.util import catch_runtime_exceptions, in_directory
@@ -90,7 +90,7 @@ def __call__(self, args: argparse.Namespace) -> None:
9090
self._check_destination(project, destinations)
9191
dfetch.project.make(project).update(
9292
force=args.force,
93-
files_to_ignore=files_to_ignore(project.destination),
93+
files_to_ignore=superproject.ignored_files(project.destination),
9494
)
9595

9696
if not args.no_recommendations and os.path.isdir(

dfetch/project/superproject.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from __future__ import annotations
1010

1111
import os
12+
from collections.abc import Sequence
1213

1314
from dfetch.log import get_logger
1415
from dfetch.manifest.manifest import Manifest, find_manifest
@@ -59,3 +60,15 @@ def get_sub_project(self, project: ProjectEntry) -> SubProject | None:
5960
return SvnSubProject(project)
6061

6162
return None
63+
64+
def ignored_files(self, path: str) -> Sequence[str]:
65+
"""Return a list of files that can be ignored in a given path."""
66+
if not os.path.commonprefix((path, self.root_directory)) != self.root_directory:
67+
raise RuntimeError(f"{path} not in superproject {self.root_directory}!")
68+
69+
if GitLocalRepo().is_git():
70+
return GitLocalRepo.ignored_files(path)
71+
if SvnRepo().is_svn():
72+
return SvnRepo.ignored_files(path)
73+
74+
return []

0 commit comments

Comments
 (0)