OSDN Git Service

info/GNU_which: Add some explanations.
[linuxjm/jm.git] / admin / JM-release.sh
1 #!/bin/sh
2
3 usage() {
4     echo "Usage: `basename $0` <draft file> <release directory>"
5     echo "Options:"
6     echo "  -c : Copy mode. By default, sed is used to remove JM comments."
7     echo "  -f : Force Override the existing page"
8     echo "  -v : Verbose mode"
9 }
10
11 COPY=0
12 FORCE=0
13 GUESS=1
14 VERBOSE=0
15 QUIET=0
16
17 while getopts "cfgqv" OPT
18 do
19   case $OPT in
20     "c") COPY=1 ;;
21     "f") FORCE=1 ;;
22     "q") QUIET=1 ;;
23     "v") VERBOSE=1 ;;
24     *)   usage ;;
25   esac
26 done
27
28 shift `expr $OPTIND - 1`
29
30 # FORCE=0
31 # if [ "$1" = "-f" ]; then
32 #   FORCE=1
33 #   shift
34 # fi
35
36 if [ -z "$1" -a -z "$2" ]; then
37   usage
38   exit 1
39 fi
40
41 DRAFT=$1
42 RELDIR=$2
43 MANPAGE=`basename $DRAFT`
44 SECTION_NAME=$(basename $(dirname $DRAFT))
45 RELSECDIR=$RELDIR/$SECTION_NAME
46 RELEASE=$RELSECDIR/$MANPAGE
47
48 if [ ! -f $DRAFT ]; then
49   echo "draft file $DRAFT does not exist!"
50   exit 1
51 fi
52
53 if [ ! -d $RELDIR ]; then
54   echo "release directory $RELDIR does not exist!"
55   exit 1
56 fi
57
58 if [ ! -d $RELSECDIR ]; then
59   mkdir $RELSECDIR
60   echo "Created $RELSECDIR."
61 fi
62
63 if test -f $RELEASE && cmp $DRAFT $RELEASE > /dev/null; then
64   if [ $VERBOSE -eq 1 ]; then
65     echo "Skipped $(basename $DRAFT): draft and release pages are same."
66   fi
67   exit 0
68 fi
69
70 if [ -f $RELEASE -a $FORCE -ne 1 ]; then
71   echo -n "Overwrite $RELEASE (y/N) "
72   read ret
73   if [ "$ret" = "y" -o "$ret" = "Y" ]; then
74     echo "Remove $RELEASE"
75     rm $RELEASE
76   else
77     echo "Can't overwrite $RELEASE. Aborted"
78     exit 1
79   fi
80 fi
81
82 if [ $COPY -eq 1 ]; then
83   if [ $QUIET -eq 0 ]; then
84     OPT_V=-v
85   fi
86   cp -fp $OPT_V $DRAFT $RELEASE
87 else
88   sed -e '/^\.\\\"O /d' $DRAFT > $RELEASE
89   if [ $QUIET -eq 0 ]; then
90     echo "$DRAFT -> $RELEASE"
91   fi
92 fi
93
94 #echo "Succeed"