Metadata-Version: 2.0
Name: mine
Version: 0.1.2
Summary: For applications that haven't learned to share.
Home-page: https://github.com/jacebrowning/mine
Author: Jace Browning
Author-email: jacebrowning@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
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.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: System
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: Utilities
Requires-Dist: YORM (~=0.4)
Requires-Dist: psutil (~=2.1)

mine
====

| |Build Status|
| |Coverage Status|
| |Scrutinizer Code Quality|
| |PyPI Version|
| |PyPI Downloads|

``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:

#. find the full path to ``mine`` with ``$ which mine``
#. 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

.. |Build Status| image:: http://img.shields.io/travis/jacebrowning/mine/master.svg
   :target: https://travis-ci.org/jacebrowning/mine
.. |Coverage Status| image:: http://img.shields.io/coveralls/jacebrowning/mine/master.svg
   :target: https://coveralls.io/r/jacebrowning/mine
.. |Scrutinizer Code Quality| image:: http://img.shields.io/scrutinizer/g/jacebrowning/mine.svg
   :target: https://scrutinizer-ci.com/g/jacebrowning/mine/?branch=master
.. |PyPI Version| image:: http://img.shields.io/pypi/v/mine.svg
   :target: https://pypi.python.org/pypi/mine
.. |PyPI Downloads| image:: http://img.shields.io/pypi/dm/mine.svg
   :target: https://pypi.python.org/pypi/mine

Changelog
=========

0.1.2 (2015/05/17)
------------------

- Upgrade to YORM v0.4.

0.1.1 (2015/03/19)
------------------

 - Initial release.



