diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-04-11 10:07:44 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-04-11 10:07:44 -0400 |
commit | 8bceb4424a27331b40ac8dc3c05f09017d7d4981 (patch) | |
tree | a66d2c49f8e2c402d0e3cbd238e589e5a0660976 /src/lib/Bcfg2/Server/Plugins/Packages | |
parent | b82a107695ab14a4b19016a5e6c322e4c3119380 (diff) | |
download | bcfg2-8bceb4424a27331b40ac8dc3c05f09017d7d4981.tar.gz bcfg2-8bceb4424a27331b40ac8dc3c05f09017d7d4981.tar.bz2 bcfg2-8bceb4424a27331b40ac8dc3c05f09017d7d4981.zip |
fixed xincludes to properly handle includes-in-includes, includes that aren't top-level, and other misc. stuff
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py b/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py index 3511cfc3d..8d0067b6a 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py @@ -44,8 +44,18 @@ class PackagesSources(Bcfg2.Server.Plugin.SingleXMLFileBacked, def HandleEvent(self, event=None): Bcfg2.Server.Plugin.SingleXMLFileBacked.HandleEvent(self, event=event) - if event.filename != self.name: - self.parsed.add(os.path.basename(event.filename)) + if event and event.filename != self.name: + for fname in self.extras: + fpath = None + if fname.startswith("/"): + fpath = os.path.abspath(fname) + else: + fpath = \ + os.path.abspath(os.path.join(os.path.dirname(self.name), + fname)) + if fpath == os.path.abspath(event.filename): + self.parsed.add(fname) + break if sorted(list(self.parsed)) == sorted(self.extras): self.logger.info("Reloading Packages plugin") |