All Projects → soypat → rebed

soypat / rebed

Licence: BSD-3-Clause license
Recreates directory and files from embedded filesystem using Go 1.16 embed.FS type.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to rebed

Supertag
A tag-based filesystem
Stars: ✭ 207 (+800%)
Mutual labels:  filesystem
Sparsebundlefs
FUSE filesystem for reading macOS sparse-bundle disk images
Stars: ✭ 238 (+934.78%)
Mutual labels:  filesystem
Advanced-xv6
Modern improvements for MIT's xv6 OS
Stars: ✭ 26 (+13.04%)
Mutual labels:  filesystem
Gaufrette
PHP library that provides a filesystem abstraction layer − will be a feast for your files!
Stars: ✭ 2,397 (+10321.74%)
Mutual labels:  filesystem
Copy Webpack Plugin
Copy files and directories with webpack
Stars: ✭ 2,679 (+11547.83%)
Mutual labels:  filesystem
Tagsistant
Semantic filesystem for Linux, with relation reasoner, autotagging plugins and a deduplication service
Stars: ✭ 244 (+960.87%)
Mutual labels:  filesystem
Autarky
Liberating disk space from 📁 node_modules
Stars: ✭ 203 (+782.61%)
Mutual labels:  filesystem
kafka-connect-fs
Kafka Connect FileSystem Connector
Stars: ✭ 107 (+365.22%)
Mutual labels:  filesystem
Backup And Recovery Howtos
Guides to setting up a media storage system, backing it up, and recovering from failures
Stars: ✭ 235 (+921.74%)
Mutual labels:  filesystem
php-ftp-client
📦 Provides helper classes and methods to manage FTP files in an OOP way.
Stars: ✭ 81 (+252.17%)
Mutual labels:  filesystem
Aiofile
Real asynchronous file operations with asyncio support.
Stars: ✭ 214 (+830.43%)
Mutual labels:  filesystem
Filewatcher
A simple auditing utility for macOS
Stars: ✭ 233 (+913.04%)
Mutual labels:  filesystem
android-file-manager
A File Manager for Android
Stars: ✭ 19 (-17.39%)
Mutual labels:  filesystem
Tifs
A distributed POSIX filesystem based on TiKV, with partition tolerance and strict consistency.
Stars: ✭ 209 (+808.7%)
Mutual labels:  filesystem
sgfs
🚀Simple http file server. A open source file server, implement by golang that can be used to upload and download files. Simple to deploy, simple to use. 中文介绍:
Stars: ✭ 51 (+121.74%)
Mutual labels:  filesystem
Gotenksfs
A file system on top of your file system
Stars: ✭ 203 (+782.61%)
Mutual labels:  filesystem
Renamer
Rename files in bulk.
Stars: ✭ 240 (+943.48%)
Mutual labels:  filesystem
datoteka
A filesystem toolset and storage implementation for Clojure.
Stars: ✭ 59 (+156.52%)
Mutual labels:  filesystem
fatx
Original Xbox FATX Filesystem Library, Python bindings, FUSE driver, and GUI explorer
Stars: ✭ 87 (+278.26%)
Mutual labels:  filesystem
Sekura
Encryption tool that's heavily inspired by the Rubberhose file system (https://en.wikipedia.org/wiki/Rubberhose_(file_system)).
Stars: ✭ 51 (+121.74%)
Mutual labels:  filesystem

rebed

codecov Build Status Go Report Card go.dev reference Awesome Sourcegraph

Recreate embedded filesystems from embed.FS type in current working directory.

Expose the files you've embedded in your binary so users can see and/or tinker with them. See where is this useful for an application example.

Install with (requires Go 1.16+)

go get -u github.com/soypat/rebed

Five actions available:

//go:embed someFS/*
var bdFS embed.FS

// Just replicate folder Structure
rebed.Tree(bdFS, "")

// Make empty files
rebed.Touch(bdFS, "")

// Recreate entire FS
rebed.Write(bdFS, "")

// Recreate FS without modifying existing files
rebed.Patch(bdFS, "")

// Runs Patch if no conflicting file is found, else error.
err := rebed.Create(bdFS, "")

/* Walk allows you operate on each file as you wish */

Where is this useful?

You could theoretically embed your web development assets folder and deploy it. The binary could run from the working directory folder generated by rebed and users could modify the assets and change the website's look (to do this run rebed.Patch to not overwrite modified files). If asset files are lost or the site breaks, running rebed.Write replaces all files with original ones.

Contributing

I'll look at issues and pull requests. Add a clear explanation when doing so!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].