Skip to content

Commit

Permalink
Added -includedir option to Pack step
Browse files Browse the repository at this point in the history
Manually packs all files in a folder
  • Loading branch information
Exactol committed Jan 4, 2020
1 parent 4459c34 commit 5e3cd30
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 3 deletions.
28 changes: 26 additions & 2 deletions CompilePalX/Compilers/BSPPack/Pack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public BSPPack()
private static bool dryrun;
private static bool renamenav;
private static bool include;
private static bool includeDir;
private static bool exclude;
private static bool excludeDir;
private static bool packvpk;
Expand All @@ -51,8 +52,9 @@ public override void Run(CompileContext context)
verbose = GetParameterString().Contains("-verbose");
dryrun = GetParameterString().Contains("-dryrun");
renamenav = GetParameterString().Contains("-renamenav");
include = GetParameterString().Contains("-include");
exclude = GetParameterString().Contains("-exclude");
include = Regex.IsMatch(GetParameterString(), "^-include\b"); // ensures it doesnt match -includedir
includeDir = GetParameterString().Contains("-includedir");
exclude = Regex.IsMatch(GetParameterString(), "^-exclude\b"); // ensures it doesnt match -excludedir
excludeDir = GetParameterString().Contains("-excludedir");
packvpk = GetParameterString().Contains("-vpk");

Expand Down Expand Up @@ -100,6 +102,28 @@ public override void Run(CompileContext context)
}
}

// get manually included files in directories
if (includeDir)
{
//Get included files from parameter list
foreach (string parameter in parameters)
{
if (parameter.Contains("includedir"))
{
var folderPath = parameter.Replace("\"", "").Replace("includedir ", "").TrimEnd(' ');
//Test that folder exists
if (Directory.Exists(folderPath))
{
var files = Directory.GetFiles(folderPath, "*", SearchOption.AllDirectories);
foreach (var file in files)
includeFiles.Add(file);
}
else
CompilePalLogger.LogLineColor($"Could not find folder: {folderPath}", Error.GetSeverityBrush(2));
}
}
}

if (exclude)
{
//Get excluded files from parameter list
Expand Down
2 changes: 1 addition & 1 deletion CompilePalX/Compilers/BSPPack/PakFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ public PakFile(BSP bsp, List<string> sourceDirectories, List<string> includeFile
// default base directory is the game folder
string baseDir = GameConfigurationManager.GameConfiguration.GameFolder;

var potentialSubDir = sourceDirs;
var potentialSubDir = new List<string>(sourceDirs); // clone to prevent accidental modification
potentialSubDir.Remove(baseDir);
foreach (var folder in potentialSubDir)
{
Expand Down
11 changes: 11 additions & 0 deletions CompilePalX/Parameters/PACK/parameters.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,17 @@
"Warning": "",
"CanBeUsedMoreThanOnce": true
},
{
"Name": "Include Directory",
"Parameter": " -includedir",
"Description": "Packs all files in specified directory",
"Value": null,
"ValueIsFile": true,
"ValueIsFolder": true,
"CanHaveValue": true,
"Warning": "",
"CanBeUsedMoreThanOnce": true
},
{
"Name": "Exclude",
"Parameter": " -exclude",
Expand Down

0 comments on commit 5e3cd30

Please sign in to comment.