bug
changeset 1 62028bd0c3af
parent 0 65975c04088e
child 2 d086ec1aec5d
equal deleted inserted replaced
0:65975c04088e 1:62028bd0c3af
     7 	EDITOR=vim
     7 	EDITOR=vim
     8 fi
     8 fi
     9 
     9 
    10 function usage
    10 function usage
    11 {
    11 {
    12 	echo "usage: $PNAME <add | list | search | create>"
    12 	echo "usage: $PNAME <add | list | view | edit | delete | create | project>"
    13 }
    13 }
    14 
    14 
    15 function create
    15 function create
    16 {
    16 {
    17 	echo 0 > "$BUG_PROJECT"
    17 	echo 0 > "$BUG_PROJECT"
    77 		return 1
    77 		return 1
    78 	fi
    78 	fi
    79 
    79 
    80 	LINES=`cat $1 | wc -l`
    80 	LINES=`cat $1 | wc -l`
    81 
    81 
    82 	# Substract Id, Subject and Priority
    82 	# Substract Id, Subject, State and Priority
    83 	TOTAIL=$(( LINES - 4 ))
    83 	TOTAIL=$(( LINES - 5 ))
    84 	DESCRIPTION=`tail -n $TOTAIL $1 | text2db | trimlastdbNL`
    84 	DESCRIPTION=`tail -n $TOTAIL $1 | text2db | trimlastdbNL`
    85 
    85 
    86 	echo "$ID	$PRIORITY	$STATE	$SUBJECT	$DESCRIPTION" >> $BUG_PROJECT
    86 	echo "$ID	$PRIORITY	$STATE	$SUBJECT	$DESCRIPTION" >> $BUG_PROJECT
    87 	updatenext $((ID + 1))
    87 	updatenext $((ID + 1))
    88 	return 0
    88 	return 0
    89 }
    89 }
    90 
    90 
    91 function list
    91 function list
    92 {
    92 {
    93 	echo "Id	Prior.	State	Subject"
    93 	echo "Id	Prior.	State	Subject"
    94 	LINES=`cat $BUG_PROJECT | wc -l`
    94 	catlist | cut -f 1,2,3,4 | sort -n -r -k 2
    95 
       
    96 	# Substract Meta and sort by priority the output
       
    97 	TOTAIL=$(( LINES - 1 ))
       
    98 	tail -n $TOTAIL $BUG_PROJECT | cut -f 1,2,3 | sort -n -r -k 2
       
    99 }
    95 }
   100 
    96 
   101 function view
    97 function view
   102 {
    98 {
   103 	ID=$1
    99 	ID=$1
   104 
   100 
   105 	LINES=`cat $BUG_PROJECT | wc -l`
   101 	LINE=`catlist | grep "^$ID	"`
   106 	# Substract Meta and sort by priority the output
       
   107 	TOTAIL=$(( LINES - 1 ))
       
   108 	LINE=`tail -n $TOTAIL $BUG_PROJECT | grep "^$ID"'\t'`
       
   109 
   102 
   110 	if [ "x$LINE" != "x" ]; then
   103 	if [ "x$LINE" != "x" ]; then
   111 		PRIORITY=`echo "$LINE" | cut -f 2`
   104 		PRIORITY=`echo "$LINE" | cut -f 2`
   112 		STATE=`echo "$LINE" | cut -f 3`
   105 		STATE=`echo "$LINE" | cut -f 3`
   113 		SUBJECT=`echo "$LINE" | cut -f 4`
   106 		SUBJECT=`echo "$LINE" | cut -f 4`
   117 		echo "Priority: $PRIORITY" | db2text
   110 		echo "Priority: $PRIORITY" | db2text
   118 		echo "State: $STATE" | db2text
   111 		echo "State: $STATE" | db2text
   119 		echo "Subject: $SUBJECT" | db2text
   112 		echo "Subject: $SUBJECT" | db2text
   120 		echo "-- Description below --"
   113 		echo "-- Description below --"
   121 		echo "$DESCRIPTION" | db2text
   114 		echo "$DESCRIPTION" | db2text
       
   115 		return 0
   122 	else
   116 	else
   123 		echo "Id not found." 2>&1
   117 		echo "Id not found." 2>&1
   124 	fi
   118 		return 1
       
   119 	fi
       
   120 }
       
   121 
       
   122 function catlist
       
   123 {
       
   124 	LINES=`cat $BUG_PROJECT | wc -l`
       
   125 	TOTAIL=$(( LINES - 1 ))
       
   126 	tail -n $TOTAIL $BUG_PROJECT | grep -v "^#"
       
   127 }
       
   128 
       
   129 function searchline
       
   130 {	
       
   131 	ID=$1
       
   132 
       
   133 	LINE=`cat $BUG_PROJECT | grep -n "^$ID	" | cut -d : -f 1`
       
   134 	if [ "x$LINE" != "x" ]; then
       
   135 		echo $LINE
       
   136 		return 0
       
   137 	else
       
   138 		return 1
       
   139 	fi
       
   140 }
       
   141 
       
   142 function delete
       
   143 {
       
   144 	ID=$1
       
   145 	LINE=`searchline $ID`
       
   146 	if [ $? -eq 0 ]; then
       
   147 		ed $BUG_PROJECT >&/dev/null << END
       
   148 $LINE
       
   149 d
       
   150 w
       
   151 q
       
   152 END
       
   153 	else
       
   154 		echo "Id not found." 2>&1
       
   155 	fi
       
   156 }
       
   157 
       
   158 function edit
       
   159 {
       
   160 	ID=$1
       
   161 
       
   162 	# Get a random file
       
   163 	FILE="/tmp/$RANDOM.txt"
       
   164 	while [ -f "$FILE" ]; do
       
   165 		FILE="/tmp/$RANDOM.txt"
       
   166 	done
       
   167 
       
   168 	view $ID > $FILE
       
   169 
       
   170 	if [ $? -eq 0 ]; then
       
   171 		MD5=`md5sum "$FILE"`
       
   172 
       
   173 		"$EDITOR" "$FILE"
       
   174 
       
   175 		MD5_bis=`md5sum "$FILE"`
       
   176 
       
   177 		if [ "$MD5" != "$MD5_bis" ]; then
       
   178 			delete $id
       
   179 			addfile "$FILE" && rm "$FILE"
       
   180 		else
       
   181 			echo "File not changed. Not changing the ticket."
       
   182 			rm "$FILE"
       
   183 		fi
       
   184 	else
       
   185 		echo "Id not found."
       
   186 		rm "$FILE"
       
   187 	fi
       
   188 
   125 }
   189 }
   126 
   190 
   127 function add
   191 function add
   128 {	
   192 {	
   129 	# Get a random file
   193 	# Get a random file
   174 		list
   238 		list
   175 		;;
   239 		;;
   176 	view)
   240 	view)
   177 		view $2
   241 		view $2
   178 		;;
   242 		;;
       
   243 	project)
       
   244 		echo Project: $BUG_PROJECT
       
   245 		;;
       
   246 	delete)
       
   247 		delete $2
       
   248 		;;
       
   249 	create)
       
   250 		create
       
   251 		;;
   179 	edit)
   252 	edit)
   180 		edit $2
   253 		edit $2
   181 		;;
       
   182 	create)
       
   183 		create
       
   184 		;;
   254 		;;
   185 	*)
   255 	*)
   186 		usage
   256 		usage
   187 		exit 1
   257 		exit 1
   188 		;;
   258 		;;
   189 esac
   259 esac
       
   260 exit 0
   190 
   261 
   191 # vim:ts=8:sw=8:noet
   262 # vim:ts=8:sw=8:noet