Commit Graph
100 Commits
Author SHA1 Message Date
Caleb Gardner e8a8c531a9 Tweaks to make FromReader work 2021-09-27 01:27:58 -05:00
Caleb Gardner 80ff4466ae Added new test 2021-09-26 22:36:30 -05:00
Caleb Gardner 64055a8a63 Improved testing 2021-09-26 19:10:43 -05:00
Caleb Gardner 0402b0a2ee Bringing rawreader from expiremental branch.
Now allows creation of a squashfs.Reader from an io.Reader
2021-09-26 18:30:08 -05:00
Caleb Gardner 305f261d10 Add Lzo decompressor and Xz decompressor with filters 2021-09-12 05:26:47 -05:00
Caleb Gardner 70e3d81427 Some musings on what to do. 2021-04-30 03:32:31 -05:00
Caleb Gardner 6ad6857d8d Renamed files to make them more clear
Trying to figure out how to write. Might have to keep tables uncompressed for now.
2021-04-30 02:52:27 -05:00
Caleb Gardner 7cf15d48c7 Getting back into it. Maybe. 2021-04-04 09:39:28 -05:00
Caleb Gardner 28f39cf315 Updated libraries.
Replaced builtin zlib with faster library.
2021-04-03 10:14:12 -05:00
Caleb Gardner 7f5fa3ba1f Some quick fixes for "correctness" 2021-04-03 01:17:09 -05:00
Caleb Gardner 2a8310a724 Updated README 2021-02-27 01:58:01 -06:00
Caleb Gardner 8ad4d30bc7 Merge branch 'main' of https://github.com/CalebQ42/squashfs 2021-02-27 00:50:40 -06:00
Caleb Gardner b6fbd63ba4 Makes sure folders are created when files are added
Added some comments
2021-02-27 00:49:40 -06:00
Caleb Gardner 9913b848c6 Added some data writing logic. 2021-02-26 01:53:16 -06:00
Caleb Gardner 65bc4a5d78 More work on fragments. 2021-02-25 06:22:57 -06:00
Caleb Gardner c9d451e24c Added fragment calculations (untested). 2021-02-25 03:17:20 -06:00
Caleb Gardner ae5ade0683 Merge pull request #3 from CalebQ42/go1.16_fs3
Added 1.16 io/fs interfaces
2021-02-24 23:40:20 -06:00
Caleb Gardner a7b6801d2b Merge branch 'main' into go1.16_fs3 2021-02-24 23:39:45 -06:00
Caleb Gardner a123935250 Added more necessary parts to compression. 2021-02-24 05:58:18 -06:00
Caleb Gardner 8a91e1a1c1 Getting back into it... 2021-02-23 22:26:15 -06:00
Caleb Gardner 07962426b2 Minor work on the Writer 2021-02-03 14:03:21 -06:00
Caleb Gardner d89153c3e2 Finished io/FS interface 2021-01-30 06:30:00 -06:00
Caleb Gardner 3f1b2a8d1e Restructure for 1.16 io/fs interface 2021-01-29 12:55:57 -06:00
Caleb Gardner 3691e1f486 Merge pull request #2 from srevinsaju/patch-1
fix: typo in readme
2021-01-27 08:35:41 -06:00
Caleb Gardner dd08d3516d Reader will now check BlockLog 2021-01-20 14:10:14 -06:00
Caleb Gardner 8dba30e24f Some setup for 1.16 2021-01-20 12:55:39 -06:00
Caleb Gardner d4e2577075 More work on writing 2021-01-17 02:09:13 -06:00
Caleb Gardner 23371163c0 Merge branch 'main' of https://github.com/CalebQ42/squashfs 2021-01-16 15:43:04 -06:00
Caleb Gardner 69f56d6951 Working on how to actually write the archive.
Made SuperblockFlags public so you can set options when writing
2021-01-16 15:42:55 -06:00
Caleb Gardner 17e1d65488 Fixed Extended Files 2021-01-16 03:09:48 -06:00
Caleb Gardner 80946f58e7 Fixed issue with Extended Symlinks
Removed some shadowed err's
2021-01-16 01:32:00 -06:00
Caleb Gardner 4187598783 A couple of fixes.
GetChildrenRecursively is no longer threaded so it's more consistent
Fixed GetFileAtPath, specifically when getting the root dir
2021-01-15 10:57:03 -06:00
Caleb Gardner 9cf92c4916 Removed some shadowed values (thanks gopls) 2021-01-13 11:45:10 -06:00
Caleb Gardner 407d649b3d Finished FixSymlinks (in theory) 2021-01-13 06:02:15 -06:00
Caleb Gardner dcf59a4261 The root inode is now only initialized once.
Privated File.Reader because it really shouldn't be public.
2021-01-12 01:43:03 -06:00
Caleb Gardner 1506ca0ac3 updated dependencies 2021-01-10 04:39:19 -06:00
Caleb Gardner fe9344b633 Fixed issue with not all data being extracted with ExtractTo 2021-01-10 04:25:09 -06:00
Caleb Gardner 76649fde7f Implemented WriteTo which halves decompress times.
Added a drag race benchmark (for the fun of it)
2021-01-10 03:33:33 -06:00
Caleb Gardner ee9406513c Added a new test for fun to compare vs unsquashfs 2021-01-09 10:15:56 -06:00
Caleb Gardner 18092c63aa Some cleanup, no change in functionality 2021-01-09 09:53:58 -06:00
Caleb Gardner b2d6ff56f6 Added uid/guid support.
Added permission support.
2021-01-09 02:30:04 -06:00
Caleb Gardner 4b3d5d12f8 Setup for differnet types of compression for Writer
Added some TODOs
2021-01-08 14:35:32 -06:00
Caleb Gardner 3f71404a2a Re-Write of the Writer to make it simpler 2021-01-08 05:09:38 -06:00
Caleb Gardner 35d22b4bd0 Removed close function from squashfs.File
This seems to cause issues in ver specific circumstances and ultimately, isn't needed.
2021-01-06 12:56:09 -06:00
Caleb Gardner 97b12090c6 Trying to figure out the best way to convert files 2021-01-05 05:53:16 -06:00
Caleb Gardner 43fe4f91a2 More work on Writer
Adding files to the Writer should work properly now (except symlinks)
Threaded the adding of files.
Added ability to ignore errors when adding files.
2021-01-03 04:39:39 -06:00
Caleb Gardner 9524a2c192 More work on Writer 2021-01-02 17:10:21 -06:00
Caleb Gardner 162b228881 Some beginning work on squashfs.Writer
Just laying out some of the functions and what they do.
2021-01-01 10:54:09 -06:00
Caleb Gardner 7f87999a8f Merge branch 'main' of https://github.com/CalebQ42/squashfs into main 2020-12-28 11:51:08 -06:00
Caleb Gardner 47c28baf87 Improved data structure for structs.
Thanks gopls with VS Code
2020-12-28 11:50:56 -06:00
Caleb Gardner a298a3d7b5 Fixed first byte of data blocks being cut off 2020-12-27 02:10:51 -06:00
Caleb Gardner 89ec7eb0fb Fixed GetSymlinkFile
Added GetSymlinkFileRecursive
2020-12-16 02:39:35 -06:00
Caleb Gardner d63ba47818 Added Reader.ModTime 2020-12-11 01:39:08 -06:00
Caleb Gardner 495d2345a4 File now implements os.FileInfo 2020-12-11 01:38:53 -06:00
Caleb Gardner 6dfcb1cf80 Merge branch 'main' of https://github.com/CalebQ42/squashfs into main 2020-12-10 08:52:58 -06:00
Caleb Gardner c7593eaff3 Added Reader.ExtractTo for ease of use 2020-12-10 08:52:49 -06:00
Caleb Gardner 135403032f Updated README 2020-12-09 01:45:58 -06:00
Caleb Gardner 5c3bf8d528 Implemented the rest of the compression types
Haven't implemented LZO due to limited libraries
2020-12-09 01:40:30 -06:00
Caleb Gardner 1da97137a5 Implemented #1
You can dereference a symlink when extracting.
2020-12-08 09:41:10 -06:00
Caleb Gardner e5d4d0902f Finished wildcard support.
Realized that path.Match works perfectly for my wildcard needs.
2020-12-07 10:41:45 -06:00
Caleb Gardner c0f3695cca Working on wildcards before next release. 2020-12-05 15:05:19 -06:00
Caleb Gardner 89b0a41ab9 Figured out it was the filters for XZ that was causing problems
Added lzma and xz decompression.
Renamed Zlib to Gzip
2020-12-04 05:36:58 -06:00
Caleb Gardner a894e2efb9 Removed XZ compression.
When testing the archlinux, xz compression couldn't seem to extract ANY files.
Testing extraction with the appimage works though. So that's good.
2020-12-02 01:56:24 -06:00
Caleb Gardner fef7bec20d Extracting is mostly finished.
Fixed reading metadata and data blocks that are the exactly correct size
2020-12-02 01:05:31 -06:00
Caleb Gardner 28bb0f873a Things just aren't working right now...
Had to re-write a seemingly fine for loop because it wouldn't increment
Extracting just isn't working right now.
I'm waaaay too tired for this right now, lol.
2020-12-01 15:29:25 -06:00
Caleb Gardner e302d98665 Further work on extracting
Extracting files is threaded with goroutines.
Extracting also sets the proper UID and GUID
Made recursive children getting threaded with goroutines
Decided I will allow wildcards in paths. Hasn't been implemented though.
Fixed issues with ExtendedDirectory reading (I was using a uint16 instead of a uint32)
I couldn't test basically any of this. somehow a for loop isn't incrementing. For seemingly no reason.
2020-12-01 06:14:09 -06:00
Caleb Gardner 1254df2861 Working on extracting files. 2020-11-30 15:13:47 -06:00
Caleb Gardner c5c6291643 Some more work on ExtractTo
Added Xz compression support
Started testing using a big squashfs fil (particularly the squashfs from an Arch Linux install img)
2020-11-30 03:53:57 -06:00
Caleb Gardner 508a33b323 Starting work on ExtractTo from File
When using ExtractTo, will automatically set the correct permissions
Will also be able to extract folders
2020-11-29 15:55:06 -06:00
Caleb Gardner c5f1962e72 Some documentation changes 2020-11-29 03:07:34 -06:00
Caleb Gardner faf9153323 Added zlib compression for absolutely zero reason 2020-11-28 11:05:38 -06:00
Caleb Gardner e20213c3f7 Reorganization. 2020-11-28 05:03:56 -06:00
Caleb Gardner edd63a422b Support for ../ in directory paths 2020-11-28 02:39:58 -06:00
Caleb Gardner 938fd30d73 Updated README 2020-11-28 02:35:46 -06:00
Caleb Gardner cea69188d4 Symlink file support
You can get the path that the symlink is pointing to, AND get the squashfs.File for it.
You can also now give a path FROM a given squashfs.File directory.
2020-11-28 02:22:48 -06:00
Caleb Gardner 23ec7ea6dd First version of File interface.
This will allow you to easily find and extract files.
Extraction of whole folders coming next. (Maybe)
2020-11-27 00:36:21 -06:00
Caleb Gardner 8358cb2805 Added a couple ways to find a particular file. 2020-11-26 09:16:55 -06:00
Caleb Gardner 9471b93ead Working on a better API to interact with squashfs
New API uses a File that can hold more information.
2020-11-26 03:47:44 -06:00
Caleb Gardner 77222f55f5 More setup for Files. 2020-11-25 13:57:38 -06:00
Caleb Gardner 9beca864c3 Starting work on file.
File will be the primary way to interact with squashfs files in the future.
I will be making Files for both reading and writing
2020-11-25 13:20:42 -06:00
Caleb Gardner b28b4ae978 Test now use a straight appimage.
Reads straight from the appimage instead of extracting the squashfs first
2020-11-25 12:12:16 -06:00
Caleb Gardner 426903a222 Renamed library to squashfs for ease of use 2020-11-25 10:51:59 -06:00
Caleb Gardner dcb26057fa Updated README 2020-11-25 08:57:18 -06:00
Caleb Gardner b21d16d5aa Added documentation badge 2020-11-25 08:38:58 -06:00
Caleb Gardner f38db6107f updated go module 2020-11-25 08:32:43 -06:00
Caleb Gardner c0291e3ac7 Made a few straggler functions private 2020-11-25 08:31:24 -06:00
Caleb Gardner afbc991f60 Made most functions private.
This will probably be the first version of the library.
2020-11-25 08:27:15 -06:00
Caleb Gardner 5d888eb761 Updated README 2020-11-25 04:30:41 -06:00
Caleb Gardner f0f32a2445 FILE EXTRACTION WORKS! 2020-11-25 04:26:48 -06:00
Caleb Gardner af36f9b9aa Documentation!
Though may functions/structs will be made private, I still want things documented.
2020-11-25 01:15:54 -06:00
Caleb Gardner 4f058f2f31 Working on file reading (Not working right now) 2020-11-24 22:26:16 -06:00
Caleb Gardner 5761ad59cf Renamed BlockReader to MetadataReader (more correct)
SOME work on fragments (not working still...)
2020-11-23 16:50:00 -06:00
Caleb Gardner ae2cc5ab54 Working on fragments 2020-11-23 06:44:39 -06:00
Caleb Gardner de45fc927d Updated README 2020-11-20 17:04:09 -06:00
Caleb Gardner 9d03089530 Updated README 2020-11-20 17:03:16 -06:00
Caleb Gardner fd69ad54c6 More work on data reading 2020-11-20 17:01:45 -06:00
Caleb Gardner fe0f4ef05f Working on reading data.
Set up go modules
2020-11-20 03:59:38 -06:00
Caleb Gardner bc9adf8ade You can lookup an inode via a string path now
Removed DecompressCopy (as I wasn't using it)
Started work on fragments
2020-11-19 22:27:10 -06:00
Caleb Gardner 33af16071d I can now read the entire directory structure. 2020-11-19 13:27:13 -06:00
Caleb Gardner d43ed54874 Updated README 2020-11-19 10:57:29 -06:00