Set up infra for different packing mode

Summary:
Electron 12 broke packing again because one file was renamed. I'm now setting up a separate mode for using globs and ignores to create artifact bundles. This will work like a reverse gitignore file. However, to keep the logic simple, I'll keep the old mode for MacOS where the folder structure lends itself to comprehensive, exact lists.

**This doesn't actually change anything just yet apart from the "packfile" format. The next diff will add the new packing mode. Feedback is always welcome but there's no need for super close scrutiny.**

Reviewed By: mweststrate

Differential Revision: D27191506

fbshipit-source-id: 663cef8b93eef6c2dbb56ef66de51ea9551412dd
This commit is contained in:
Pascal Hartig
2021-03-23 13:26:31 -07:00
committed by Facebook GitHub Bot
parent 94e85b54c8
commit ca55e68c89
3 changed files with 93 additions and 57 deletions

View File

@@ -35,6 +35,26 @@ pub enum PackType {
Core,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
PartialOrd,
Ord,
serde::Deserialize,
serde::Serialize
)]
#[serde(rename_all = "lowercase")]
pub enum PackMode {
/// All paths need to be specified.
Exact,
/// Can use `*` and `!` syntax to specify patterns for inclusion and exclusion.
/// Only works on the root folder level.
Glob,
}
impl Display for PackType {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {