Skip to content

A python Cli application for handling the preconfigured packages with json. Its basically a package manager with Terminal UI.

License

Notifications You must be signed in to change notification settings

Hakanbaban53/Virtual-CANDY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Virtual CANDY "VCANDY" πŸ–₯️

It'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.

πŸ“¦ Pre Builded Packages

This Packages building with github action. You can download it from here

πŸ—οΈ Build From Github Repository and Testing

Arch

The initial installation of vcandy can be done by cloning the PKGBUILD and building with makepkg:

pacman -S --needed git
git clone https://github.com/Hakanbaban53/Virtual-CANDY.git
cd Virtual-CANDY/test/scripts
makepkg -si

If you want to do all of this at once, we can chain the commands like so:

pacman -S --needed git && git clone https://github.com/Hakanbaban53/Virtual-CANDY.git && cd cd Virtual-CANDY/test/scripts && makepkg -si
Debian or Ubuntu

To 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. It will automatically create and install the debian package:

apt install git
git clone https://github.com/Hakanbaban53/Virtual-CANDY.git
cd Virtual-CANDY/test/scripts
chmod +x ./build_deb_package.sh
./build_deb_package.sh

If you want to do all of this at once, we can chain the commands like so:

apt install git && git clone https://github.com/Hakanbaban53/Virtual-CANDY.git && cd Virtual-CANDY/test/scripts && chmod +x ./build_deb_package.sh && ./build_deb_package.sh
Fedora

To install Candy on Fedora, it is sufficient to first clone this repository and make the build_rpm_package.sh script executable and run it. It will automatically create and install the rpm package:

dnf install git
git clone https://github.com/Hakanbaban53/Virtual-CANDY.git
cd Virtual-CANDY/test/scripts
chmod +x ./build_rpm_package.sh
./build_rpm_package.sh

If you want to do all of this at once, we can chain the commands like so:

dnf install git && git clone https://github.com/Hakanbaban53/Virtual-CANDY.git && cd Virtual-CANDY/test/scripts && chmod +x ./build_rpm_package.sh && ./build_rpm_package.sh
- πŸ—‘οΈ If you want to remove the package:
# Arch
pacman -Rsc vcandy

# Debian or Ubuntu
apt remove vcandy

# Fedora
dnf remove vcany
  • Also you can check the TEST.md file for more information.

βš™οΈ Usage

With Arguments

Arguments

Argument Description CLI TUI
-a, --action Specifies the action to perform. Choices are 'install' or 'remove'. Default is 'install'. βœ… ❌
-j, --json Specifies the JSON file to use for package information. Defaults to predefined. βœ… βœ…
-u, --url Specifies the URL to use for package information. Overrides the JSON file. Its need the use with -r or --refresh. βœ… βœ…
-r, --refresh Refreshes the JSON data regardless of its file age. Useful to get the latest package information. βœ… βœ…
-v, --verbose Enables verbose output for detailed information during execution. Helps with debugging or understanding process details. βœ… βœ…
-d, --dry-run Performs a dry run of the command without making any changes. Useful for testing what would be done. βœ… βœ…
-l, --list Lists available packages for the specified distribution. Useful for checking what packages are available. βœ… ❌
--distribution Specifies the Linux distribution to use. Defaults to auto-detecting the distribution. βœ… βœ…
--all Installs or removes all available packages for the specified distribution. βœ… ❌
packages List of packages to install or remove. βœ… ❌
-v, --version Displays the version of VCANDY. βœ… βœ…
-h, --help Displays the help message with a list of available arguments. βœ… βœ…
  • Install specific packages:

    vcand -a install package1 package2
  • Remove specific packages:

    vcand -a remove package1 package2
  • Refresh JSON data:

    vcand -r
  • Enable verbose output:

    vcand -v -a install package1
  • Perform a dry run:

    vcand -d -a install package1
  • List available packages:

    vcand -l --distribution ubuntu
  • Install or remove all available packages:

    vcand --all -a install
  • Specify distribution:

    vcand --distribution ubuntu -a install package1

And one more thing. Arguments are case-sensitive. You need to give the package names as specified below:

With Terminal UI

If 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.

Use Left/Right arrow key select "yes" or "no". Press "Enter" key for confirm..

Use Up/Down arrow key move each other packager. Use "Tab" key Select/Unselect packages. Press Enter key the confirm packages.

Use "Ctrl + H" key for help.

πŸ“¦ Package Managing

  • If you want to make own package json file for your purposes, you can check the PACKAGES.md file for more information.

πŸš€ Issues

If you encounter any issues or have suggestions for improvements, please feel free to open an issue on our GitHub Issues page. We welcome contributions and feedback from the community to make VCANDY better.

❓ How to Report an Issue

  1. Search Existing Issues: Before opening a new issue, please check if the issue has already been reported.
  2. Create a New Issue: If your issue is not listed, create a new issue and provide detailed information.
  • Title: A clear and descriptive title.
  • Description: A detailed description of the issue, including steps to reproduce, expected behavior, and actual behavior.
  • Screenshots: If applicable, include screenshots to help illustrate the issue.
  • Environment: Specify the environment in which the issue occurs (e.g., Distribution, VCANDY version).

🌟 Feature Requests

We 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.

Thank you for helping us improve VCANDY!

πŸ“‚ Folder structure

πŸ—ƒ
β”œβ”€β”€ πŸ—Ž README.md
β”œβ”€β”€ πŸ—Ž LICENSE
β”œβ”€β”€ πŸ–Ώ assets
β”‚   └── πŸ–» preview images
β”œβ”€β”€ πŸ–Ώ docs
β”‚   β”œβ”€β”€ πŸ—Ž PACKAGES.md
β”‚   └── πŸ—Ž TEST.md
β”œβ”€β”€ πŸ–Ώ packages
β”‚   └── πŸ—Ž packages.json
β”œβ”€β”€ πŸ–Ώ src
β”‚   β”œβ”€β”€ βš™οΈ app.py
β”‚   β”œβ”€β”€ πŸ–Ώ TUI
β”‚   β”‚   β”œβ”€β”€ πŸ–Ώ core
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ–Ώ components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __app_selector__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __footer__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __header__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __modal_win__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __print_apps__.py
β”‚   β”‚   β”‚   β”‚   └── πŸ—Ž __selections__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ–Ώ static
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __color_init__.py
β”‚   β”‚   β”‚   β”‚   └── πŸ—Ž __data__.py
β”‚   β”‚   β”‚   └── πŸ–Ώ utils
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ—Ž __check_connection__.py
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ—Ž __clean_line__.py
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ—Ž __clear_midde_section__.py
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ—Ž __errors_.py
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ—Ž __helper_keys__.py
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ—Ž __input__.py
β”‚   β”‚   β”‚       └── πŸ—Ž __resize_handler__.py
β”‚   β”‚   └── πŸ—Ž __terminal_UI__.py
β”‚   β”œβ”€β”€ πŸ–Ώ core
β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __check_repository_connection__.py
β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __command_handler__.py
β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __constants__.py
β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __get_os_package_manager__.py
β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __get_packages_data__.py
β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __linux_system__.py
β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __logging_manager__.py
β”‚   β”‚   β”œβ”€β”€ πŸ–Ώ package_handlers
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __aur__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __flatpak__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __local__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ—Ž __normal__.py
β”‚   β”‚   β”‚   └── πŸ—Ž __special__.py
β”‚   β”‚   └── πŸ—Ž __pack_type_handler__.py
β”‚   └── πŸ–Ώ utils
β”‚       └── πŸ–Ώ cli
β”‚           └── πŸ—Ž __arguments__.py
└── πŸ–Ώ test
    β”œβ”€β”€ πŸ–Ώ scripts
    β”‚   β”œβ”€β”€ πŸ—Ž build_deb_package.sh
    β”‚   β”œβ”€β”€ πŸ—Ž build_rpm_package.sh
    β”‚   └── πŸ—Ž PKGBUILD
    └── πŸ—Ž test_app.py

Hakan Δ°SMAΔ°L πŸ’™

About

A python Cli application for handling the preconfigured packages with json. Its basically a package manager with Terminal UI.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published