{ "info": { "author": "Nahim El Atmani", "author_email": "nahim+dev@naam.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Communications :: File Sharing", "Topic :: System :: Archiving" ], "description": "What is shup?\n=============\n\nshup is a small tool made for those who care about sharing files, or\nsimply for those who want to frequently upload files to some redundant\ntargets. The primary reason why shup was built is uploading files to a\ndirectory under the supervision of an http server so that it becomes\nsuper easy to share files with urls like\nhttp://files.example.com/surprise.png just by running:\n\n``shup mywebsite ~/Pictures/surprise.png``\n\n*mywebsite* is a rule tag, we\u2019ll see that later.\n\n.. figure:: https://files.naam.me/shup/screencast.gif\n :alt: Demo\n\n Demo\n\nInstall\n=======\n\nYou can install shup using pypi like so: ``pip3 install shup``.\n\nAlso be sure to have ``at`` command on your remote machines (and the atd\nrunning):\n- `Debian `__\n- `Arch `__\n- `CentOs 7 `__\n\n``at`` is used to delay the remove command, otherwise your files won't be deleted\nlater.\n\nHow to use it?\n==============\n\nIntro\n-----\n\nLet\u2019s say you own example.com and the subdomain files.example.com point\nto a directory managed by your http server like */www/static/*. The goal\nof shup is to avoid doing the same boring thing everytime. Let\u2019s write a\nbasic configuration rule once for this directory on example.com. If you\nhave the same session name on your remote machine as your local machine,\nno need to specify it. Let\u2019s say you also want that every file expire\none week after creation by default on that directory. Since we dont\nshare critical info here no need to use anything else than simple ``rm``\ncommand for deletion. Also in this example you're using a key protected with a\npassword that you don't want to save in your configuration file. Here is the\nconfiguration you would write in that situation:\n\n::\n\n [example_static]\n ssh_host = example.com\n ssh_keyfile = ~/.ssh/id_rsa\n file_path = /www/static\n file_ttl = 1w\n\nNow we can start uploading file as simply as:\n``shup -u example_static look_at_this.webm``. As the arguments supersede\nthe configuration files we can also overwrite the TTL of the file and\nthe way it\u2019s deleted for example:\n``shup -t 2h -d 'shred -n 200 -z -u' -u example_static sensible_file.tar.bz2``\nIf you only have one rule and what it to be your default one just use the rule\ntag ``[default]``. The first command can now be run ``shup look_at_this.webm``.\n\nConfiguration files\n-------------------\n\nshup will automatically try to read configurations files (*shup.cfg*) in\nboth your pip3 installation folder and ``~/.config/shup/shup.cfg`` in that\norder. Please note that the latter supersede the former as the arguments\ndo with configuration files. A default target should be specified in one\nof the configuration files in order to use shup withou the rule argument\n(``-u``).\n\nHelp\n----\n\nHere is the output of ``shup -h``:\n\n::\n\n usage: shup [-h] [-u name] [-v] [-d path] [-t time] [-p perms] [-l ret]\n [-r | -c | --cksum algorithm]\n file [file ...]\n\n positional arguments:\n file file that should be upload following the rule given by\n the optional `--rule' argument\n\n optional arguments:\n -h, --help show this help message and exit\n -u name, --rule name target rule to follow, contains everything from host\n informations to the destination folder and the TTL of\n the file if specified. If not specified, shup search\n for a section 'default' in the configuration files\n -v, --verbose increase the output verbosity during the operation\n (increase with vv or vvv)\n -d path, --delwith path\n set the binary used to delete the binary when the TTL\n reach 0\n -t time, --ttl time set the time while the file will stay on the remote\n host before being deleted\n -p perms, --permissions perms\n set the file permissions in octal mode, default is\n 0644\n -l ret, --file-return ret\n set the file return path\n -r, --randomize randomize filename\n -c replace the filename by the file's checksum following\n 'file_cksum' rule in configuration files or SHA1 if\n nothing specified\n --cksum algorithm like -c but following the command line argument\n 'algorithm'\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Naam/shup", "keywords": "upload sharing share file tool upload snippet code image", "license": "GPL3", "maintainer": "", "maintainer_email": "", "name": "shup", "package_url": "https://pypi.org/project/shup/", "platform": "", "project_url": "https://pypi.org/project/shup/", "project_urls": { "Homepage": "https://github.com/Naam/shup" }, "release_url": "https://pypi.org/project/shup/0.2.0/", "requires_dist": [ "paramiko (>=1.16.0)", "progressbar2 (>=3.34.3)" ], "requires_python": ">=3", "summary": "File sharing (images, code snippets, movies...) made easy.", "version": "0.2.0" }, "last_serial": 3524718, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "230bbcf0ed64c12cdffbdfd2889d6616", "sha256": "8cc7f722860e1e177f49f250d9b5f862538da7f41a502d187d4fb5072b50118d" }, "downloads": -1, "filename": "shup-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "230bbcf0ed64c12cdffbdfd2889d6616", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12456, "upload_time": "2018-01-21T02:08:14", "url": "https://files.pythonhosted.org/packages/3c/68/0572ffe2a9eb27610ae277bf739bd5b921bc1bb952607abeb955838d3d78/shup-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb6e497167af181d5ec1351fa3e79328", "sha256": "80d325b304c1a6ccbceda8183795dc4af1c5433f4852db40d9c1b27e3aea2156" }, "downloads": -1, "filename": "shup-0.1.1.tar.gz", "has_sig": false, "md5_digest": "bb6e497167af181d5ec1351fa3e79328", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 30973, "upload_time": "2018-01-21T02:08:20", "url": "https://files.pythonhosted.org/packages/6d/4c/b2eebb2c545abe72214f7ad2cac11a2f855a940f2c1b7c096085af6c7837/shup-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c2df4efc9cc3695a2c9402b983c8c0fb", "sha256": "c1928bf91b5e4adf1d61526c621ce839298a224958c9f7e28770edce12c9d933" }, "downloads": -1, "filename": "shup-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c2df4efc9cc3695a2c9402b983c8c0fb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=3", "size": 12785, "upload_time": "2018-01-26T16:48:56", "url": "https://files.pythonhosted.org/packages/c9/77/e5b72f438ead474df75a5cf00e0c4e6c648e56a491225906928e10582f77/shup-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9af57098dd368ac942663b4ac9ebc5b9", "sha256": "c44326b626bcb9e90c9f734eb5fc1c6600dab336470dfde6b602de4418afbdb0" }, "downloads": -1, "filename": "shup-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9af57098dd368ac942663b4ac9ebc5b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31510, "upload_time": "2018-01-26T16:48:57", "url": "https://files.pythonhosted.org/packages/d4/e4/80cb087058e870c8af615db02886866e31a8c8755295c63e296a5246e215/shup-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c2df4efc9cc3695a2c9402b983c8c0fb", "sha256": "c1928bf91b5e4adf1d61526c621ce839298a224958c9f7e28770edce12c9d933" }, "downloads": -1, "filename": "shup-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c2df4efc9cc3695a2c9402b983c8c0fb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=3", "size": 12785, "upload_time": "2018-01-26T16:48:56", "url": "https://files.pythonhosted.org/packages/c9/77/e5b72f438ead474df75a5cf00e0c4e6c648e56a491225906928e10582f77/shup-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9af57098dd368ac942663b4ac9ebc5b9", "sha256": "c44326b626bcb9e90c9f734eb5fc1c6600dab336470dfde6b602de4418afbdb0" }, "downloads": -1, "filename": "shup-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9af57098dd368ac942663b4ac9ebc5b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31510, "upload_time": "2018-01-26T16:48:57", "url": "https://files.pythonhosted.org/packages/d4/e4/80cb087058e870c8af615db02886866e31a8c8755295c63e296a5246e215/shup-0.2.0.tar.gz" } ] }