CLI to seed, mirror, and serve a Hyperdrive or Localdrive
npm i -g drives
Usage: drives [command] [options]
Commands:
init Initializes a new storage on the cwd
touch Create a writable Hyperdrive
mirror <src> <dst> Mirror a drive into another drive
ls <src> [path] List files of the drive
seed [key] Share a Hyperdrive
download <key> Archive download a Hyperdrive by key
serve <src> Creates a HTTP drive server
put <src> <path> <blob> Create a file
entry <src> <path> Show a single entry file
get <src> <path> Show the file content
rm <src> <path> Delete a file
info <key> Show info about the Hyperdrive
purge <key> Delete all local storage of the drive
Use drives --help
for more information, drives mirror --help
, etc.
By default, it tries to use .drives
from the current directory.
If it doesn't exists then it will go back ../
until it finds an existing .drives
.
If it doesn't find anything, then it will create and use a global folder at ~/.drives
.
You can always set --storage [path]
to force a different location.
It creates the .drives
storage folder in the current working directory.
drives init
# Notice: new storage at /home/user/Desktop/my-project/.drives/corestore
Useful to avoid doing a parent lookup, and not using the home folder.
drives touch
# New drive: <z32 key>
Source and destination can be a folder path or a drive key.
drives mirror <src> <dst>
Use --live
for real-time mirroring.
Use --dry-run
to disable writing changes. There is --help
for more.
Note: it ignores .drives
, .git
, .github
, .DS_Store
, and package-lock.json
entries.
drives ls <key or path>
drives seed [my-drive-key]
Continuous download
with all past historical states, useful to checkout on older versions:
drives download <my-drive-key>
drives serve <key or path>
# HTTP server on http://localhost:5000
URL requests are like /path/to/file
, i.e. http://localhost:5000/index.js
.
For security, requests to /.drives/*
are rejected, so mind the storage location!
drives info <my-drive-key>
Apache-2.0