pasnox / qwbfsmanager

QWBFS Manager is a Wii games manager
62 stars 7 forks source link

Wishlist: Uncompress images before import to disk #16

Open pasnox opened 10 years ago

pasnox commented 10 years ago

From krypto...@gmail.com on November 20, 2011 14:48:07

Disck images are very large, and normally are compressed using some format (rar, zip, bz2). Uncompress all at one time is needed for importing several images to disk, needing very much disk space.

It would be great if qwbfs do the following algorithm:

This will be very usefull having a large list of images.

If you tell me where that code should be inserted, I could help implementing it.

Thanks.

Original issue: http://code.google.com/p/qwbfs/issues/detail?id=16

pasnox commented 10 years ago

From pasnox on November 22, 2011 10:27:26

Hi,

This will be a great feature, but i doubt to find a portable library for handling such formats ? Maybe 7Zip ?

I'm not yet sure about the place to put the code. The easier way would be to implement a feature i planned for the next version: abstract file systems so getting informations, reading from, writing to partitions / files can would be virtual and can allow some hook inside their custom implementations.

You can try to contact me directly on irc (irc://irc.freenode.net/monkeystudio), or using my gmail/jabber account, so we may extend this discution.

Status: Accepted
Labels: -Type-Defect Type-Enhancement

pasnox commented 10 years ago

From krypto...@gmail.com on November 26, 2011 18:57:15

I was looking for portable libraries, but I had no success. 7zip is not a library. Indeed, it only has libraries for 7z and lzma formats, for other formats it embeds code from other projects. Take code from all other projects is technically complex and legally risky, there are several licenses. The most simple solution may be 7zip be a requisite, and call directly "p7zip -d" from application. Other option is to configure the uncompress tool fior every format supported in application settings, but this option is worst for users.

I notice other great feature: terminal interface. It would be great can execute something like: qwbfsmanager -import -d /dev/sde1 image.iso qwbfsmanager -remove -d /dev/sde1 RDXP99

With these features, qwbfsmanager can be integrated in scripts, and much work can be automatized, even compress and uncompress.

Thanks.

pasnox commented 10 years ago

From pasnox on November 29, 2011 12:11:22

Effectively, we can request user to configure a file to 7zip binary, and use it by running a process, this is most likely the best thing to do.

Regarding your others features, it's good idea !

If u can comes with code, i will take it ! There is a pGetOpt class in the fresh library used by QWBFS Manager, u could use it to parse command line option.

Br,

Owner: pasnox

pasnox commented 10 years ago

From krypto...@gmail.com on December 02, 2011 13:56:44

Excuse me, I have try to write a patch, but I lost between qwbfs and libwbfs. Using pGetOpt of fresh library, my patch would be something like this:

pGetOpt opt; const QString imageName = new QString("image"); const QString deviceName = new QString("device"); QString* deviceNameptr; QString* imageNameptr; bool isNoGUI; opt.addOption("i",imageName, imageNameptr);// -iImage.iso OR --image=Image.iso opt.addOption("d",deviceName, deviceNameptr);// -d/dev/sda1 OR --device=/dev/sda1 opt.addSwitch("nogui", isNoGUI);// --nogui

if((imageNameptr!=null) && (deviceNameptr!=null)){

//Stimated image size? //There is enough space?

QWBFS::Model::Disc source = new QWBFS::Model::Disc(imageNameptr)

WorkerThread::isoToWBFS( WorkerThread::Task task, &source, deviceNameptr, bool trimWBFS, const QString& invalidChars )

}

if(isNoGUI) return;


But I dont know how to use the dozens of functions with similar names inside qwbfs.

Regrets.

pasnox commented 10 years ago

From pasnox on December 16, 2011 00:40:27

Thanks for the snippet, i will try to check that when i got time. No problem for the uncompress disk, i will try to look that too ;)