Metadata-Version: 2.1
Name: mine
Version: 1.8.post1
Summary: Share application state across computers using Dropbox.
Home-page: https://pypi.org/project/mine
License: MIT
Author: Jace Browning
Author-email: jacebrowning@gmail.com
Requires-Python: >=3.6,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: System
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: Utilities
Requires-Dist: YORM (>=1.4,<2.0)
Requires-Dist: crayons (>=0.1.2,<0.2.0)
Requires-Dist: minilog (>=0.3,<0.4)
Requires-Dist: psutil (>=2.1,<3.0)
Project-URL: Documentation, https://mine.readthedocs.io
Project-URL: Repository, https://github.com/jacebrowning/mine
Description-Content-Type: text/markdown

# Overview

This program lets you synchronize 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.

[![Build Status](https://img.shields.io/travis/jacebrowning/mine/master.svg)](https://travis-ci.org/jacebrowning/mine)
[![Coverage Status](https://img.shields.io/coveralls/jacebrowning/mine/master.svg)](https://coveralls.io/r/jacebrowning/mine)
[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/jacebrowning/mine.svg)](https://scrutinizer-ci.com/g/jacebrowning/mine/?branch=master)
[![PyPI Version](https://img.shields.io/pypi/v/mine.svg)](https://pypi.org/project/mine)

# Setup

## Requirements

- Python 3.6+

## Installation

Install `mine` with [pipx](https://pipxproject.github.io/pipx/installation/) (or pip):

```sh
$ pipx install mine
```

or directly from the source code:

```sh
$ git clone https://github.com/jacebrowning/mine.git
$ cd mine
$ python setup.py install
```

## Configuration

Create a `mine.yml` in your Dropbox:

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

Include the applications you would like `mine` to manage. Computers are added automatically when `mine` is run.

The `versions` dictionary identifies the name of the executable on each platform. The `properties.auto_queue` setting indicates `mine` should attempt to launch the application automatically when switching computers. The `properties.single_instance` setting indicates the application must be closed on other computers before another instance can start.

# Usage

To synchronize the current computer's state:

```sh
$ mine
```

To close applications on remote computers and start them locally:

```sh
$ mine switch
```

To close applications running locally:

```sh
$ mine close
```

To close applications locally and start them on another computer:

```sh
$ mine switch <name>
```

To delete conflicted files in your Dropbox:

```sh
$ mine clean
```

