]> git.pld-linux.org Git - packages/rpm.git/commitdiff
- initial
authorpzurowski <pzurowski@pld-linux.org>
Tue, 23 Nov 2004 16:50:58 +0000 (16:50 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- svn module: https://svn.pld-linux.org/svn/banner.sh/

Changed files:
    banner.sh -> 1.1

banner.sh [new file with mode: 0644]

diff --git a/banner.sh b/banner.sh
new file mode 100644 (file)
index 0000000..666f275
--- /dev/null
+++ b/banner.sh
@@ -0,0 +1,271 @@
+#!/bin/sh
+#
+# bug reports send to pzurowski@pld-linux.org or pld-devel-* lists
+#
+# 2004, GPL 2+
+#
+# >> PLACE STANDARD GPL DISCLAIMER   H E R E .  <<
+#
+CONFIG=/etc/sysconfig/banner
+
+####################################################### CONFIG ########
+
+# default paramaters
+##########################
+
+BANNERDIR="/var/lib/banner/"
+# egrep regexp
+EXCLUDEFILES="(rpmnew$|rpmsave$|~$)"
+
+
+# config paramaeters
+##########################
+
+if [ -r $CONFIG ]; then
+       . $CONFIG
+fi
+
+
+# override parameters
+##########################
+
+ALL_BANNERS=0
+BANNERS=""
+NOBANNERS=""
+BANNER_LIST=""
+CHOOSE_NEWER="no"
+CHOOSE_OLDER="no"
+EXCLUDE_FLAG=0
+NEED_BANNER_LIST=0
+NEED_MTIME_CHECK=0
+NEW_APPEND=0
+NEW_BANNER=""
+NEW_SHOW=0
+
+#################################################### FUNCTIONS ########
+
+Usage()
+{
+       cat << EOF
+Usage: $(basename $0) [opitions] [banners]
+EOF
+}
+Help()
+{
+       Usage
+       cat << EOF
+-a
+--all       - all banners
+--delete    - delete wanted banners
+-e
+--exclude   - exclude following banners (usefull with -a)
+-h
+--help      - shows this help
+-i
+--include   - cancels effect of -e (EXCLUDED banners will remain excluded)
+-m
+--make      - makes a brand-new banner named as following para [1] (from stdin)
+-M          - same as above, but append if file exists
+-n
+--names     - shows names of the banners
+--newer     - all choosen banners should be newer than following para in seconds
+--older     - all choosen banners should be older than following para in seconds
+-s
+--show      - shows wanted banners
+-u
+--usage     - shows short help
+
+[1] - if there will be no slash ('/') in name then config dir will be used,
+      else -- specified.
+EOF
+}
+Unknown_para()
+{
+       cat << EOF
+Unknown parameter $1
+EOF
+       Help
+}
+check_banner_name()
+{
+       echo "$1"|sed 's,.*/,,'
+}
+check_banners_mtime()
+{
+       BANNERS="$1"
+       OLDER="$2"
+       NEWER="$3"
+       DATE=$(date +%s)
+       for BANNER in $BANNERS;do
+               STAT=$(stat -c %Y "$BANNERDIR/$BANNER")
+               if [ $OLDER != "no" -a $(( $DATE - $STAT )) -lt $OLDER ]; then
+                       BANNER=""
+               fi
+               if [ $NEWER != "no" -a $(( $DATE - $STAT )) -gt $NEWER ]; then
+                       BANNER=""
+               fi
+               echo $BANNER
+       done
+}
+delete_banners()
+{
+       BANNERS="$1"
+       rm -rf $(get_banner_location_list "$BANNER")
+}
+get_all_banner_list()
+{
+       ls "$BANNERDIR" | grep -E -v "$EXCLUDEFILES"
+}
+get_banner_list()
+{
+       BANNERS="$1"
+       NOBANNERS="$2"
+       for BANNER in $BANNERS; do
+               if [ -r "$BANNERDIR/$BANNER" ];then
+                       echo $NOBANNERS | grep -q $BANNER || echo $BANNER
+               fi
+       done
+}
+get_banner_location_list()
+{
+       BANNERS="$1"
+       for BANNER in $BANNERS; do
+               echo "$BANNERDIR/$BANNER"
+       done
+}
+make_banner()
+{
+       BANNER="$1"
+       SHOW="$2"
+       mkdir -p $(echo $BANNER|sed 's,/[^/]*$,,')
+       if [ $NEW_APPEND -eq 0 ]; then
+               cat > $BANNER
+       else
+               cat >> $BANNER
+       fi
+       if [ $SHOW -eq 1 ];then
+               cat $BANNER
+       fi
+}
+show_banner()
+{
+       cat $BANNERDIR/$1
+}
+show_banners()
+{
+       for BANNER in $*; do
+               show_banner $BANNER
+       done
+}
+######################################################## MAIN ########
+while [ ! -z $1 ]; do
+       case $1 in
+               -a|--all)
+                       ALL_BANNERS=1
+                       ;;
+               --delete)
+                       NEED_BANNER_LIST=1
+                       ACTION="delete"
+                       ;;
+               -e|--exclude)
+                       EXCLUDE_FLAG=1
+                       ;;
+               -h|--help)
+                       Help
+                       exit 0
+                       ;;
+               -i|--include)
+                       EXCLUDE_FLAG=0
+                       ;;
+               -m|--make|-M)
+                       NEED_BANNER_LIST=0
+                       if [ "$(check_banner_name $2)" == "$2" ]; then
+                               NEW_BANNER=$BANNERDIR/$(check_banner_name "$2")
+                       else
+                               NEW_BANNER="$2"
+                       fi
+                       ACTION="make"
+                       if [ "$1" == "-M" ];then
+                               NEW_APPEND=1
+                       else
+                               NEW_APPEND=0
+                       fi
+                       if [ -z "$NEW_BANNER" ];then
+                               Help
+                               exit 2
+                       fi
+                       shift
+                       ;;
+               -n|--names)
+                       NEED_BANNER_LIST=1
+                       ACTION="names"
+                       ;;
+               --newer)
+                       NEED_MTIME_CHECK=1
+                       CHOOSE_NEWER="$2"
+                       if [ -z "$CHOOSE_NEWER" ];then
+                               Help
+                               exit 2
+                       fi
+                       shift
+                       ;;
+               --older)
+                       NEED_MTIME_CHECK=1
+                       CHOOSE_OLDER="$2"
+                       if [ -z "$CHOOSE_OLDER" ];then
+                               Help
+                               exit 2
+                       fi
+                       shift
+                       ;;
+               -s|--show)
+                       NEED_BANNER_LIST=1
+                       NEW_SHOW=1
+                       ACTION="show"
+                       ;;
+               -u|--usage)
+                       Usage
+                       exit 0
+                       ;;
+               -*)
+                       Unknown_para "$1"
+                       exit 1
+                       ;;
+               *)
+                       if [ $EXCLUDE_FLAG -eq 0 ];then
+                               BANNERS="$BANNERS $(check_banner_name $1)"
+                       else
+                               NOBANNERS="$NOBANNERS $(check_banner_name $1)"
+                       fi
+                       ;;
+       esac
+       shift
+done
+
+if [ $ALL_BANNERS -ne 0 ]; then
+       BANNERS=`get_all_banner_list`
+fi
+if [ $NEED_BANNER_LIST -ne 0 ];then
+       BANNER_LIST=`get_banner_list "$BANNERS" "$NOBANNERS"`
+fi
+if [ $NEED_MTIME_CHECK -ne 0 ];then
+       BANNER_LIST=`check_banners_mtime "$BANNER_LIST" "$CHOOSE_OLDER" "$CHOOSE_NEWER"`
+fi
+
+case $ACTION in
+       "delete")
+               delete_banners $BANNER_LIST;
+               ;;
+       "make")
+               make_banner $NEW_BANNER $NEW_SHOW;
+               ;;
+       "names")
+               echo $BANNER_LIST;
+               ;;
+       "show")
+               show_banners $BANNER_LIST;
+               ;;
+esac
+
+
+
This page took 0.047647 seconds and 4 git commands to generate.