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 driveUse 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/corestoreUseful 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:5000URL 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