Caleb Gardner
89f28cec6e
Merge pull request #6 from stffabi/feature/support-reading-dot
...
Support reading "." for fs.FS
2021-12-02 07:40:27 -06:00
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