{"id":39542599,"url":"https://github.com/zevweiss/booze","last_synced_at":"2026-01-18T06:38:06.847Z","repository":{"id":45832772,"uuid":"12550444","full_name":"zevweiss/booze","owner":"zevweiss","description":"FUSE bindings for bash.","archived":false,"fork":false,"pushed_at":"2021-07-26T18:02:12.000Z","size":27,"stargazers_count":36,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-11T12:32:42.264Z","etag":null,"topics":["bash","fuse-filesystem"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zevweiss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-02T22:46:09.000Z","updated_at":"2023-03-11T12:32:42.265Z","dependencies_parsed_at":"2022-08-26T00:20:27.461Z","dependency_job_id":null,"html_url":"https://github.com/zevweiss/booze","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/zevweiss/booze","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevweiss%2Fbooze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevweiss%2Fbooze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevweiss%2Fbooze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevweiss%2Fbooze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zevweiss","download_url":"https://codeload.github.com/zevweiss/booze/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevweiss%2Fbooze/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28531997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","fuse-filesystem"],"created_at":"2026-01-18T06:38:06.338Z","updated_at":"2026-01-18T06:38:06.836Z","avatar_url":"https://github.com/zevweiss.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"booze\n=====\n\nFUSE bindings for bash.\n\nIf you, like me, have ever had the desire to create a FUSE filesystem\nfrom a shell script, this may be just the thing for you.\n\nbooze compiles to a shared library (`booze.so`) that you can load into\nbash via its `enable -f` feature.  It adds a new builtin to bash,\n`booze`, that mounts a FUSE filesystem and shuffles data back and\nforth between libfuse and bash functions in your script.\n\nIts `help` text gives a basic description of how to use it:\n\n    booze: booze [-df] FN_ASSOC MOUNTPOINT\n        Mount a booze filesystem at MOUNTPOINT using functions in FN_ASSOC.\n\n        Options:\n          -d: debug mode (implies -f)\n          -f: run in foreground\n\n        FN_ASSOC must be an associative array.  Any keys it contains that match\n        one of the following FUSE operation names will cause that FUSE operation\n        to be implemented by the bash function named by the value corresponding\n        to the key:\n\n            getattr\n            access\n            readlink\n            readdir\n            mknod\n            mkdir\n            unlink\n            rmdir\n            symlink\n            rename\n            link\n            chmod\n            chown\n            truncate\n            utimens\n            open\n            read\n            write\n            statfs\n            release\n            fsync\n            fallocate\n            setxattr\n            getxattr\n            listxattr\n            removexattr\n\n        If for any reason this doesn't seem like a good idea, the user is\n        encouraged to drink until it does.\n\nThe files `hello.sh` (a simple \"hello world\"), `passthrough.sh` (sort\nof like a bind mount), and `cowsayfs.sh` (filenames through cowsay!)\nprovide examples of functioning booze filesystems.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzevweiss%2Fbooze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzevweiss%2Fbooze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzevweiss%2Fbooze/lists"}