Poster | Thread |
salass00
| |
XADFileSystem development thread Posted on 4-Sep-2010 7:30:54
| | [ #1 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| For the last few days, this is what I've been working on:
When finished XADFileSystem is going to be to file archives what diskimage.device is to disk images. As you can see from the screenshot (click on it to make it bigger) you can already use it to mount and browse archives.
Note: Since xadmaster.library only supports reading from archives this will of course be a read-only filesystem. Last edited by salass00 on 04-Sep-2010 at 07:33 AM.
|
|
Status: Offline |
|
|
kas1e
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 7:36:42
| | [ #2 ] |
|
|
|
Elite Member |
Joined: 11-Jan-2004 Posts: 3550
From: Russia | | |
|
| |
Status: Offline |
|
|
salass00
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 7:59:37
| | [ #3 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| @kas1e
The xadmaster.library sources are here: http://sourceforge.net/projects/libxad/
I haven't looked at them so I don't know what is possible or not.
There's an alpha version of XADFS you can download here: http://a500.org/uploads/xad_fs.lha
To mount an archive with it you should do something like: setenv XADFS_TEMP_DIR RAM:T setenv XADFS_ARCHIVE Data:Downloads/xadmasterdev.lha mount XAD0: FROM XADFS.Mountlist
In the finished version this will of course be made much simpler.
Currently I am looking into what my filesystem should do when it receives a path that contains "PROGDIR:". ATM it doesn't understand this at all and returns ERROR_INVALID_COMPONENT_NAME. Last edited by salass00 on 04-Sep-2010 at 08:01 AM.
|
|
Status: Offline |
|
|
Sprocki
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 8:03:24
| | [ #4 ] |
|
|
|
Regular Member |
Joined: 18-Jul-2004 Posts: 212
From: Berlin - Germany | | |
|
| |
Status: Offline |
|
|
cha05e90
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 8:20:47
| | [ #5 ] |
|
|
|
Super Member |
Joined: 18-Apr-2009 Posts: 1275
From: Germany | | |
|
| @Sprocki
Hm - and I used the "XFH-Handler" a rather long time on my OS3.x setup - was really nice, but due to technical reasons (had only my 030 system) it was very slow sometimes... _________________ X1000|II/G4|440ep|2000/060|2000/040|1000 |
|
Status: Offline |
|
|
salass00
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 8:47:10
| | [ #6 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| @cha05e90
I ported XFH-Handler to OS4 in 2006.
@Sprocki
Quote:
Something like http://aminet.net/search?query=archandler which I use on OS3 since 1994 for that purpose? It only supports lha archives (so no full XAD support), but this it does very well. Besides wrong size information on the Workbench icon for free space on drives it should work on OS4, too. |
Don't know, never used it. XADFS is going to support all the formats that xadmaster.library supports through it's clients (f.e. I've already used it with 7-zip archives), also it should eventually support most, if not all of the new OS4 filesystem packets. |
|
Status: Offline |
|
|
salass00
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 9:41:01
| | [ #7 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| |
Status: Offline |
|
|
Sprocki
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 9:46:44
| | [ #8 ] |
|
|
|
Regular Member |
Joined: 18-Jul-2004 Posts: 212
From: Berlin - Germany | | |
|
| @salass00
Just download it and try. You will see how it works. Maybe it gives you some input for your project. Will it be possible to list the content of an archive directly by typing "dir xadmasterdev.lha"? Will there be tab completion/decompression on the fly?
Yes, it is sad that XAD still does not allow write access. |
|
Status: Offline |
|
|
kas1e
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 10:00:38
| | [ #9 ] |
|
|
|
Elite Member |
Joined: 11-Jan-2004 Posts: 3550
From: Russia | | |
|
| @Sprocki Quote:
Just download it and try. You will see how it works. Maybe it gives you some input for your project. Will it be possible to list the content of an archive directly by typing "dir xadmasterdev.lha"? Will there be tab completion/decompression on the fly?
|
In end, you can just setup your WB like this: you press on archive in WB, and it not spawn unarc for you, but spawn a window where is files from archive. Or for example you can use in end Filer, in which you will just press by mouse on archive, and it will jump you on files inside of archive with which you can operate (i trying right now to make little-shiti script to make it works with filler).
_________________ Join us to improve dopus5! zerohero's mirror of os4/os3 crosscompiler suites |
|
Status: Offline |
|
|
Sprocki
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 10:38:13
| | [ #10 ] |
|
|
|
Regular Member |
Joined: 18-Jul-2004 Posts: 212
From: Berlin - Germany | | |
|
| @kas1e
Yes, you can setup your own context menus everywhere but that is a lot of work. Most of archive handling I do on MorphOS where Ambient brings some useful context menu entries with it. On OS3 I mostly use ClassAct, UnArc or MiraWizARC while on AROS I use DOpus for browsing archives. But sometimes I also need to step inside from Shell, so an easy Shell handling is wanted, too. |
|
Status: Offline |
|
|
salass00
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 11:35:50
| | [ #11 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| @Sprocki
Quote:
Will it be possible to list the content of an archive directly by typing "dir xadmasterdev.lha"?
|
When it is finished I am thinking of making it possible to do something like: MountXAD xadmasterdev.lha Dir xadmasterdev.lha:
Quote:
Will there be tab completion/decompression on the fly?
|
Filename completion in Shell works same as with any other filesystem (this feature only requires working Lock()/UnLock() and Examine()/ExNext() implementation).
Files will be decompressed as needed into a temp directory that can be set with XADFS_TEMP_DIR variable (defaults to T:). Each instance of the filesystem has it's own subdirectory, with the same name as the device node, that is kept with an exclusive lock while the filesystem is running so that no other program can tamper with it. |
|
Status: Offline |
|
|
ChrisH
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 13:24:21
| | [ #12 ] |
|
|
|
Elite Member |
Joined: 30-Jan-2005 Posts: 6679
From: Unknown | | |
|
| @salass00 This sounds awesome! And will effectively add a DOpus5-like ability to Filer (and WB), rather like FtpMount already does for FTP. Sad there is no write access, but I can't remember if DOpus5 supported that either (probably not since it was all done using some clever scripts). _________________ Author of the PortablE programming language. It is pitch black. You are likely to be eaten by a grue... |
|
Status: Offline |
|
|
Fab
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 14:40:12
| | [ #13 ] |
|
|
|
Super Member |
Joined: 17-Mar-2004 Posts: 1178
From: Unknown | | |
|
| @Sprocki
You can also mount it normally from morphos with a mountlist, obviously. Or see how ambient code mounts it if you want a more practical way. |
|
Status: Offline |
|
|
Hypex
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 15:02:24
| | [ #14 ] |
|
|
|
Elite Member |
Joined: 6-May-2007 Posts: 11230
From: Greensborough, Australia | | |
|
| I'm seeing all this talk of write access but to me this doesn't make sense. Yes it would be nice but we are talking about archives, not a disk filing system!
How far do we mean by write access? For adding a file yes that should be simple but how would it know one is being added?
For writing more files makes it worse as you are talking about modifying a linear formatted file archive and trying to insert/replace data inside it. This would require the file to be split up and rewritten. In the end the whole file would have to be recreated.
Even if it did this, how would it know when to commit the changes to disk, and remaking it? Cache changes and commit every 5 seconds? Or 5 seconds after no activity? Then if you add another file, oops, recreation again!
I don't think write access to archives it viable. Having a feature would be too free. And without understanding what's involved easily abused by software or the user that treats it like a normal drive. |
|
Status: Offline |
|
|
salass00
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 17:59:05
| | [ #15 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| |
Status: Offline |
|
|
Fab
| |
Re: XADFileSystem development thread Posted on 4-Sep-2010 18:36:10
| | [ #16 ] |
|
|
|
Super Member |
Joined: 17-Mar-2004 Posts: 1178
From: Unknown | | |
|
| @kas1e
To reply your question from the other thread, by using temporary files, it should be reasonably fast (once unpacked, it won't have to be extracted again and again and again), but at expense of memory, obviously. |
|
Status: Offline |
|
|
salass00
| |
Re: XADFileSystem development thread Posted on 5-Sep-2010 8:46:45
| | [ #17 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| XADFileSystem 52.1 is now available on OS4Depot.
This includes MountXAD command for easy mounting of archives. |
|
Status: Offline |
|
|
kas1e
| |
Re: XADFileSystem development thread Posted on 5-Sep-2010 8:55:56
| | [ #18 ] |
|
|
|
Elite Member |
Joined: 11-Jan-2004 Posts: 3550
From: Russia | | |
|
| @fab 1gb of memory will be imho enough for many archives. When they (archives) will be bigger (like 4gb of game or kind), then we can change path to extract to the filesystem.
Btw, how xadfs are used in the ambient ? I mean ambient also do "mount archive_name" and on ambient desktop you can see mounted archive as partition ? And how ambient detect when you need to dismount partition (and how its done, also by dismount xad0: ? )
@salas00 Cool !
I just trying to understand for now, how integrate it to Filer. I.e. when you press on archive, it can do : MounXAD {f} , but how detect action, when you exit from archive and dismount it ? Or how detect that XAD0: are mounted, and need to mount XAD1: and so on (if new archive are need it). Looks like need some clever scripts for
@Hypex Quote:
I'm seeing all this talk of write access but to me this doesn't make sense. Yes it would be nice but we are talking about archives, not a disk filing system!
|
Are you still use os4 at all ?:) Looks like not. Because having archives like disk file systems its cool and awesome. And if it will support writing, then it will be not only "ok", but very cool, easy for usage, easy for works, speed up all the work related to archive. I have very offten use total comander on winxp, and its awesome when you go to archive, and can write to it from another partition without problem, without running any scripts and so on. If XAD will support writing, i even will pay for it.Last edited by kas1e on 05-Sep-2010 at 09:00 AM.
_________________ Join us to improve dopus5! zerohero's mirror of os4/os3 crosscompiler suites |
|
Status: Offline |
|
|
salass00
| |
Re: XADFileSystem development thread Posted on 5-Sep-2010 9:59:43
| | [ #19 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| @kas1e
Quote:
I just trying to understand for now, how integrate it to Filer. I.e. when you press on archive, it can do : MounXAD {f} , but how detect action, when you exit from archive and dismount it ? Or how detect that XAD0: are mounted, and need to mount XAD1: and so on (if new archive are need it). Looks like need some clever scripts for
|
I've not used any of the newer Filer versions so I don't know what functions it has but would it make your job easier if I added a dismount switch to MountXAD command?
Think something like this: mountxad blah.lha and then when you're done: mountxad blah.lha dismount
|
|
Status: Offline |
|
|
kas1e
| |
Re: XADFileSystem development thread Posted on 5-Sep-2010 10:05:41
| | [ #20 ] |
|
|
|
Elite Member |
Joined: 11-Jan-2004 Posts: 3550
From: Russia | | |
|
| @salass00
Dunno how detect the moment "when you're done". I mean when you press on archive name, then you can do what you want (xadmount {f}) and then, say to filer to go at the XAD0: partition. But how detect when you "exit" from archive ?
Interesting how its done in ambient .. But anyway, "dismount" argument for xadmount will be good too.
EDIT: btw, i think that we can make a script, which will check "if xad0: are mounted, then unmount it". I.e. for user side it will mean: user press on archive, do whatewer he want, and forget about. Then , when he press on second archive, first one auto-unmounts, and new one are mounts. But that of course will not allow to mount more than one archive at time (can be bad sometime). Last edited by kas1e on 05-Sep-2010 at 10:59 AM. Last edited by kas1e on 05-Sep-2010 at 10:06 AM.
_________________ Join us to improve dopus5! zerohero's mirror of os4/os3 crosscompiler suites |
|
Status: Offline |
|
|