Initial packer project

Summary:
This is a tool (right now more a script, really) for splitting a Flipper distribution into smaller chunks that can be individually cached, hashed and downloaded. It's incomplete but can already bundle up Mac apps into smaller chunks that can be merged back again into one app.

It takes a config file that specifies how to slice the inputs up and comes with a default copy bundled in. That's in line with the general "design" where it tries to make the right assumptions, for instance defaulting to the normal dist output directory.

Reviewed By: jknoxville

Differential Revision: D21302551

fbshipit-source-id: b22670ff4825ce526dd0f20320f87080c058cd93
This commit is contained in:
Pascal Hartig
2020-05-01 03:59:12 -07:00
committed by Facebook GitHub Bot
parent de5147a516
commit 155a8c6952
8 changed files with 695 additions and 0 deletions

64
packer/README.md Normal file
View File

@@ -0,0 +1,64 @@
# Flipper Packer
*Work in progress and incomplete*
A tool for splitting a Flipper build into smaller artifacts that can be distributed and cached separately.
**N.B. Buck build files are not included in the open-source export of this tool.**
## Building
With cargo:
```
$ cargo build
```
With Buck:
```
$ buck build :packer
```
## Testing
With cargo:
```
$ cargo test
```
With Buck:
```
$ buck test :packer
```
## Usage
See help page:
```
$ cargo run -- --help
flipper-packer 0.1.0
Facebook, Inc.
USAGE:
flipper-packer [FLAGS] [OPTIONS] <PLATFORM>
FLAGS:
-h, --help Prints help information
-p, --packlist Custom list of files to pack.
-V, --version Prints version information
OPTIONS:
-d, --dist <DIRECTORY> Flipper dist directory to read from. [default: ~/fbsource/xplat/sonar/dist]
-o, --output <DIRECTORY> Directory to write output files to. [default: .]
ARGS:
<PLATFORM> Platform to build for [possible values: Mac, Linux, Windows]
```
Buck:
```
$ buck run :packer
```