#!/bin/sh -u # # Create a new repository entry in /etc/yum.repos.d. # - Cameron Simpson 143dec2004 # : ${TMPDIR:=/tmp} yumdir=/etc/yum.repos.d cmd=`basename "$0"` usage="Usage: $cmd reponame baseurl [param=value...]" nl=' ' badopts= repo= repo_name= repo_enabled=enabled=1 repo_gpgcheck=gpgcheck=0 if [ $# = 0 ] then echo "$cmd: missing reponame" >&2 badopts=1 else repo=$1; shift if [ $# = 0 ] then echo "$cmd: missing baseurl" >&2 badopts=1 else baseurl=$1; shift repo_params=baseurl=$baseurl while [ $# -gt 0 ] do case "$1" in name=*) repo_name=$1 ;; enabled=*) repo_enabled=$1 ;; gpgcheck=*) repo_gpgcheck=$1 ;; *=*) repo_params=$repo_params$nl$1 ;; *)echo "$cmd: expected param=value, found \"$1\"" >&2 badopts=1 ;; esac shift done fi fi if [ -n "$repo" ] then repofile=$yumdir/$repo.repo if [ -s "$repofile" ] then echo "$cmd: $repofile already exists" >&2 badopts=1 fi fi if [ -z "$badopts" ] then if [ -z "$repo_name" ] then [ -t 0 -a -t 1 ] || { echo "$cmd: can't prompt for repo name: stdin and stdout should be terminals" >&2 badopts=1 } title=`readline "repo title> "` || exit 1 if [ -z "$title" ] then echo "$cmd: empty title rejected" >&2 badopts=1 else repo_name=name=$title fi fi fi [ $badopts ] && { echo "$usage" >&2; exit 2; } tmpf=$TMPDIR/$cmd.$$ echo "[$repo] $repo_name $repo_params $repo_enabled $repo_gpgcheck" >"$tmpf" || exit 1 exec mv -i "$tmpf" "$repofile"