{"id":28414558,"url":"https://github.com/hakanbaban53/virtual-candy","last_synced_at":"2026-02-18T13:32:06.235Z","repository":{"id":222129412,"uuid":"756317184","full_name":"Hakanbaban53/Virtual-CANDY","owner":"Hakanbaban53","description":"A python Cli application for handling the preconfigured packages with json. Its basically a package manager with Terminal UI.","archived":false,"fork":false,"pushed_at":"2025-05-19T08:45:19.000Z","size":26644,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-24T15:57:09.458Z","etag":null,"topics":["cli","installer","linux","package-manager","python","python-curses","python-curses-library","terminal-ui"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hakanbaban53.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-02-12T12:34:13.000Z","updated_at":"2025-09-12T19:36:59.000Z","dependencies_parsed_at":"2024-03-04T17:15:33.665Z","dependency_job_id":"625e2a47-c0aa-430e-a657-d291d264e7e1","html_url":"https://github.com/Hakanbaban53/Virtual-CANDY","commit_stats":null,"previous_names":["hakanbaban53/container-and-virtualization-installer","hakanbaban53/virtual-candy"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/Hakanbaban53/Virtual-CANDY","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hakanbaban53%2FVirtual-CANDY","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hakanbaban53%2FVirtual-CANDY/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hakanbaban53%2FVirtual-CANDY/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hakanbaban53%2FVirtual-CANDY/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hakanbaban53","download_url":"https://codeload.github.com/Hakanbaban53/Virtual-CANDY/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hakanbaban53%2FVirtual-CANDY/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29580808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cli","installer","linux","package-manager","python","python-curses","python-curses-library","terminal-ui"],"created_at":"2025-06-03T08:15:58.487Z","updated_at":"2026-02-18T13:32:06.204Z","avatar_url":"https://github.com/Hakanbaban53.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003e Virtual CANDY \"VCANDY\" 🖥️\u003ch1\u003e\n\n\u003ch4 align=\"center\"\u003eIt's a package manager for Linux distributions. Handles the installation and removal of packages with a simple command-line interface or terminal UI. Also includes a JSON file for package information and a script for building packages for different distributions.\u003c/h4\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./assets/arguments.gif\" style=\"width: 500px; height: auto;\"\u003e\n  \u003cimg src=\"./assets/terminal_ui.gif\" style=\"width: 500px; height: auto;\"\u003e\n\u003c/div\u003e\n\n## 📦 Pre Builded Packages\nThis Packages building with github action. \nYou can download it from [here](https://github.com/Hakanbaban53/Virtual-CANDY/releases)\n\n## 🏗️ Build From Github Repository and Testing\n\n\u003cdetails\u003e\u003csummary\u003eArch\u003c/summary\u003e\n\nThe initial installation of vcandy can be done by cloning the PKGBUILD and\nbuilding with makepkg:\n\n```sh\npacman -S --needed git\ngit clone https://github.com/Hakanbaban53/Virtual-CANDY.git\ncd Virtual-CANDY/test/scripts\nmakepkg -si\n```\n\nIf you want to do all of this at once, we can chain the commands like so:\n\n```sh\npacman -S --needed git \u0026\u0026 git clone https://github.com/Hakanbaban53/Virtual-CANDY.git \u0026\u0026 cd cd Virtual-CANDY/test/scripts \u0026\u0026 makepkg -si\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eDebian or Ubuntu\u003c/summary\u003e\n\nTo install Candy on Debian or Ubuntu, it is sufficient to first clone this repository and make the build_deb_package.sh script executable and run it.\nIt will automatically create and install the debian package:\n\n```sh\napt install git\ngit clone https://github.com/Hakanbaban53/Virtual-CANDY.git\ncd Virtual-CANDY/test/scripts\nchmod +x ./build_deb_package.sh\n./build_deb_package.sh\n```\n\nIf you want to do all of this at once, we can chain the commands like so:\n\n```sh\napt install git \u0026\u0026 git clone https://github.com/Hakanbaban53/Virtual-CANDY.git \u0026\u0026 cd Virtual-CANDY/test/scripts \u0026\u0026 chmod +x ./build_deb_package.sh \u0026\u0026 ./build_deb_package.sh\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eFedora\u003c/summary\u003e\n\nTo install Candy on Fedora, it is sufficient to first clone this repository and make the build_rpm_package.sh script executable and run it.\nIt will automatically create and install the rpm package:\n\n```sh\ndnf install git\ngit clone https://github.com/Hakanbaban53/Virtual-CANDY.git\ncd Virtual-CANDY/test/scripts\nchmod +x ./build_rpm_package.sh\n./build_rpm_package.sh\n```\n\nIf you want to do all of this at once, we can chain the commands like so:\n\n```sh\ndnf install git \u0026\u0026 git clone https://github.com/Hakanbaban53/Virtual-CANDY.git \u0026\u0026 cd Virtual-CANDY/test/scripts \u0026\u0026 chmod +x ./build_rpm_package.sh \u0026\u0026 ./build_rpm_package.sh\n```\n\n\u003c/details\u003e\n- 🗑️ If you want to remove the package:\n\n    # Arch\n    pacman -Rsc vcandy\n    \n    # Debian or Ubuntu\n    apt remove vcandy\n    \n    # Fedora\n    dnf remove vcany\n\n- Also you can check the [TEST.md](./docs/TEST.md) file for more information.\n\n## ⚙️ Usage\n\n\u003cdetails\u003e\u003csummary\u003e\u003cstrong\u003e\u003cem\u003eWith Arguments\u003c/em\u003e\u003c/strong\u003e\u003c/summary\u003e\n\n\n#### Arguments\n\n| Argument         | Description                                                                                                              | CLI  | TUI |\n|------------------|--------------------------------------------------------------------------------------------------------------------------|------|-----|\n| `-a`, `--action` | Specifies the action to perform. Choices are `'install'` or `'remove'`. Default is `'install'`.                         | ✅   | ❌  |\n| `-j`, `--json`   | Specifies the JSON file to use for package information. Defaults to predefined.                                         | ✅   | ✅  |\n| `-u`, `--url`    | Specifies the URL to use for package information. Overrides the JSON file. Its need the use with `-r` or `--refresh`.   | ✅   | ✅  |\n| `-r`, `--refresh`| Refreshes the JSON data regardless of its file age. Useful to get the latest package information.                        | ✅   | ✅  |\n| `-v`, `--verbose`| Enables verbose output for detailed information during execution. Helps with debugging or understanding process details. | ✅   | ✅  |\n| `-d`, `--dry-run`| Performs a dry run of the command without making any changes. Useful for testing what would be done.                     | ✅   | ✅  |\n| `-l`, `--list`   | Lists available packages for the specified distribution. Useful for checking what packages are available.               | ✅   | ❌  |\n| `--distribution` | Specifies the Linux distribution to use. Defaults to auto-detecting the distribution.                                   | ✅   | ✅  |\n| `--all`          | Installs or removes all available packages for the specified distribution.                                              | ✅   | ❌  |\n| `packages`       | List of packages to install or remove.                                                                                   | ✅   | ❌  |\n| `-v`, `--version`| Displays the version of VCANDY.                                                                                          | ✅   | ✅  |\n| `-h`, `--help`   | Displays the help message with a list of available arguments.                                                            | ✅   | ✅  |\n\n\n- **Install specific packages**:\n  ```bash\n  vcand -a install package1 package2\n  ```\n\n- **Remove specific packages**:\n  ```bash\n  vcand -a remove package1 package2\n  ```\n\n- **Refresh JSON data**:\n  ```bash\n  vcand -r\n  ```\n\n- **Enable verbose output**:\n  ```bash\n  vcand -v -a install package1\n  ```\n\n- **Perform a dry run**:\n  ```bash\n  vcand -d -a install package1\n  ```\n\n- **List available packages**:\n  ```bash\n  vcand -l --distribution ubuntu\n  ```\n\n- **Install or remove all available packages**:\n  ```bash\n  vcand --all -a install\n  ```\n\n- **Specify distribution**:\n  ```bash\n  vcand --distribution ubuntu -a install package1\n  ```\n\nAnd one more thing. Arguments are case-sensitive. You need to give the package names as specified below:\n\u003c/details\u003e\n\n### \n\u003cdetails\u003e\u003csummary\u003e\u003cstrong\u003e\u003cem\u003eWith Terminal UI\u003c/em\u003e\u003c/strong\u003e\u003c/summary\u003e\n\n\u003cp align=\"left\"\u003eIf you install the in your pc you can use in the terminal vcandy or you can use \"python app.py\". Terminal UI start with default. Basic terminal UI for installer. \u003c/p\u003e\n\u003cp align=\"left\"\u003eUse Left/Right arrow key select \"yes\" or \"no\". Press \"Enter\" key for confirm..\u003c/p\u003e\n\u003cp align=\"left\"\u003eUse Up/Down arrow key move each other packager. Use \"Tab\" key Select/Unselect packages. Press Enter key the confirm packages.\u003c/p\u003e\n\u003cp align=\"left\"\u003eUse \"Ctrl + H\" key for help. \u003c/p\u003e\n\n\u003c/details\u003e\n\n## 📦 Package Managing\n- If you want to make own package `json` file for your purposes, you can check the [PACKAGES.md](./docs/PACKAGES.md) file for more information.\n\n## 🚀 Issues\n\nIf you encounter any issues or have suggestions for improvements, please feel free to open an issue on our [GitHub Issues page](https://github.com/Hakanbaban53/Virtual-CANDY/issues). We welcome contributions and feedback from the community to make VCANDY better.\n\n### ❓ How to Report an Issue\n\n1. **Search Existing Issues**: Before opening a new issue, please check if the issue has already been reported.\n2. **Create a New Issue**: If your issue is not listed, create a new issue and provide detailed information.\n  - **Title**: A clear and descriptive title.\n  - **Description**: A detailed description of the issue, including steps to reproduce, expected behavior, and actual behavior.\n  - **Screenshots**: If applicable, include screenshots to help illustrate the issue.\n  - **Environment**: Specify the environment in which the issue occurs (e.g., Distribution, VCANDY version).\n\n### 🌟 Feature Requests\n\nWe also welcome feature requests! If you have an idea for a new feature or an improvement, please open an issue and label it as a feature request. Provide as much detail as possible to help us understand your suggestion.\n\nThank you for helping us improve VCANDY!\n\n\n## 📂 Folder structure\n\n```css\n🗃\n├── 🗎 README.md\n├── 🗎 LICENSE\n├── 🖿 assets\n│   └── 🖻 preview images\n├── 🖿 docs\n│   ├── 🗎 PACKAGES.md\n│   └── 🗎 TEST.md\n├── 🖿 packages\n│   └── 🗎 packages.json\n├── 🖿 src\n│   ├── ⚙️ app.py\n│   ├── 🖿 TUI\n│   │   ├── 🖿 core\n│   │   │   ├── 🖿 components\n│   │   │   │   ├── 🗎 __app_selector__.py\n│   │   │   │   ├── 🗎 __footer__.py\n│   │   │   │   ├── 🗎 __header__.py\n│   │   │   │   ├── 🗎 __modal_win__.py\n│   │   │   │   ├── 🗎 __print_apps__.py\n│   │   │   │   └── 🗎 __selections__.py\n│   │   │   ├── 🖿 static\n│   │   │   │   ├── 🗎 __color_init__.py\n│   │   │   │   └── 🗎 __data__.py\n│   │   │   └── 🖿 utils\n│   │   │       ├── 🗎 __check_connection__.py\n│   │   │       ├── 🗎 __clean_line__.py\n│   │   │       ├── 🗎 __clear_midde_section__.py\n│   │   │       ├── 🗎 __errors_.py\n│   │   │       ├── 🗎 __helper_keys__.py\n│   │   │       ├── 🗎 __input__.py\n│   │   │       └── 🗎 __resize_handler__.py\n│   │   └── 🗎 __terminal_UI__.py\n│   ├── 🖿 core\n│   │   ├── 🗎 __check_repository_connection__.py\n│   │   ├── 🗎 __command_handler__.py\n│   │   ├── 🗎 __constants__.py\n│   │   ├── 🗎 __get_os_package_manager__.py\n│   │   ├── 🗎 __get_packages_data__.py\n│   │   ├── 🗎 __linux_system__.py\n│   │   ├── 🗎 __logging_manager__.py\n│   │   ├── 🖿 package_handlers\n│   │   │   ├── 🗎 __aur__.py\n│   │   │   ├── 🗎 __flatpak__.py\n│   │   │   ├── 🗎 __local__.py\n│   │   │   ├── 🗎 __normal__.py\n│   │   │   └── 🗎 __special__.py\n│   │   └── 🗎 __pack_type_handler__.py\n│   └── 🖿 utils\n│       └── 🖿 cli\n│           └── 🗎 __arguments__.py\n└── 🖿 test\n    ├── 🖿 scripts\n    │   ├── 🗎 build_deb_package.sh\n    │   ├── 🗎 build_rpm_package.sh\n    │   └── 🗎 PKGBUILD\n    └── 🗎 test_app.py\n\n```\n\n\u003ch2 align=\"center\"\u003e Hakan İSMAİL 💙 \u003c/h2\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhakanbaban53%2Fvirtual-candy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhakanbaban53%2Fvirtual-candy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhakanbaban53%2Fvirtual-candy/lists"}