Skip to content

flcdrg/au-packages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

436c226 · Aug 15, 2024
Mar 30, 2024
Apr 19, 2020
Jun 19, 2024
Jun 19, 2024
Aug 15, 2024
Aug 15, 2024
Jul 24, 2024
Aug 7, 2024
Aug 7, 2024
Jun 24, 2024
Mar 30, 2024
Jun 25, 2024
Aug 13, 2024
Jul 16, 2024
Jul 20, 2024
Mar 30, 2024
Jul 12, 2024
Mar 30, 2024
Aug 7, 2024
Aug 7, 2024
Mar 30, 2024
Aug 15, 2024
Aug 17, 2022
Aug 17, 2022
Aug 17, 2022
Aug 17, 2022
Aug 15, 2024
Aug 15, 2024
Apr 29, 2018
Aug 15, 2024
Aug 15, 2024
Apr 4, 2024
Mar 30, 2024
Mar 30, 2024
Feb 18, 2024
Jun 21, 2024
Mar 30, 2024
Jul 31, 2024
Mar 30, 2024
Jan 18, 2024
Jul 11, 2024
Jul 27, 2024
Jul 27, 2024
Mar 2, 2024
Mar 3, 2024
Mar 2, 2024
Jul 30, 2024
Jul 30, 2024
Mar 30, 2024
Aug 14, 2024
Oct 18, 2023
May 17, 2024
Mar 30, 2024
Mar 30, 2024
Mar 30, 2024
Jan 10, 2023
Mar 30, 2024
Apr 18, 2024
Aug 15, 2024
Aug 15, 2024
Aug 15, 2024
Aug 15, 2024
Apr 29, 2024
Apr 19, 2024
Jun 26, 2019
Jul 19, 2024
Dec 8, 2018
Jun 10, 2022
Mar 30, 2024
Jun 27, 2023
Aug 2, 2024
Jun 27, 2023
Jul 24, 2024
Jun 27, 2023
Dec 17, 2022
Dec 17, 2022
Jul 12, 2024
Dec 17, 2022
Feb 27, 2024
Jun 8, 2021
Jul 5, 2024
Oct 9, 2021
Jul 27, 2024
Aug 8, 2024
Jun 2, 2019
Aug 15, 2024
Aug 7, 2024
Mar 30, 2024
Jul 7, 2024
Jan 30, 2021
Jul 15, 2024
Aug 11, 2020
Aug 8, 2024
May 3, 2020
Aug 15, 2024
Aug 15, 2024
Apr 28, 2020
Mar 30, 2024
Mar 13, 2023
Mar 9, 2024
Sep 25, 2016
Jul 8, 2017
Nov 29, 2022
Apr 30, 2017
May 31, 2017
Jul 8, 2017
Jan 11, 2018
May 16, 2018
Jan 23, 2020

Repository files navigation

Chocolatey packages

Chocolatey Profile AppVeyor Update Status

This repository contains my Chocolatey packages. Where possible I use chocolatey automatic packages. These packages will have an update.ps1 script in the folder that is run daily to automatically detect and publish new versions.

If there is no update.ps1, I haven't got around to creating one yet.

Do you use these packages? Show your appreciation by sponsoring me!

Contributions

If you have found a bug or have a suggestion, please feel free to raise an issue.

Pull requests are also most welcome!

Prerequisites

To run locally you will need:

In order to setup AppVeyor update runner please take a look at the AU wiki AppVeyor section.

Create a package

To create a new package see Creating the package updater script.

Testing the package

In a package directory run: Test-Package. This function can be used to start testing in chocolatey-test-environment via Vagrant parameter or it can test packages locally.

Automatic package update

Single package

Run from within the directory of the package to update that package:

    cd <package_dir>
    ./update.ps1

If this script is missing, the package is not automatic.
Set $au_Force = $true prior to script call to update the package even if no new version is found.

Multiple packages

To update all packages run ./update_all.ps1. It accepts few options:

./update_all.ps1 -Name a*                         # Update all packages which name start with letter 'a'
./update_all.ps1 -ForcedPackages 'cpu-z copyq'    # Update all packages and force cpu-z and copyq
./update_all.ps1 -ForcedPackages 'copyq:1.2.3'    # Update all packages but force copyq with explicit version
./update_all.ps1 -ForcedPackages 'libreoffice-streams\fresh:6.1.0]'    # Update all packages but force libreoffice-streams package to update stream `fresh` with explicit version `6.1.0`.
./update_all.ps1 -Root 'c:\packages'              # Update all packages in the c:\packages folder

The following global variables influence the execution of update_all.ps1 script if set prior to the call:

$au_NoPlugins = $true        #Do not execute plugins
$au_Push      = $false       #Do not push to chocolatey

You can also call AU method Update-AUPackages (alias updateall) on its own in the repository root. This will just run the updater for the each package without any other option from update_all.ps1 script. For example to force update of all packages with a single command execute:

    updateall -Options ([ordered]@{ Force = $true })

Testing all packages

You can force the update of all or subset of packages to see how they behave when complete update procedure is done:

./test_all.ps1                            # Test force update on all packages
./test_all.ps1 'cdrtfe','freecad', 'p*'   # Test force update on only given packages
./test_all.ps1 'random 3'                 # Split packages in 3 groups and randomly select and test 1 of those each time

Note: If you run this locally your packages will get updated. Use git reset --hard after running this to revert the changes.

Pushing To Community Repository Via Commit Message

You can force package update and push using git commit message. AppVeyor build is set up to pass arguments from the commit message to the ./update_all.ps1 script.

If commit message includes [AU <forced_packages>] message on the first line, the forced_packages string will be sent to the updater.

Examples:

  • [AU pkg1 pkg2]
    Force update ONLY packages pkg1 and pkg2.
  • [AU pkg1:ver1 pkg2 non_existent]
    Force pkg1 and use explicit version ver1, force pkg2 and ignore non_existent.

To see how versions behave when package update is forced see the force documentation.

You can also push manual packages with command [PUSH pkg1 ... pkgN]. This works for any package anywhere in the file hierarchy and will not invoke AU updater at all.

If there are no changes in the repository use --allow-empty git parameter:

    git commit -m '[AU copyq less:2.0]' --allow-empty
    git push

Start using AU with your own packages

To use this system with your own packages do the following steps:

  • Fork this project. If needed, rename it to au-packages.
  • Delete all existing packages.
  • Edit the README.md header with your repository info.
  • Set your environment variables. See AU wiki for details.

Add your own packages now, with this in mind:

  • You can keep both manual and automatic packages together. To get only AU packages any time use Get-AUPackages function (alias lsau or gau)
  • Keep all package additional files in the package directory (icons, screenshots etc.). This keeps everything related to one package in its own directory so it is easy to move it around or remove it.