on master help sign in
Make injectibleConfig much more restrictive about what is included in a frontend or mobile app
commit05529a657822afc00e9aa4968807a620d9615641 authorElliot Cameron <eacameron@gmail.com> dateFri 31 Jul 2020, 12:06 (6 years ago) parentc8ff72c
1 file changed+11−5
default.nix+11−5
default.nix+11−5
@@ -257,16 +257,22 @@ in rec {
257257 ${self.backendName} = haskellLib.addBuildDepend super'.${self.backendName} self'.obelisk-run;
258258 };
259259 totalOverrides = lib.composeExtensions self.projectOverrides self.userSettings.overrides;
260− privateConfigDirs = ["config/backend"];
261− injectableConfig = builtins.filterSource (path: _:
262− !(lib.lists.any (x: hasPrefix (toString self.base + "/" + toString x) (toString path)) self.privateConfigDirs)
260+
261+
262+ allowedConfigDirs = ["config/backend" "config/common" "config/frontend"];
263+ nonPrivateConfigDirs = ["config/common" "config/frontend"];
264+ injectableConfig = base: builtins.filterSource (path: _:
265+ let pathIsInAny = lib.lists.any (x: hasPrefix (toString base + "/" + toString x) (toString path));
266+ in if !pathIsInAny self.allowedConfigDirs
267+ then throw "Path is not in a valid config directory ${path}. Valid config directories are: ${lib.concatStringsSep ", " self.allowedConfigDirs}"
268+ else pathIsInAny self.nonPrivateConfigDirs
263269 );
264270 __androidWithConfig = configPath: {
265271 ${if self.userSettings.android == null then null else self.frontendName} = {
266272 executableName = "frontend";
267273 ${if builtins.pathExists self.userSettings.staticFiles then "assets" else null} =
268274 nixpkgs.obeliskExecutableConfig.platforms.android.inject
269− (self.injectableConfig configPath)
275+ (self.injectableConfig (builtins.dirOf configPath) configPath)
270276 self.processedStatic.symlinked;
271277 } // self.userSettings.android;
272278 };
@@ -275,7 +281,7 @@ in rec {
275281 executableName = "frontend";
276282 ${if builtins.pathExists self.userSettings.staticFiles then "staticSrc" else null} =
277283 nixpkgs.obeliskExecutableConfig.platforms.ios.inject
278− (self.injectableConfig configPath)
284+ (self.injectableConfig (builtins.dirOf configPath) configPath)
279285 self.processedStatic.symlinked;
280286 } // self.userSettings.ios;
281287 };