nixpkgs-update/ups.sh
2018-03-19 22:37:51 -07:00

48 lines
1.0 KiB
Bash
Executable File

#! /usr/bin/env bash
set -euxo pipefail
LOG_FILE=~/.nix-update/ups.log
mkdir -p "$(dirname $LOG_FILE)"
touch $LOG_FILE
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
GITHUB_TOKEN="$(cat "$SCRIPT_DIR"/github_token.txt)"
export GITHUB_TOKEN
ARGUMENTS=$(cat packages-to-update.txt)
NIXPKGS=$HOME/.cache/nixpkgs
if ! [ -d "$NIXPKGS" ]
then
hub clone nixpkgs "$NIXPKGS" # requires that user has forked nixpkgs
cd "$NIXPKGS"
git remote add upstream https://github.com/NixOS/nixpkgs
git fetch upstream
git fetch origin staging
git fetch upstream staging
fi
cd "$NIXPKGS"
export DRY_RUN=true
echo "
$(date -Iseconds) New run of ups.sh" >> $LOG_FILE
OK_TO_PR_AT=0
IFS=$'\n'
for a in $ARGUMENTS
do
unset IFS
echo "$(date -Iseconds) $a" >> $LOG_FILE
if eval "$SCRIPT_DIR/up.sh $a $OK_TO_PR_AT 3>>$LOG_FILE"
then
echo "$(date -Iseconds) SUCCESS" >> $LOG_FILE
OK_TO_PR_AT=$(date +%s -d "+15 minutes")
else
echo "$(date -Iseconds) FAIL" >> $LOG_FILE
fi
done