Skip to main content

appman

appman is cross-platform application management aggregator

Build Status

Requirements

  • Python 3.8
  • Git

Installation

You can install appman from PyPI:

> pip install appman

Background

While working on my dotfiles repository, I realized that I also wanted to have a way to handle not just configuration files but also my installed applications. That way I'd be able to define which applications I want to have installed on any new environment, have those under version control, and run a script to install/uninstall applications on any new personal or work computer, server, etc.

Goals

The main goal for appman is to be flexible and extensible. In that context the goals are:

  • Cross-platform: handle multiple OS and devices. Currently appman handles Ubuntu and Windows (desktop).
  • Multi-profile: define different profiles with a unique list of applications for different environments (e.g., work and personal computers).
  • Supported Packages: aside from desktop and command line applications, support software like: device drivers, software plugins and extensions (e.g., vscode extensions), backend libraries (e.g., python libraries), fonts, etc.
  • Package Management: support any package manager (e.g., apt, brew, scoop) or custom formulas to define how to install, uninstall and upgrade packages.
  • Package definitions source: the source for package definitions is a git repository, which allows you to fork and use your own repository.

How to use

Set up your user package list

  • Add a package to your user packages list

    Using interactive mode:

    $ appman add
    
    [?] Select the package type: (Use arrow keys)
    >app
     font
     driver
     provisioned
     backend
     extension
    
    [?] Select app packages to add: (<up>, <down> to move, <space> to select, <a> to toggle, <i> to invert)
     ○ curl
     ○ fzf
    >● git
     ○ jq
     ○ python
     ○ ...
    
    Added git package
    

    or directly passing parameters:

    $ appman add -pt app -id git
    
  • Remove a previously added package

    Using interactive mode:

    $ appman remove
    
    [?] Select the package type: (Use arrow keys)
    >app
     font
     driver
     provisioned
     backend
     extension
    
    [?] Select app packages to remove: (<up>, <down> to move, <space> to select, <a> to toggle, <i> to invert)
     ○ 7zip
     ○ curl
    >● git
     ○ ...
    
    Removed git package
    

    Directly passing parameters:

    $ appman remove -pt app -id git
    
  • Show your user packages list

    Using interactive mode:

    $ appman list
    
    [?] Select the package type: (Use arrow keys)
    >app
    
     • 7zip (cli, utils)
     • curl (cli, utils)
    

    Directly passing parameters:

    $ appman list -pt app
    
  • Search all available packages to add

    Using interactive mode:

    $ appman search
    
    [?] Select the package type: (Use arrow keys)
    >app
    
     • 7zip
     • ack
     • apache2
     • aria2
     • bottom
     • broot
     • cookiecutter
     • curl
    ...
    

    Directly passing parameters:

    $ appman search -pt app -id 7zip
    

Install/Uninstall packages in your user packages list

Using interactive mode:

$ appman install

[?] Select the package type: (Use arrow keys)
>app

Installing 7zip...
Installing ack...
...

Directly passing parameters:

$ appman install -pt app -id 7zip

Change the package definitions repository source

$ appman repo https://github.com/basiliskus/appman-main

Update the package definitions repository source

$ appman update

Using labels

All packages have pre-defined labels (e.g. for apps: 'cli' & 'gui'), but you can also add your own labels by passing the --labels/-l parameter to the 'add' command.

$ appman add -pt app -id 7zip -l server

You can also filter by labels when using the 'list', 'search', 'remove', 'install' or 'uninstall' commands

$ appman list -pt app -l server

License

© Basilio Bogado. Distributed under the MIT License.

Release files for appman 0.4.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for appman 0.4.5
File Size Uploaded
appman-0.4.5.tar.gz 193.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for appman 0.4.5
File Interpreter ABI Platform
appman-0.4.5-py3-none-any.whl Python 3 none any Details

Total release size: 478.3 kB

Release files / appman-0.4.5.tar.gz

Download URL appman-0.4.5.tar.gz
Size 193.5 kB
Tags Source
SHA-256 checksum
How to use checksums
878163e2dff3215be440fe2e26e63522c0ccba21eeda8141d13ee56f6f86f511
BLAKE2b-256 checksum
How to use checksums
98e8cedebbacd3f7e13f76cee184fe6057209c4a7aacffebc7a87d9287ea0722
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.10.5 Linux/5.18.13-200.fc36.x86_64

Release files / appman-0.4.5-py3-none-any.whl

Download URL appman-0.4.5-py3-none-any.whl
Size 284.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99999ebbd3ba9bc30cd1fd2fee6a3562aad823f1a6551e048d0b04bd19c27f24
BLAKE2b-256 checksum
How to use checksums
4d82cc1a70e1e2ea13fa5585bdbf299c7bdc6d91ab79d0688478c3f2997d7b5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.10.5 Linux/5.18.13-200.fc36.x86_64

Release history Release notifications | RSS feed

This release

0.4.5 This release

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page