{"id":20752806,"url":"https://github.com/kpj/wine_wrap","last_synced_at":"2026-06-06T15:01:41.492Z","repository":{"id":62589171,"uuid":"114006731","full_name":"kpj/wine_wrap","owner":"kpj","description":"A versioned wine-prefix management tool with memory-shared prefixes","archived":false,"fork":false,"pushed_at":"2017-12-12T15:31:41.000Z","size":26,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-20T09:21:22.189Z","etag":null,"topics":["prefix","python","wine"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kpj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-12T15:28:28.000Z","updated_at":"2024-02-24T01:15:28.000Z","dependencies_parsed_at":"2022-11-03T20:26:38.420Z","dependency_job_id":null,"html_url":"https://github.com/kpj/wine_wrap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpj%2Fwine_wrap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpj%2Fwine_wrap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpj%2Fwine_wrap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpj%2Fwine_wrap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kpj","download_url":"https://codeload.github.com/kpj/wine_wrap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243056145,"owners_count":20229160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["prefix","python","wine"],"created_at":"2024-11-17T08:42:45.344Z","updated_at":"2026-06-06T15:01:41.485Z","avatar_url":"https://github.com/kpj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wine_wrap\n\n[![PyPI](https://img.shields.io/pypi/v/wine_wrap.svg?style=flat)](https://pypi.python.org/pypi/wine_wrap)\n\nA versioned wine-prefix management tool with memory-shared prefixes.\n\nThis tool simplifies the maintenance of individual wine-prefixes per executable.\nEach prefix is version-controlled using git, allowing for reproducible setups.\nFurthermore (if supported by host system), the prefixes are stored as subvolumes on a BTRFS image. This makes storing them more memory efficient by only saving differences between each installation.\n\n## Installation\n\n`wine_wrap` can be installed using `pip`:\n\n```bash\n$ pip install wine_wrap\n```\n\n## Usage\n\n```bash\n$ wine_wrap --help\nUsage: wine_wrap [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  clear      Clear all associations.\n  configure  Associate script with given wine-prefix.\n  run        Execute given script in wine-prefix.\n  scan       Scan for executables in given prefix.\n  set        Associate script with given wine-prefix.\n  show       Show current setup.\n```\n\n## Getting started\n\nA typical use-case would be to first run an installer, and then the created executable in the same wine-prefix.\nTo do so, first run the installer (as well as winecfg beforehand) and name the used prefix:\n\n```bash\n$ wine_wrap run --configure --name MyOwnPrefix installer.exe\n[..]\n```\n\nAfterwards, find the newly installed executable within this prefix and associate it correctly:\n\n```bash\n$ wine_wrap scan MyOwnPrefix\n[..]\n \u003e \"/path/to/executable.exe\"\n[..]\n$ wine_wrap set \"/path/to/executable.exe\" MyOwnPrefix\n```\n\nWe can then make sure that the correct script-prefix associations are set:\n\n```bash\n$ wine_wrap show\n--- MyOwnPrefix ---\n \u003e installer.exe\n \u003e executable.exe\n```\n\nIt is then possible to simply run the executable in the correct wine-prefix:\n\n```bash\n$ wine_wrap run /path/to/executable.exe\n[..]\n```\n\nIf we don't need the scripts anymore, we can delete them in the end:\n\n```bash\n$ wine_wrap clear --delete-prefixes --prefix MyOwnPrefix\n[..]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpj%2Fwine_wrap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkpj%2Fwine_wrap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpj%2Fwine_wrap/lists"}