jxxcarlson/elm-tar/2.0.2

NOTE: the latest version is 4.0.0

Tar

Use

   encodeFiles : List ( FileRecord, Data ) -> Encode.Encoder

to tar an arbitrary set of files which may contain either text or binary data. To tar a set of text files, you can use

   encodeTextFiles : List (FileRecord, String) -> Encode.Encoder

For more details, see the README. See also the demo app ./examples/Main.elm

type Data
= StringData String
| BinaryData Bytes

Use StringData String for text data, BinaryData Bytes for binary data

encodeFiles : List ( FileRecord, Data ) -> Encoder
  Example


  fileRecord_ =
      Tar.defaultFileRecord


  fileRecord1 =
      { fileRecord_ | filename = "a.txt" }


  content1 =
      "One two three\n"


  fileRecord2 =
      { fileRecord_ | filename = "c.binary" }


  content2 =
      Hex.toBytes "616263646566" |> Maybe.withDefault (encode (Bytes.Encode.unsignedInt8 0))


  Tar.encodeFiles
      [ ( fileRecord1, StringData content1 )
      , ( fileRecord2, BinaryData content2 )
      ]
      |> encode


  Note: `Hex` is found in `jxxcarlson/hex`
encodeTextFiles : List ( FileRecord, String ) -> Encoder

Example

encodeFiles [(defaultFileRecord, "This is a test"), (defaultFileRecord, "Lah di dah do day!")] |> encode == <2594 bytes> : Bytes

It seems that defaultFileRecord` does not have any docs. The module's documentation names it in an @docs line, but the package does not expose it.