#!/bin/bash PROGNAME=${0##*/} # $HeadURL$ $LastChangedRevision$ # Configurable stuff VIDEO_VIEW_CMD=mpv IMAGE_VIEW_CMD=mpv PERIOD=10 # Other globals # Includes . $(miniade) || { echo "${0##*/}: ERROR: miniade failed (hint: run 'miniade' to see error)" >&2; exit 1; } main() { local MY_ARGS # Defaults for options # Process options miniade_process_options --help-handler=usage --special-opts-handler=special_opts_handler MY_ARGS "$@" && set -- "${MY_ARGS[@]}" # Sanity checks and derivations [ "X$AUTOPAA_MODE" = Xserver -o "X$AUTOPAA_MODE" = Xclient -o "X$AUTOPAA_MODE" = Xdeveloper ] || miniade_error "AUTOPAA_MODE: unset or invalid value" [ "X$PAA_STATE_PREFIX" = X/var/lib/paa -o "X$PAA_STATE_PREFIX" = X ] || miniade_error "looks like PAA_STATE_PREFIX is set wrong" # Guts # Ensure config read from stdin, not from editor session trap "rm -f /tmp/catonto.$$" 0 echo -e '#!/bin/sh\n\ncat > $1' > /tmp/catonto.$$ chmod 755 /tmp/catonto.$$ export EDITOR=/tmp/catonto.$$ REPOS="$(ls *.conf | sed -n 's/\.conf//p' | LC_ALL=C sort | paste -d' ' -s)" # Start with a clean slate [ ! -d ~/.paa ] || { TS=$(date +%Y%m%d%H%M%S); miniade_warning "moving ~/.paa to ~/.paa.pre-$TS ..."; mv ~/.paa ~/.paa.pre-$(date +%Y%m%d%H%M%S); } # For install servers ... if [ $AUTOPAA_MODE = server ]; then # Define repos paa -v repo centos rpm mirrored true paa -v repo debian-squeeze deb mirrored true paa -v repo debian-wheezy deb mirrored true paa -v repo epel rpm mirrored false paa -v repo localprivate-deb deb mirrored false paa -v repo localprivate-rpm rpm mirrored false paa -v repo localpublic-deb deb mirrored false paa -v repo localpublic-rpm rpm mirrored false paa -v repo multimedia-squeeze deb mirrored false paa -v repo multimedia-wheezy deb mirrored false paa -v repo debian-security deb accessed false # Configure repos correctly for REPO in $REPOS; do cat $REPO.conf | egrep -v '^(path|# Path to the repository)' | sed -e 's/UNRELEASED//' | paa -v editrepo $REPO done # Mirror repos paa -v mirror ALL-REPOS # Add all hosts for HOST in gnocchi farfalle penne spirali; do paa -v host $HOST deb debian squeeze amd64 done for HOST in fiori torchio macaroni alphabeti; do paa -v host $HOST deb debian wheezy amd64 done for HOST in cercis halusky nb016161; do paa -v host $HOST deb ubuntu precise amd64 done for HOST in linguine; do paa -v host $HOST deb ubuntu precise i386 done for HOST in spaghetti; do paa -v host $HOST rpm centos 6.3 x86_64 done # Configure indirects paa -v indirect ALL-REPOS ALL-HOSTS NEWEST-FREEZE # Configure shares paa -v share ALL-REPOS ALL-HOSTS # Configure access for this host paa -v access ALL-REPOS fi # For install clients ... if [ $AUTOPAA_MODE = client ]; then paa -v repo centos rpm accessed true paa -v repo debian-squeeze deb accessed true paa -v repo debian-wheezy deb accessed true paa -v repo epel rpm accessed false paa -v repo localprivate-deb deb accessed false paa -v repo localprivate-rpm rpm accessed false paa -v repo localpublic-deb deb accessed false paa -v repo localpublic-rpm rpm accessed false paa -v repo multimedia-squeeze deb accessed false paa -v repo multimedia-wheezy deb accessed false paa -v repo debian-security deb accessed false # Configure repos correctly for REPO in $REPOS; do # Certain directives in the config files are not applicable for remote access only. cat $REPO.conf | egrep -v '^(mirror_cmd|mirror_dir|freeze_dir|indirect_dir|# The path to your mirror|# The path to your freezes|# The path to your indirect)' | paa -v editrepo $REPO done paa -v host THIS-HOST # Configure access paa -v access ALL-REPOS fi # For developers, who build and insert packages if [ $AUTOPAA_MODE = developer ]; then paa -v repo localprivate-deb deb owned false paa -v repo localprivate-rpm rpm owned false paa -v repo localpublic-deb deb owned false paa -v repo localpublic-rpm rpm owned false # Configure repos correctly for REPO in $REPOS; do [[ $REPO =~ ^local ]] || continue cat $REPO.conf | egrep -v '^(mirror_cmd|# The command to update the mirror)' | paa -v editrepo $REPO done fi } main "$@"