{ "info": { "author": "Cswl Coldwind", "author_email": "cswl1337@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "## butter-hopper\n\nbutter-hopper is a collection of tools to help making switching between multiple distros easier \nbutter-hopper allows you to try out multiple distros on a single large BTRFS partition using BTRFS subvolumes.\n\n### Features:\n- butter-hopper uses `systemd-nspawn` to `ch-boot` into your desired distro \n- And if you wanna take it for an actual spin on your hardware you can do that too \n- butter-hopper will extract boot entries in the OS and present them in GRUB/rEFInd menu.\n- Installing and upgrading various common packages on many distros can be time consuming. \n butter-hopper uses `nix` as package management/cache which can be used from any distro\n- Support installing tools like IDE, VSCode which don't need to be packaged to `/common`\n- PLANNED: Using qemu/KVM to boot GUI to another distro\n\n### Pre:requesties\n- Make sure all of distro use systemd and support btrfs which should be any recent distro\n- For the boot to hardware you want to make sure you have a recent version of GRUB2 installed with \nsupport for btrfs.\n\n### butter hopper tools\n- `btrhop` : The main command line interface to btrhop which allows managing snapshots, running, upgrading distros\n- `bootcrap` : Command line tools to bootstrap a distro from rootfs or docker images.\n- `mntem` : A tool to help manage multiple mount points of BTRFS subvolumes/ shared storage.\n- `nixy` : Helper script to install `nix` and setup packages on common `/nix/store`\n\n### Sharing:\nWhile using a default user of `1000` and allowing any user to change stuffs in `/home` works. \n`butter-hopper` recommends using differnt user ids of your primary user and supports in the config. \nTo take a sample config of `butter-hopper.conf` look at my dotfile in your preferred Git hosting. \n[![Github](https://i.imgur.com/7UwDPus.png)](https://github.com/cswl/dotfiles/tree/master/config/butter-hopper)\n[![Gitlab](https://i.imgur.com/G6QcEk4.jpg)](https://gitlab.com/cswl/dotfiles/tree/master/config/butter-hopper)\n[![Bitbucket](https://i.imgur.com/TKS3S7F.png)](hhttps://bitbucket.org/cswl/dotfiles/src/master/config/butter-hopper/)\n\n### Tips:\nChange your default subvol to \"/staging\" so you dont accidentally mount the real root \nTo do that simply run `btrhop populate-distros --staging`\n\n\n### Working\nThis is the layout pulled directly from my current install.\nbutter-hopper installs distros to `/distros` in your btrfs partition \n\n```\ndistros\n \u251c\u2500\u2500 arch\n \u2502 \u251c\u2500\u2500 @\n \u2502 \u2514\u2500\u2500 home\n \u251c\u2500\u2500 debian-buster\n \u2502 \u251c\u2500\u2500 @\n \u2502 \u2514\u2500\u2500 home\n \u251c\u2500\u2500 fedora\n \u2502 \u251c\u2500\u2500 @\n \u2502 \u2514\u2500\u2500 home\n \u251c\u2500\u2500 tumbleweed\n \u2502 \u251c\u2500\u2500 @\n \u2502 \u2514\u2500\u2500 home\n \u251c\u2500\u2500 ubuntu-latest\n \u2502 \u251c\u2500\u2500 @\n \u2502 \u2514\u2500\u2500 home\n```\n\n\n### License\nCopyright (c) 2019 Cswl Coldwind \nLicensed under the MIT License. See LICENSE.txt\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cswl/butter-hopper", "keywords": "", "license": "MIT", "maintainer": "Cswl Coldwind", "maintainer_email": "cswl1337@gmail.com", "name": "butter-hopper", "package_url": "https://pypi.org/project/butter-hopper/", "platform": "", "project_url": "https://pypi.org/project/butter-hopper/", "project_urls": { "Homepage": "https://github.com/cswl/butter-hopper" }, "release_url": "https://pypi.org/project/butter-hopper/0.2.0/", "requires_dist": [ "click", "shell", "munch", "ruamel.yaml" ], "requires_python": "", "summary": "", "version": "0.2.0" }, "last_serial": 5937915, "releases": { "0.0.9": [ { "comment_text": "", "digests": { "md5": "42da254388b800015073dc68a162f1db", "sha256": "e0ab69124ccc4fa3a1c21691e36a4327c403b311084964ef3ada149815303745" }, "downloads": -1, "filename": "butter_hopper-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "42da254388b800015073dc68a162f1db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10007, "upload_time": "2019-03-05T13:58:33", "url": "https://files.pythonhosted.org/packages/a2/25/2c6f02e6b8a7f59e529618a6b34e3b08bc3e6495c8b4fef03015552c6117/butter_hopper-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d2256653f73244ba07b55395583d90f0", "sha256": "41c3281a4821c4a7e63ef207ba1d9d1dc3ea462d188e5e19704a43cd05b0620c" }, "downloads": -1, "filename": "butter-hopper-0.0.9.tar.gz", "has_sig": false, "md5_digest": "d2256653f73244ba07b55395583d90f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7631, "upload_time": "2019-03-05T13:58:34", "url": "https://files.pythonhosted.org/packages/84/02/35bb2b701b4a24e68ddc141d79fc1df97e0c9948ced8f4bd92584059f46c/butter-hopper-0.0.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "173ccece17aa1d6075d0c270d5d75363", "sha256": "d475ffcc740c4d52c3d6d7f1b46a39a3f0742df1efb6ae5dc078647aa14813ce" }, "downloads": -1, "filename": "butter_hopper-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "173ccece17aa1d6075d0c270d5d75363", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9382, "upload_time": "2019-10-07T09:47:10", "url": "https://files.pythonhosted.org/packages/b7/f8/352c5090b549e7aa9841c7fd2870445acc7482b81dfdc71c34c4c04e07fa/butter_hopper-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43259903a6ff9ed987b9dbaf0403e0d8", "sha256": "9547e72e9dc396a0fdabc6cfe3600c960e786d7ecce113e056f95070ce3e30de" }, "downloads": -1, "filename": "butter-hopper-0.2.0.tar.gz", "has_sig": false, "md5_digest": "43259903a6ff9ed987b9dbaf0403e0d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7244, "upload_time": "2019-10-07T09:47:12", "url": "https://files.pythonhosted.org/packages/b4/8f/76263679156e1b4db2fecbbd90a5158ea69638652638f3635d54f32d7cf5/butter-hopper-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "173ccece17aa1d6075d0c270d5d75363", "sha256": "d475ffcc740c4d52c3d6d7f1b46a39a3f0742df1efb6ae5dc078647aa14813ce" }, "downloads": -1, "filename": "butter_hopper-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "173ccece17aa1d6075d0c270d5d75363", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9382, "upload_time": "2019-10-07T09:47:10", "url": "https://files.pythonhosted.org/packages/b7/f8/352c5090b549e7aa9841c7fd2870445acc7482b81dfdc71c34c4c04e07fa/butter_hopper-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43259903a6ff9ed987b9dbaf0403e0d8", "sha256": "9547e72e9dc396a0fdabc6cfe3600c960e786d7ecce113e056f95070ce3e30de" }, "downloads": -1, "filename": "butter-hopper-0.2.0.tar.gz", "has_sig": false, "md5_digest": "43259903a6ff9ed987b9dbaf0403e0d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7244, "upload_time": "2019-10-07T09:47:12", "url": "https://files.pythonhosted.org/packages/b4/8f/76263679156e1b4db2fecbbd90a5158ea69638652638f3635d54f32d7cf5/butter-hopper-0.2.0.tar.gz" } ] }