#!/bin/sh ## author: parv, parv UNDERSCORE AT yahoo DOT com ## date: jan 08 2002 ## ## license: free to use as you please w/ proper credit given ## ## name: myslrn ## ## purpose: instead of remembering various slrn options, create a wrapper ## to put them in. easily helpful if you access more than one server ## ## usage: ## to connect to adl, news.adl.net, & newsrc containing graphic ## newsgroups in ${HOME}/cf/news/news-adl-graphic ... ## ## myslrn graphic ## ## to connect to the default server, adl, and default newsrc of ## ${HOME}/cf/news/news-adl ... ## ## myslrn ## ## to connect to the aleternate news server, news.pair.net, and newsrc ## {HOME}/cf/news/news-pair ... ## ## myslrn pair ## ## umask=177 # nntp servers; chsnge these to actual servers # ADL=news.adelphia.net EL=news.east.earthlink.net NETSCAPE=secnews.netscape.com # slrn configuration file SlrnCF=${HOME}/cf/slrn/slrn.cf # all NewsCF starts w/ this pattern: NewsCF-* # e.g. news-adl-graphic, news-pair, etc. # NewsCF=${HOME}/cf/news/news- # kill log directory name. if mkdir succeeds, then used as # file name later; if mkdir fails, then exit # KillLOG=${HOME}/log/news mkdir_fail() { mkdir -p "$1" rc=$? if [ ! $rc ] then echo "${1} directory could not be created, exiting..." exit else return $rc fi } file_err () { # show err msg w/ conf file name & exit # echo ' * ' "$1" does not exist or is not writeable, exiting... echo } news_fail () { # run slrn only if conf file is writeable # # slrn options: # n: don't check for new groups # f: conf file # h: nntp server # local type="$1" server="$2" shift shift if [ -f "${NewsCF}${type}" -a -w "${NewsCF}${type}" ] then touch "${NewsCF}${type}" rm -f "${KillLOG}${type}" #--debug "$HOME/log/news/slrn-debug" \ [ $? ] && exec slrn -k0 -n \ -i "$SlrnCF" -h "$server" \ -f "${NewsCF}${type}" \ --kill-log "${KillLOG}${type}" \ $@ rc=$? [ ! $rc ] && file_err "$type" else file_err "${NewsCF}${type}" fi return $rc } # try to make kill log directory; if failed, exit # mkdir_fail $KillLOG && KillLOG=${KillLOG}/kill- type="" case $# in 0) ;; *) type="$1" shift ;; esac case $type in audio|music|sound|mp3|ogg|vorbis) news_fail adl-audio $ADL "$@" ;; job*|wor*) news_fail adl-job $ADL "$@" ;; person* ) news_fail adl-misc $ADL "$@" ;; net*) news_fail netscape $NETSCAPE "$@" ;; *) news_fail adl $ADL ;; esac