#!/bin/ksh
#;CVS;program;sunlock
#;Program;to;unlock;the;file;to;release;the;lock;done;by;sedit
cmdname=`basename;$0`
Usage()
{
print;"nUsage:;$cmdname;[-r;revision_number];"
print;";The;options;-r;is;optional;"
print;"For;example;-;"
print;";$cmdname;-r;1.1;foo.cpp"
print;";$cmdname;foo.cpp;"
print;";"
}
#;Command;getopt;will;not;supported;in;next;major;release.;
#;Use;getopts;instead.;
while;getopts;r:;ii
do
case;$ii;in
r);FLAG1=$ii;;OARG1="$OPTARG"
?);Usage;;exit;2
esac
done
shift;`;expr;$OPTIND;-;1;`
if;[;$#;-lt;1;];;then
Usage
exit
fi
hme=`;echo;$HOME;|;cut;-f1;-d";";;`
if;[;"$hme";=;"";];;then
print;"nError:;$HOME;is;not;set!!n"
exit
fi
cur_dir=`pwd`
#echo;$cur_dir
len=${#hme}
len=$(($len; ;2))
#echo;$len
subdir=`;echo;$cur_dir;|;cut;-b;$len-2000;`
#echo;$subdir
if;[;"$subdir";=;"";];;then
fdname=$1
else
fdname=$subdir"/"$1
fi
#;If;file;is;already;checked;out;by;another;user....
cvs_root=`;echo;$CVSROOT;|;cut;-f1;-d";";;`
if;[;"$cvs_root";=;"";];;then
print;"nError:;$CVSROOT;is;not;set!!n"
exit
fi
cldir=$CVSROOT/$subdir/Locks
rcsfile=$CVSROOT/$subdir/$1,v
#echo;$rcsfile
if;[;!;-e;$rcsfile;];;then
print;"nError:;File;$1;does;not;exist;in;CVS;repository!!n"
exit
fi
#;Get;the;tip;revision;number;of;the;file....
#;Use;tmpfile;as;the;arg;cannot;be;set;inside;the;sub-shell
tmpfile=$hme/sedit-lock.tmp
rm;-f;$tmpfile;2>/dev/null
if;[;"$FLAG1";=;"";];;then
(
cd;$hme
cvs;log;$fdname;|;head;-6;|;grep;head:;|;awk;"{print;$2}";>;$tmpfile;
)
OARG1=`cat;$tmpfile`
rm;-f;$tmpfile;2>/dev/null
fi
lockfile=$cldir/$1-$OARG1
#echo;lockfile;is;:;$lockfile
if;[;!;-e;$lockfile;];;then
print;"nFile;$1;revision;$OARG1;is;NOT;locked;by;anyone"
print;";"
exit;
fi
ans=""
while;:
do
print;"nn***************************************************"
print;"WARNING:;$cmdname;will;release;lock;and;enable;other"
print;";developers;to;edit;the;file.;It;is;advisable"
print;";to;save;your;changes;with;scommit;command"
print;"***************************************************"
print;-n;"nAre;you;sure;you;want;to;unlock;the;file;?;[n]:;"
read;ans
if;[;"$ans";=;"";-o;"$ans";=;";";-o;"$ans";=;"n";-o;"$ans";=;"N";];;then
print;"nAborting;$cmdname;...."
exit
fi
if;[;"$ans";=;"y";-o;"$ans";=;"Y";];;then
print;"nnnnn;"
print;"CAUTION:;You;may;lose;all;the;changes;made;to;file!!"
print;-n;"Do;you;really;want;to;unlock;the;file;?;[n]:;"
read;ans
if;[;"$ans";=;"y";-o;"$ans";=;"Y";];;then
break
else
exit
fi
else
print;"nnWrong;entry.;Try;again..."
sleep;1
fi
done
if;[;-e;$lockfile;];;then
rm;-f;$lockfile
print;"nDone;$cmdname"
else
print;"nFile;$1;is;NOT;locked;by;anyone"
print;";"
fi
--------------------------------------------------------------------------------
4.6;slist;
注意;:;Korn;shell;/bin/ksh;在你从Linux;CD-ROM;安装;pdksh*.rpm;时就会产生;
请把他存成一般文字档并改变存取权限;chmod;a rx;
--------------------------------------------------------------------------------
#!/bin/ksh
#;CVS;program;slist
#;Program;to;list;all;edited;source;files;from;CVS
#cmdname=`basename;$0`
#echo;"no;of;params;:;";$#
#echo;"all;args;:;";$@
recurse_flag=""
if;[;"$1";=;"";];;then
dir=.
recurse_flag=""
else
dir=$@
recurse_flag=";-prune;"
fi
FOUT=slist_temporary_file.out
rm;-f;$FOUT
find;$dir;;$recurse_flag;-type;f;-exec;ls;-ltr;{};
|;grep;-v;"/CVS/";
|;grep;^-rw;
|;grep;-v;.o;
|;grep;-v;.log;
|;grep;-v;.out;
|;grep;-v;.pid;
|;awk;"{;if;($NF;!=;"tags");print;$0;}";
|;awk;"{;if;($NF;!=;"a.out");print;$0;}";
推荐阅读
- 1 CVS RCS HOWTO 原始程式码版本控制系统
- Linux 2.4 NAT HOWTO
- 5 Ethernet HOWTO Linux以太网-HOWTO 电缆、同轴电缆、双绞线
- The Linux Bootdisk HOWTO 中译版
- Beowulf 中文HOWTO
- Sound Blaster AWE 32/64 HOWTO 如何在Linux设定声卡
- Soundblaster 16 PnP Mini-Howto 如何在Linux设定16位P
- 新闻 Leafsite mini-HOWTO
- 使用LILO做为Win95+WinNT+Linux多重开机 mini-HOWTO
- LINUX modules 模块安装 MINI-HOWTO