Skip to main content

Help maintainers update pacscripts

Project description

logo

Pacup

Python: 3.10+ Code style: black Codacy: grade PyPI: version

join discord Mastodon Follow join matrix

What is this?

Pacup (Pacscript Updater) is a maintainer helper tool to help maintainers update their pacscripts. It semi-automates the tedious task of updating pacscripts, and aims to make it a fun process for the maintainer!

Installation

To install the latest release run:

$ pacstall -I pacup-bin # or pip install pacup

To install the latest development build run:

$ pip install git+https://github.com/pacstall/pacup

Usage

Usage: pacup [OPTIONS] PACSCRIPTS...

Updates specified pacscripts.
If ship flag is passed, the pacscript will be prepared for shipping to upstream.
After the pacscript is prepared, it will be committed and pushed to the origin remote.
This requires you to be present in your cloned fork.

╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────╮
│ *    pacscripts      PACSCRIPTS...  The pacscripts to update. [default: None] [required]             │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────╮
│ --show-repology       -r                                       Show the parsed repology data and     │
│                                                                exit.                                 │
│ --debug               -d                                       Turn on debugging mode.               │
│ --version             -v                                       Show the version and exit.            │
│ --ship                -s                                       Prepare the pacscript for shipping to │
│                                                                upstream.                             │
│ --install-completion          [bash|zsh|fish|powershell|pwsh]  Install completion for the specified  │
│                                                                shell.                                │
│                                                                [default: None]                       │
│ --show-completion             [bash|zsh|fish|powershell|pwsh]  Show completion for the specified     │
│                                                                shell, to copy it or customize the    │
│                                                                installation.                         │
│                                                                [default: None]                       │
│ --help                                                         Show this message and exit.           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯

You can get this help text by running pacup --help.

You should visit our wiki, for more information on how to use the repology key.

How does it work?

Suppose foo.pacscript is outdated.

On running pacup foo.pacscript Pacup will parse the pacscript's variables, then it compiles a list of filters specified in the repology variable in the pacscript. Then it queries the Repology API to get all the repositories which have packaged that package. After which it applies the filter to the response, and from the filtrate it considers the most common version to be the latest.

Then it replaces all occurrences of the previous version's value in the url with the latest one placeholder's value with the latest version, and downloads the new package, and generates it's hash.

Then writes the edited pacscript and installs it with Pacstall, after installation it asks the user to confirm that the installed package works. On approval the pacscript is considered successfully upgraded and the program ends.

Caveats

  • Does not work with -git pacscripts as those pacscripts are auto updating.
  • Doesn't work if a pacscript doesn't have an equivalent Repology package.

Stats

Repobeats analytics image

License

    ____             __  __
   / __ \____ ______/ / / /___
  / /_/ / __ `/ ___/ / / / __ \
 / ____/ /_/ / /__/ /_/ / /_/ /
/_/    \__,_/\___/\____/ .___/
                      /_/

Copyright (C) 2022-present

This file is part of PacUp

PacUp is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

PacUp is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with PacUp.  If not, see <https://www.gnu.org/licenses/>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pacup-2.1.1.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

pacup-2.1.1-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file pacup-2.1.1.tar.gz.

File metadata

  • Download URL: pacup-2.1.1.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1019-azure

File hashes

Hashes for pacup-2.1.1.tar.gz
Algorithm Hash digest
SHA256 203083d1a2d8f146cef760ed0c90bf19d4068e67908edd7fd4092b0ece51d33c
MD5 d709cfac117f73ab179ead7ec7e9e241
BLAKE2b-256 89dfad0ec75c639af9de73d7f616b7be19da8b9c7d8866ee1fc44802d4c17cf1

See more details on using hashes here.

File details

Details for the file pacup-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: pacup-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1019-azure

File hashes

Hashes for pacup-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb8366a7490efcbc8f209f11bba1e729a0a66aabe0fdda66ef03581288905d79
MD5 9f75896507f4ce8ea86e81a20bd7bef3
BLAKE2b-256 55e1858047ef253ff296284b78eba0b7a204ba6cb7801845854a3e01ae5bc3fd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page