{ "info": { "author": "Yasin Zaehringer", "author_email": "yasin.zaehringer-kcb@yhjz.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: System :: Archiving", "Topic :: Utilities" ], "description": "# kcb\n\nPython helper to execute bash scripts inside KDEConnect's sshfs mount.\nThe main motivation behind this helper is to backup my\nsmartphone's photos and Whatsapp folders with a single command\nand without resorting to a file manager.\nThe approach however allows a whole range of possible use cases.\n\n\n## Installation and configuration\n\n```\npip3 install --user kcb\nmkdir ~/.config/kcb\nwget https://raw.githubusercontent.com/ReSqAr/kcb/master/Documentation/Examples/My%20Smartphone.sh -O ~/.config/kcb/\"PHONENAME.sh\"\nchown u+x ~/.config/kcb/PHONENAME.sh\npico ~/.config/kcb/PHONENAME.sh\n```\nOne has to repeat the last three lines such that in the end\nthe local `~/.config/kcb/` folder contains bash scripts for all phones.\nHere `PHONENAME` is a placeholder for the KDEConnect phone name\nand phones without a corresponding bash script are ignored.\nThese scripts can assume that they are run in the phone's sftp mount point,\ni.e. the folders `DCIM`, `Downloads`, `Android`, etc are actually directly visible.\nOne should note that the connection can drop,\nhence the bash script must be sufficiently resilient to avoid tears. \n\n\n### Example bash scripts\n\nThe following is a sample bash script which backups the photo folder, OSMAnd's GPS tracks and the WhatsApp folder to the local `~/MySmartphone` folder.\n\n```\nset -x\n\nTARGET=\"~/MySmartphone\"\n\necho \"file listing\"\nls\n\necho \"GPS Tracks\"\nrsync --human-readable --progress --archive --ignore-existing --itemize-changes --prune-empty-dirs \"Android/data/net.osmand.plus/files/tracks/rec/\" \"$TARGET/GPS Tracks/\"\n\necho \"WhatsApp\"\nrsync --human-readable --progress --archive --ignore-existing --itemize-changes --prune-empty-dirs \"WhatsApp/\" \"$TARGET/WhatsApp/\"\n\necho \"Photos\"\nrsync --human-readable --progress --archive --ignore-existing --itemize-changes --prune-empty-dirs \"DCIM/Camera/\" \"$TARGET/\"\n```\n\n\n## Usage\n\nSince we installed the `kcb` executable in `~/.local/bin/`,\nwe start the application via `~/.local/bin/kcb`.\nThere are multiple ways around that,\ni.e. being able to just type `kcb`;\none could add `~/.local/bin` to the `$PATH` variable for example\nor - however use that at your own peril - by running the `pip3` command as `root`.\n\nRegarding the command line parameters of `kcb`,\nyou can run `kcb` without any parameters\nin which case all bash scripts of all phones which are online are executed.\nOr you can list the names of the devices\nwhose bash scripts should be executed.\n\n\n### Example usage\n\nAssume that KDE Connect knows two smartphones named `OnePlus` and `Samsung S8`.\n\n- `kcb OnePlus` executes just `OnePlus.sh` (if it exists)\n- `kcb \"Samsung S8\"` executes just `Samsung S8.sh` (if it exists) \n- `kcb` executes both shell scripts (if they exist)\n- `kcb OnePlus \"Samsung S8\"` executes both shell scripts (if they exist)\n\n## License\n\nReleased under the [GPL 3](https://opensource.org/licenses/GPL-3.0).\n\n## Contact\n\nFor bug reports please use the GitHub bug tracker.\nI would love to hear from you about your thoughts/use cases/etc,\njust drop me a line via `yasin.zaehringer-kcb@yhjz.de`.\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ReSqAr/kcb", "keywords": "kdeconnect", "license": "", "maintainer": "", "maintainer_email": "", "name": "kcb", "package_url": "https://pypi.org/project/kcb/", "platform": "", "project_url": "https://pypi.org/project/kcb/", "project_urls": { "Homepage": "https://github.com/ReSqAr/kcb" }, "release_url": "https://pypi.org/project/kcb/0.9.3/", "requires_dist": [ "pydbus", "xdg" ], "requires_python": "", "summary": "Execute bash scripts on top of KDEConnect's sshfs mount", "version": "0.9.3" }, "last_serial": 4780395, "releases": { "0.9.2": [ { "comment_text": "", "digests": { "md5": "7018cc3430dbf95ee339d7d836b243a5", "sha256": "89620a35aa5e2471924e519a986913537769ff59a928e1078a164cd7114c1d2b" }, "downloads": -1, "filename": "kcb-0.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7018cc3430dbf95ee339d7d836b243a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19354, "upload_time": "2018-11-28T08:52:49", "url": "https://files.pythonhosted.org/packages/d8/ae/827a67a2c040c6e267a3333941d0ae946d367b87953f8837eed807b8410e/kcb-0.9.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d050f49fb50cc34966515437df4a532", "sha256": "ec7ab3cb316bc7d69bcba11fcc0575cb990517c67fcde1b922e98317803ac582" }, "downloads": -1, "filename": "kcb-0.9.2.tar.gz", "has_sig": false, "md5_digest": "2d050f49fb50cc34966515437df4a532", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6270, "upload_time": "2018-11-28T08:52:50", "url": "https://files.pythonhosted.org/packages/f9/36/ee0c71fe9be2ea9ea1f71e5fa5843ffb473f8dfd3a7a5f0673406e274908/kcb-0.9.2.tar.gz" } ], "0.9.2.1": [ { "comment_text": "", "digests": { "md5": "abc5a59e598ca626f7f14bf30c4f1025", "sha256": "687138e906aab4b0209e0dc190f957924826c835bdc35348788381ff151096c4" }, "downloads": -1, "filename": "kcb-0.9.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "abc5a59e598ca626f7f14bf30c4f1025", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19763, "upload_time": "2018-11-29T08:30:23", "url": "https://files.pythonhosted.org/packages/02/28/eafe15faeb531f61a7fd7ec3db54c006c218087e1228b887f9dc423d5b76/kcb-0.9.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d8567d33d8ddc36d9711ab2d7d70826", "sha256": "d4706de18aa5012773ec78095a554f417d06f6f77795c0532049cda613ab8c1e" }, "downloads": -1, "filename": "kcb-0.9.2.1.tar.gz", "has_sig": false, "md5_digest": "9d8567d33d8ddc36d9711ab2d7d70826", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6728, "upload_time": "2018-11-29T08:30:25", "url": "https://files.pythonhosted.org/packages/7f/6e/7902ef81596f43f057ae6ae4087d208e15f921d0eba762bef43aa62554c4/kcb-0.9.2.1.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "b3d3ad8f336382199c497cce4591d595", "sha256": "25e6b3837edd3fb0710e840b7e3cdd7716889d2f0621ebecd2a403a9b3c61e39" }, "downloads": -1, "filename": "kcb-0.9.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b3d3ad8f336382199c497cce4591d595", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9877, "upload_time": "2019-02-05T02:18:18", "url": "https://files.pythonhosted.org/packages/d4/92/7dbb8835a69fe98c0ad9c6dd0b3fc1b2249ebb0b7a769efa4584d3f91b39/kcb-0.9.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16a364cece56bb07246896f8aa51eb18", "sha256": "bae59e4c9d2d442be07f9e9a93931fc3c28ffdfbbb128cde2bb091c15956d5be" }, "downloads": -1, "filename": "kcb-0.9.3.tar.gz", "has_sig": false, "md5_digest": "16a364cece56bb07246896f8aa51eb18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6735, "upload_time": "2019-02-05T02:18:19", "url": "https://files.pythonhosted.org/packages/90/e4/02c6e9c36bdd0f3664ab9d7974d3dcb94b8aa5dc45d3c56cc2a8b198b6ab/kcb-0.9.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b3d3ad8f336382199c497cce4591d595", "sha256": "25e6b3837edd3fb0710e840b7e3cdd7716889d2f0621ebecd2a403a9b3c61e39" }, "downloads": -1, "filename": "kcb-0.9.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b3d3ad8f336382199c497cce4591d595", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9877, "upload_time": "2019-02-05T02:18:18", "url": "https://files.pythonhosted.org/packages/d4/92/7dbb8835a69fe98c0ad9c6dd0b3fc1b2249ebb0b7a769efa4584d3f91b39/kcb-0.9.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16a364cece56bb07246896f8aa51eb18", "sha256": "bae59e4c9d2d442be07f9e9a93931fc3c28ffdfbbb128cde2bb091c15956d5be" }, "downloads": -1, "filename": "kcb-0.9.3.tar.gz", "has_sig": false, "md5_digest": "16a364cece56bb07246896f8aa51eb18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6735, "upload_time": "2019-02-05T02:18:19", "url": "https://files.pythonhosted.org/packages/90/e4/02c6e9c36bdd0f3664ab9d7974d3dcb94b8aa5dc45d3c56cc2a8b198b6ab/kcb-0.9.3.tar.gz" } ] }