From 05facfac628071c8d30aad8a3bc1b7bd186c1b6c Mon Sep 17 00:00:00 2001 From: Squidly271 Date: Sat, 18 Aug 2018 22:59:30 -0400 Subject: [PATCH] dockerMan: Avoid filename collisions on FAT32 Because under FAT32, my-plexmediaserver == my-PlexMediaServer. Solves an edge case --- .../dynamix.docker.manager/include/CreateDocker.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/dynamix.docker.manager/include/CreateDocker.php b/plugins/dynamix.docker.manager/include/CreateDocker.php index bd155a8e8..1a35dea8f 100644 --- a/plugins/dynamix.docker.manager/include/CreateDocker.php +++ b/plugins/dynamix.docker.manager/include/CreateDocker.php @@ -81,7 +81,16 @@ if (isset($_POST['contName'])) { $userTmplDir = $dockerManPaths['templates-user']; if (!is_dir($userTmplDir)) mkdir($userTmplDir, 0777, true); if ($Name) { - $filename = sprintf('%s/my-%s.xml', $userTmplDir, $Name); + $filename = sprintf('%s/my-%s', $userTmplDir, $Name); + // look for FAT32 filename hits due to different case + $userTemplates = glob("$userTmplDir/*.xml"); + foreach ($userTemplates as $tmpl) { + if ( ($tmpl != "$filename.xml") && (strcasecmp($tmpl,"$filename.xml") == 0) ) { + $filename .= " (1)"; + break; + } + } + $filename .= ".xml"; file_put_contents($filename, $postXML); } // Run dry