Fl4m3Ph03n1x

Fl4m3Ph03n1x

How to extract a tarball?

Background

I have a release file inside a tarball. However I want the final release to have some additional files and to move things around, for the convenience of the user.

This means I need to do 3 things:

  1. Extract the contents of the tarball into a folder
  2. Add the extra files to said folder and move some items around
  3. compress everything again and call it a day

Problem

While I have it clear on how to execute step 2, using File and friends, I have tried several ways to do steps 1 and 3 and I failed.

I have tried using :zip, but it returns a bad encoding error, probably because the file is not a zip but tar instead.

I am also aware of File.open("path", :read, :compressed), but I don’t want to read anything, I want to extract it into a new folder.

I also checked Unzip but it does not fit my use case.

Question

How can I extract a tar file into a folder and compress a folder into a tar file?

Marked As Solved

Fl4m3Ph03n1x

Fl4m3Ph03n1x

I was able to extract the file using:

:ok = :erl_tar.extract("tar_path", [{:cwd, "tmp"}, :compressed])

This will extract the tar file into the tmp folder. Once there I can do the rest !

Where Next?

Popular Backend topics Top

sampu
I have a use case where a client is invoking a Rest endpoint via a load balancer, which in turn invokes a third party endpoint which is r...
New
JimmyCarterSon
I am following this tutorial . I have followed carefully correcting errors as I go. The app allows you to create a blog post and add comm...
New
AstonJ
If when trying to create (or recreate) your dev db with rails db:create you are getting: PG::ConnectionBad: connection to server on soc...
New
Fl4m3Ph03n1x
Background I have a personal project that is an elixir desktop application for PC Windows. It works pretty well, but now I want to give i...
New
sona11
In Java, if I try to do.equals() on a null string, a null pointer error is issued. I’m wondering whether I can perform the following if I...
New
sona11
I’m having a difficulty. I want to modify an attribute’s data type from String to Array. { “id”: “trn:tarb:tradingpartner:uuid:00000...
New
Fl4m3Ph03n1x
Background I have a module that uses TypedStruct to create structs. This is the code: defmodule Shared.Data.Authorization do @moduledo...
New
Fl4m3Ph03n1x
Background I have a release file inside a tarball. However I want the final release to have some additional files and to move things aro...
New
ogoldberg
Any recommendations on good resources for learning Elixir, Phoenix, and Ash?
New
apoorv-2204
Anyone know how to get in golang? I am from elixir background?.
New

Other popular topics Top

PragmaticBookshelf
Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular wor...
New
AstonJ
What chair do you have while working… and why? Is there a ‘best’ type of chair or working position for developers?
New
Exadra37
I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New
AstonJ
We have a thread about the keyboards we have, but what about nice keyboards we come across that we want? If you have seen any that look n...
New
AstonJ
There’s a whole world of custom keycaps out there that I didn’t know existed! Check out all of our Keycaps threads here: https://forum....
New
PragmaticBookshelf
Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters...
New
DevotionGeo
The V Programming Language Simple language for building maintainable programs V is already mentioned couple of times in the forum, but I...
New
Maartz
Hi folks, I don’t know if I saw this here but, here’s a new programming language, called Roc Reminds me a bit of Elm and thus Haskell. ...
New
AstonJ
Was just curious to see if any were around, found this one: I got 51/100: Not sure if it was meant to buy I am sure at times the b...
New
AstonJ
This is cool! DEEPSEEK-V3 ON M4 MAC: BLAZING FAST INFERENCE ON APPLE SILICON We just witnessed something incredible: the largest open-s...
New