• Stars
    star
    168
  • Rank 225,507 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A WebDAV-like server to sync Tampermonkey scripts and edit them with an external editor

TamperDAV

A WebDAV-like server to sync Tampermonkey scripts and edit them with an external editor.

WARNING: this is not a 100% WebDAV-compliant server. Many clients should, but don't necessarily have to work!

Usage

Make sure Node.js greater than v4.9 is installed.

Windows

execute TamperDAV.bat

Linux

$ ./tamperdav.sh

Clients

Tampermonkey (4.7.5823+)

alt text

Notes:

  • in order to allow Tampermonkey to use the full TamperDAV feature set, please make sure TamperDAV is running when Tampermonkey is started.
  • Tampermonkey will sync all scripts into a subfolder of the configured dav-directory i.e. Tampermonkey/sync using it's internally generated UUID for the filename. The actual file to edit can easily be found by running node find_script_in_meta.js --name="My Script Name". Alternatively you can find the the UUID via Tampermonkey's UI by navigating to the script and retrieving it from the address bar.

mount

sudo mount -t davfs http://localhost:7000 /mnt

nautilus

dav://localhost:7000/

Development

# Install dependencies
$ npm install

# run
$ mkdir dav
$ node server.js --path=dav/

Config

All options can be set via config.json and/or command line. username and password can be set via environment as well.

Command Line Example

$ TD_USERNAME=derjanb TD_PASSWORD=secret node server.js --path=dav/ --port=6000

Config File Example

config.json:

{
    "path": "dav",
    "no-auth-warning": false,
    "username": "derjanb",
    "password": "secret",
    "port": "7000",
    "host": "localhost",
    "max-cursors": 512,
    "open-in-editor": "sublime_text",
    "meta-touch": true,
    "debug": true
}

All Options

  • path a relative path from where the files should be served
  • no-auth-warning don't show a warning if no username and password is set
  • username username for authentication (basic auth)
  • password password
  • port TCP port to listen at
  • host network address to bind on
  • max-cursors number of cached changes
  • open-in-editor if "true" then if Windows "notepad" editor is used, else xgd-open; or the executable as string i.e. "gedit", "notepad", ...
  • meta-touch touch a sync entries's meta file automatically to make Tampermonkey start a sync on script changes
  • no-dialog Disables the use of a dialog to show messages to the user
  • headless Implies --no-dialog and disables editor opening
  • debug print debug information