ninox-d_fs 1.0.2
A abstraction for fs operations that also supports embedding
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
ninox.d-fs
This package provides an abstraction layer over read-access to the filesystem, with additional support for embedded filesystems.
License
The code in this repository is licensed under AGPL-3.0-or-later; for more details see the LICENSE
file in the repository.
Library
Filesystems implemented
ninox.fs.FolderFs
: a filesystem wrapper that is "mounted" onto a folder of the OS's native filesystem. UsegetOsFs
to simply get an instance of it (default is the cwd).ninox.fs.EmbeddedFs
: a filesystem that supports reading embedded data; mostly used via the embedding source generation (see below).
The ninox.fs.FS
interface
Each filesystem abstraction implements 4 actions:
File open(string name);
: opens the file specified vianame
and returns aninox.fs.File
handleDirEntry[] readDir(string name);
: reads the content of a dir specified vianame
and returns all entries in it as an array ofninox.fs.DirEntry
.void[] readFile(string name);
: reads the content of a file fully specified vianame
; returns avoid[]
that represents the buffer of the data read.FS sub(string dir);
: a special action: with this the package allows you to create an FS that is restricted to a portion of the initial filesystem.
Embedding
To embed files and whole directories into your applications you need to do the following:
- edit your project's
dub.json
- add a dependency for
ninox-d_fs
- add the package root to the
stringImportPaths
, i.e."stringImportPaths": [ "." ]
- add
dub run ninox-d_fs -- <package name>
topreGenerateCommands
- add a dependency for
- use following code snippet in your project:
imported!"<package name>.__embedded_data".xxx
Thexxx
part is freely chooseable, but needs to be unique for your project. - to add files and or folders to the embedded fs, add comments above the line where you used the snippet containing following directive:
ninox:embed <glob>
. The glob needs to begin with a/
to refer to the package root. Use as many lines as needed, but do not skip a line, since that will break the detection!
When now running and/or building the project, ninox.d-fs should automatically generate a sourcefile named __embedded_data.d
which contains the code for your embedded filesystem.
- Registered by Mai Lapyst
- 1.0.2 released 2 months ago
- Bithero-Agency/ninox.d-fs
- AGPL-3.0-or-later
- Copyright © 2023, Mai-Lapyst
- Authors:
- Dependencies:
- none
- Versions:
-
1.0.2 2023-Jul-30 1.0.1 2023-Jul-30 1.0.0 2023-Jul-30 ~master 2023-Jul-30 - Download Stats:
-
-
0 downloads today
-
1 downloads this week
-
3 downloads this month
-
12 downloads total
-
- Score:
- 0.3
- Short URL:
- ninox-d_fs.dub.pm