# Package Manager Installation 📦

## Description

This Ansible role installs and updates packages using `pkgmgr` on Arch Linux systems. It provides a unified interface for package installation and update management, ensuring consistent deployment across environments.

## Overview

The role abstracts package management operations using `pkgmgr`. It ensures the package manager itself is updated once per run and provides idempotent installation and update routines for specified packages.

## Purpose

The purpose of this role is to automate the installation and update process for CyMaIS-related applications or other managed packages using `pkgmgr`. It simplifies package handling and enforces best practices for package deployment in automated environments.

## Features

- **Automatic pkgmgr Update:** Ensures the package manager is always up-to-date.
- **Idempotent Package Installation:** Only installs packages when necessary.
- **Flexible Notification:** Supports handler notification for post-install actions (e.g., Docker Compose builds).
- **Optional Privilege Escalation:** Controlled via the `pkgmgr_become` variable (default: `true`).

## Role Variables

| Name            | Description                                                     | Default |
|-----------------|-----------------------------------------------------------------|---------|
| `package_name`   | Name of the package to install/update                          | (required) |
| `package_notify` | Handler to notify on package installation/update              | "" |
| `pkgmgr_become`  | Execute all tasks with elevated privileges (become: true/false) | true |

## Example Usage

```yaml
- name: Install cymais-presentation
  include_role:
    name: pkgmgr-install
  vars:
    package_name: cymais-presentation
    package_notify: docker compose project build and setup
```

## Credits 📝

Developed and maintained by **Kevin Veen-Birkenbach**.  
Learn more at [www.veen.world](https://www.veen.world)

Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)  
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)