npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

drobadi

v1.1.3

Published

drobadi: a node tool to backup a given directory onto dropbox

Downloads

28

Readme

drobadi

Dropbox backup directory

A NodeJS tool to

  • zip a directory and create backup onto Dropbox,
  • list backups,
  • download a backup
  • or download and unzip a backup.

NPM

Command line usage

Setup

install drobadi

npm install drobadi@latest --global

set your preferences

A dropbox application (dropboxAppKey,dropboxAppSecret), and long-lived refresh-token (dropboxRefreshToken) are required.

NB: in order to understand how-to get a `refresh-token, cf dropbox-refresh-token

The old-long-lived access-token (dropboxToken) are always supported but this method is deprecated and will be removed in futur release.

drobadi setup

(first time only) create a drobadi config file ~/.drobadi

To remove this setup

drobadi unlink

NB: you could create other custom drobadi config files, and choose custom drobadi config file by using DBD_CONFIG_FILE env.

Show help

  • drobadi

show actions

Create a backup

  • drobadi backup <localDirectory> [<myBackup.zip>]

create a remote zip backup from local directory

Example: zip local directory ../tmp/backup/myDir then upload as dropbox backup /backup/biolo.zip

drobadi backup ../tmp/backup/myDir biolo.zip

This action will success if the target dropbox already exists with the same zip file.

This action will fail if a different target dropbox already exists (use forceBackup to override it).

backup is the default dropbox backup target directory and may be changed using options.

Create or override a backup

  • drobadi forceBackup <localDirectory> [<myBackup.zip>]

List backups

  • drobadi list
  • DBD_CONFIG_FILE=./tmp/myDrobadiConfig drobadi list

list remote backups

Download a backup

  • drobadi download <myBackup.zip> [<localFile.zip>]

download a remote backup into local file

Example: download dropbox file /backup/biolo.zip as local file ./biolo.zip

drobadi download biolo.zip

Example: download dropbox file /backup/biolo.zip as local file /tmp/ddd.zip

drobadi download biolo.zip /tmp/ddd.zip

Download and unzip a backup

  • drobadi downloadAndUnzip <myBackup.zip> [</local/path>]

download a remote backup and unzip it into local directory

Example: download dropbox file /backup/biolo.zip and unzip it into local directory ./biolo

drobadi downloadAndUnzip biolo.zip ./biolo

DOptions

Drobadi options are

  • dropboxAppKey (or DBD_DROPBOX_APP_KEY env. Default: null. Required) : dropbox application key.
  • dropboxAppSecret (or DBD_DROPBOX_APP_SECRET env. Default: null. Required) : dropbox application secret.
  • dropboxRefreshToken (or DBD_DROPBOX_REFRESH_TOKEN. Default: null. env. Required) : dropbox application refresh-token.
  • path (or DBD_PATH env. Default: backup) : dropbox target directory that receive backup files.
  • overrideTargetBackup (or DBD_OVERRIDE_TARGET_BACKUP env. Default: false) : override target backup file.

Deprecated option:

  • dropboxToken (or DBD_DROPBOX_TOKEN env. Default: null. DEPRECATED) : dropbox access-token value,
  • dropboxTokenDisableWarning (or DBD_DROPBOX_TOKEN_DISABLE_WARNING env. Default: false.*) : change-it to disable warning log.

Note that drobadi setup help you to create a ~/.drobadi config file.

DOptions precedence: options object, or env value or config file or default value.

Library use

Install dependency

You have to import as dependency

npm install drobadi

Define the requirements, example:

import {Drobadi, DOptions} from "drobadi";

const dOptions = new DOptions({
    "dropboxToken": 'My dropbox token is a secret',
    "path": "from-drobadi",
    "overrideTargetBackup": true
});
let drobadi = new Drobadi();

create a remote backup from local directory

let promiseResult =  drobadi.backup(dOptions, "./myData/", "dataBack.zip")

list remote backups

let promiseResult = drobadi.list(dOptions);

Restore remote backup in current directory

let promiseResult = drobadi.download(dOptions, "dataBack.zip")

Restore remote backup in a given local destination

var promiseResult = drobadi.download(dOptions, "dataBack.zip", "/home/user/incomming/restored.zip")

Restore remote backup and unzip it in a given local directory

var promiseResult = drobadi.downloadAndUnzip(dOptions, "dataBack.zip", "/tmp/restoreHere")

NB: you could also have a look at tests : drobadi.test.js

How to contribute

cf contributing guide

Services or activated bots

| badge | name | description | |--------|---------------------------------|:-------------------------------------------------------------------------| | CI/CD | Github actions | Continuous tests.
| Audit | Github actions | Continuous vulnerability audit.
| Reviewed by Hound| Houndci | JavaScript automated review (configured by .hound.yml) |