Skip to main content

For applications that haven't learned to share.

Project description

mine

mine lets you syncronize application data using Dropbox.

It automatically starts and stops programs that would otherwise fight over data in a shared folder and ensures only one instance is running. Many applications work fine when their data is stored in Dropbox, but some programs overwrite databases:

  • iTunes
  • iPhoto
  • etc.

while others periodically write snapshot data:

  • Eclipse
  • Xcode
  • etc.

and some just don’t make sense to keep running on all your computers:

  • Slack
  • HipChat
  • etc.

Getting Started

Requirements

  • Python 3.3+

Installation

mine can be installed with pip:

$ pip3 install mine

or directly from the source code:

$ git clone https://github.com/jacebrowning/mine.git
$ cd mine
$ python3 setup.py install

Setup

Create a mine.yml in your Dropbox:

config:
  applications:
  - name: Eclipse
    queued: false
    versions:
      linux: eclipse
      mac: Eclipse.app
      windows: eclipse.exe
  - name: iTunes
    queued: true
    versions:
      linux: null
      mac: iTunes.app
      windows: null
  computers:
  - address: 00:11:22:33:44:55
    hostname: My-iMac.local
    name: My iMac
  - address: AA:BB:CC:DD:EE:FF
    hostname: My-MacBook-Air.local
    name: My MacBook Air

Include the applications you would like mine to manage. The versions dictionary identifies the name of the executable on each platform. The queued setting indicates it must be closed before anoter instance can start. Computers are added automatically when mine is run.

For remote application management, mine needs to be called periodically on each of your computers. Cron is good for this:

  1. find the full path to mine with $ which mine
  2. add a crontab scedule: */5 *   *   *   *   /full/path/to/mine

Basic Usage

To synchronize the current computer’s state:

$ mine

To close applications on remote computers and start them locally:

$ mine switch

To close applications locally an start them on another computer:

$ mine switch <name>

To delete conflicted files in your Dropbox:

$ mine clean

For Contributors

Installation

Create a virtualenv:

$ make env

Run the tests:

$ make test
$ make tests  # includes integration tests

Build the documentation:

$ make doc

Run static analysis:

$ make pep8
$ make pep257
$ make pylint
$ make check  # includes all checks

Prepare a release:

$ make dist  # dry run
$ make upload

Changelog

0.1 (2015/03/19)

  • Initial release.

Project details


Release history Release notifications

History Node

1.5

History Node

1.4.post2

History Node

1.4.post1

History Node

1.4

History Node

1.4.dev1

History Node

1.3

History Node

1.3.dev2

History Node

1.3.dev1

History Node

1.2

History Node

1.1

History Node

1.1b1

History Node

1.0

History Node

0.6.1

History Node

0.6

History Node

0.6.dev1

History Node

0.5

History Node

0.4.3.post1

History Node

0.4.3

History Node

0.4.2

History Node

0.4.1

History Node

0.4

History Node

0.3.dev4

History Node

0.3.dev3

History Node

0.3.dev2

History Node

0.3.dev1

History Node

0.2.1

History Node

0.2

History Node

0.1.2

History Node

0.1.1

This version
History Node

0.1

History Node

0.0.0

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page