Skip to content
This repository has been archived by the owner on May 11, 2022. It is now read-only.
/ Excavator Public archive

🕳️ This container runs the updating services for all scoop manifest repos (deprecated)

License

Notifications You must be signed in to change notification settings

ScoopInstaller/Excavator

Repository files navigation

Excavator 🕳️

This image allows for automated updates of Scoop buckets.

Note: This image is no longer necessary - automated updates are handled by GitHub Actions now. Read https://github.com/ScoopInstaller/Scoop/wiki/Buckets#using-template for more information.

Usage

  • Add bin\bucket-updater.ps1 to your Bucket (see: bucket-updater.ps1)
  • Create docker-compose.yml on your Docker Host (see: docker-compose.yml)
  • Run docker-compose up
  • Add the generated public key to your GitHub account (see: ssh volume)

Environment Variables

The following Environment Variables are required for pushing changes to GitHub.

BUCKET=<user>/<repo>        # GitHub Repo (e.g. ScoopInstaller/Extras)
GIT_USERNAME=               # For "git config user.name"
GIT_EMAIL=                  # For "git config user.email"

# Optional:
SNOWFLAKES=curl,brotli      # Programs that should always be updated (comma separated)
CRONTAB=0 * * * *           # Change cron execution times (default: every hour)
METHOD=push                 # push = pushs to $BUCKET (default) / request = pull-request to $UPSTREAM
UPSTREAM=<user>/<repo>      # Upstream GitHub Repo for Pull-Request creating
SCOOP_DEBUG=true            # Enables Scoop debug output

Example bin\bucket-updater.ps1

param(
    # overwrite upstream param
    [String]$upstream = "<user>/<repo>:master"
)
if(!$env:SCOOP_HOME) { $env:SCOOP_HOME = resolve-path (split-path (split-path (scoop which scoop))) }
$autopr = "$env:SCOOP_HOME/bin/auto-pr.ps1"
$dir = "$psscriptroot/.." # checks the parent dir
iex -command "$autopr -dir $dir -upstream $upstream $($args |% { "$_ " })"

Example docker-compose.yml

version: "3"

services:
  bucket:
    image: r15ch13/excavator:latest
    deploy:
      mode: global # creates only one container
    volumes:
      - ssh:/root/.ssh
      - logs:/root/log
    environment:
      GIT_USERNAME: "Max Muster"
      GIT_EMAIL: "[email protected]"
      BUCKET: "maxmuster/my-bucket"
volumes:
  ssh:
  logs:

These Scoop buckets get automated updates

Logs

Current logs can be found at https://scoop.r15.ch

License

The MIT License (MIT)