%global _empty_manifest_terminate_build 0 Name: python-appman Version: 0.4.5 Release: 1 Summary: Cross-platform application management aggregator License: MIT URL: https://github.com/basiliskus/appman Source0: https://mirrors.aliyun.com/pypi/web/packages/98/e8/cedebbacd3f7e13f76cee184fe6057209c4a7aacffebc7a87d9287ea0722/appman-0.4.5.tar.gz BuildArch: noarch Requires: python3-pyyaml Requires: python3-click Requires: python3-distro Requires: python3-importlib-resources Requires: python3-inquirerpy %description # appman appman is cross-platform application management aggregator [![Build Status](https://app.travis-ci.com/basiliskus/appman.svg?branch=main)](https://app.travis-ci.com/basiliskus/appman)

## Requirements - Python 3.8 - Git ## Installation You can install appman from [PyPI](https://pypi.org/project/appman/): ```bash > pip install appman ``` ## Background While working on my [dotfiles](https://wiki.archlinux.org/title/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](https://github.com/basiliskus/appman-main), 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: ```console $ appman add [?] Select the package type: (Use arrow keys) >app font driver provisioned backend extension [?] Select app packages to add: (, to move, to select, to toggle, to invert) ○ curl ○ fzf >● git ○ jq ○ python ○ ... Added git package ``` or directly passing parameters: ```console $ appman add -pt app -id git ``` - Remove a previously added package Using interactive mode: ```console $ appman remove [?] Select the package type: (Use arrow keys) >app font driver provisioned backend extension [?] Select app packages to remove: (, to move, to select, to toggle, to invert) ○ 7zip ○ curl >● git ○ ... Removed git package ``` Directly passing parameters: ```console $ appman remove -pt app -id git ``` - Show your user packages list Using interactive mode: ```console $ appman list [?] Select the package type: (Use arrow keys) >app • 7zip (cli, utils) • curl (cli, utils) ``` Directly passing parameters: ```console $ appman list -pt app ``` - Search all available packages to add Using interactive mode: ```console $ appman search [?] Select the package type: (Use arrow keys) >app • 7zip • ack • apache2 • aria2 • bottom • broot • cookiecutter • curl ... ``` Directly passing parameters: ```console $ appman search -pt app -id 7zip ``` ### Install/Uninstall packages in your user packages list Using interactive mode: ```console $ appman install [?] Select the package type: (Use arrow keys) >app Installing 7zip... Installing ack... ... ``` Directly passing parameters: ```console $ appman install -pt app -id 7zip ``` ### Change the package definitions repository source ```console $ appman repo https://github.com/basiliskus/appman-main ``` ### Update the package definitions repository source ```console $ 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. ```console $ appman add -pt app -id 7zip -l server ``` You can also filter by labels when using the 'list', 'search', 'remove', 'install' or 'uninstall' commands ```console $ appman list -pt app -l server ``` ## License © Basilio Bogado. Distributed under the [MIT License](LICENSE). %package -n python3-appman Summary: Cross-platform application management aggregator Provides: python-appman BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-appman # appman appman is cross-platform application management aggregator [![Build Status](https://app.travis-ci.com/basiliskus/appman.svg?branch=main)](https://app.travis-ci.com/basiliskus/appman)

## Requirements - Python 3.8 - Git ## Installation You can install appman from [PyPI](https://pypi.org/project/appman/): ```bash > pip install appman ``` ## Background While working on my [dotfiles](https://wiki.archlinux.org/title/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](https://github.com/basiliskus/appman-main), 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: ```console $ appman add [?] Select the package type: (Use arrow keys) >app font driver provisioned backend extension [?] Select app packages to add: (, to move, to select,
to toggle, to invert) ○ curl ○ fzf >● git ○ jq ○ python ○ ... Added git package ``` or directly passing parameters: ```console $ appman add -pt app -id git ``` - Remove a previously added package Using interactive mode: ```console $ appman remove [?] Select the package type: (Use arrow keys) >app font driver provisioned backend extension [?] Select app packages to remove: (, to move, to select, to toggle, to invert) ○ 7zip ○ curl >● git ○ ... Removed git package ``` Directly passing parameters: ```console $ appman remove -pt app -id git ``` - Show your user packages list Using interactive mode: ```console $ appman list [?] Select the package type: (Use arrow keys) >app • 7zip (cli, utils) • curl (cli, utils) ``` Directly passing parameters: ```console $ appman list -pt app ``` - Search all available packages to add Using interactive mode: ```console $ appman search [?] Select the package type: (Use arrow keys) >app • 7zip • ack • apache2 • aria2 • bottom • broot • cookiecutter • curl ... ``` Directly passing parameters: ```console $ appman search -pt app -id 7zip ``` ### Install/Uninstall packages in your user packages list Using interactive mode: ```console $ appman install [?] Select the package type: (Use arrow keys) >app Installing 7zip... Installing ack... ... ``` Directly passing parameters: ```console $ appman install -pt app -id 7zip ``` ### Change the package definitions repository source ```console $ appman repo https://github.com/basiliskus/appman-main ``` ### Update the package definitions repository source ```console $ 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. ```console $ appman add -pt app -id 7zip -l server ``` You can also filter by labels when using the 'list', 'search', 'remove', 'install' or 'uninstall' commands ```console $ appman list -pt app -l server ``` ## License © Basilio Bogado. Distributed under the [MIT License](LICENSE). %package help Summary: Development documents and examples for appman Provides: python3-appman-doc %description help # appman appman is cross-platform application management aggregator [![Build Status](https://app.travis-ci.com/basiliskus/appman.svg?branch=main)](https://app.travis-ci.com/basiliskus/appman)

## Requirements - Python 3.8 - Git ## Installation You can install appman from [PyPI](https://pypi.org/project/appman/): ```bash > pip install appman ``` ## Background While working on my [dotfiles](https://wiki.archlinux.org/title/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](https://github.com/basiliskus/appman-main), 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: ```console $ appman add [?] Select the package type: (Use arrow keys) >app font driver provisioned backend extension [?] Select app packages to add: (, to move, to select,
to toggle, to invert) ○ curl ○ fzf >● git ○ jq ○ python ○ ... Added git package ``` or directly passing parameters: ```console $ appman add -pt app -id git ``` - Remove a previously added package Using interactive mode: ```console $ appman remove [?] Select the package type: (Use arrow keys) >app font driver provisioned backend extension [?] Select app packages to remove: (, to move, to select, to toggle, to invert) ○ 7zip ○ curl >● git ○ ... Removed git package ``` Directly passing parameters: ```console $ appman remove -pt app -id git ``` - Show your user packages list Using interactive mode: ```console $ appman list [?] Select the package type: (Use arrow keys) >app • 7zip (cli, utils) • curl (cli, utils) ``` Directly passing parameters: ```console $ appman list -pt app ``` - Search all available packages to add Using interactive mode: ```console $ appman search [?] Select the package type: (Use arrow keys) >app • 7zip • ack • apache2 • aria2 • bottom • broot • cookiecutter • curl ... ``` Directly passing parameters: ```console $ appman search -pt app -id 7zip ``` ### Install/Uninstall packages in your user packages list Using interactive mode: ```console $ appman install [?] Select the package type: (Use arrow keys) >app Installing 7zip... Installing ack... ... ``` Directly passing parameters: ```console $ appman install -pt app -id 7zip ``` ### Change the package definitions repository source ```console $ appman repo https://github.com/basiliskus/appman-main ``` ### Update the package definitions repository source ```console $ 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. ```console $ appman add -pt app -id 7zip -l server ``` You can also filter by labels when using the 'list', 'search', 'remove', 'install' or 'uninstall' commands ```console $ appman list -pt app -l server ``` ## License © Basilio Bogado. Distributed under the [MIT License](LICENSE). %prep %autosetup -n appman-0.4.5 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-appman -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 0.4.5-1 - Package Spec generated