package init
This commit is contained in:
parent
c7f065ec57
commit
4a1484a5b8
151
spec_prep.sh
Normal file
151
spec_prep.sh
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
changelog_update(){
|
||||||
|
# changelog replace
|
||||||
|
sed -i '/^%changelog/,$d' $file
|
||||||
|
date=`date +"%a %b %_d %Y"`
|
||||||
|
name='yanan li'
|
||||||
|
email='liyanan032@huawei.com'
|
||||||
|
changelog="%changelog\n* $date $name <$email> - ${version}-$release\n- Package init"
|
||||||
|
echo -e $changelog >> $file #sed -n '/^%changelog/,$p' $file
|
||||||
|
echo "Hint: changelog updated"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
single_merge(){
|
||||||
|
awk -v key="$1" -v max_len=80 -F : \
|
||||||
|
'BEGIN {\
|
||||||
|
tmp="";\
|
||||||
|
} \
|
||||||
|
{\
|
||||||
|
if( key == $1 ){\
|
||||||
|
if( NF > 2){\
|
||||||
|
oofs=FS;FS="#";
|
||||||
|
bbb=sub(/[[:alnum:] ]+:/,"",$0);\
|
||||||
|
aaa=$bbb;
|
||||||
|
FS=oofs;
|
||||||
|
}\
|
||||||
|
else{\
|
||||||
|
$1=""; \
|
||||||
|
aaa=$0;\
|
||||||
|
}\
|
||||||
|
|
||||||
|
tmp1=tmp aaa
|
||||||
|
gsub(" +"," ",tmp1);\
|
||||||
|
#print FNR tmp1
|
||||||
|
if(length(tmp1) > max_len){\
|
||||||
|
gsub(" +"," ",tmp);\
|
||||||
|
printf "%-20s%s\n",key ":",tmp;\
|
||||||
|
tmp="";\
|
||||||
|
}\
|
||||||
|
tmp=tmp aaa;\
|
||||||
|
}\
|
||||||
|
else {\
|
||||||
|
if( length(tmp) != 0){\
|
||||||
|
gsub(" +"," ",tmp);\
|
||||||
|
printf "%-20s%s\n",key ":",tmp;\
|
||||||
|
tmp="";\
|
||||||
|
}\
|
||||||
|
print $0;\
|
||||||
|
}\
|
||||||
|
|
||||||
|
}'
|
||||||
|
}
|
||||||
|
|
||||||
|
headers_merge(){
|
||||||
|
cat $file | single_merge "BuildRequires" | single_merge "Requires" > .$file
|
||||||
|
mv -f .$file $file
|
||||||
|
echo "Hint: Tags merged"
|
||||||
|
}
|
||||||
|
|
||||||
|
delete_comment(){
|
||||||
|
sed -i '/^#.*/d' $file
|
||||||
|
echo "Hint: commentline deleted"
|
||||||
|
}
|
||||||
|
delete_blank(){
|
||||||
|
sed -i 's/[[:blank:]]\{1,\}$//g' $file
|
||||||
|
echo "Hint: tail-blank deleted "
|
||||||
|
}
|
||||||
|
|
||||||
|
insert_enter(){
|
||||||
|
sed -i '/^$/d' $file
|
||||||
|
sed -i '/^%package.*/i\ ' $file
|
||||||
|
sed -i '/^%pre.*/i\ ' $file
|
||||||
|
sed -i '/^%post.*/i\ ' $file
|
||||||
|
sed -i '/^%build.*/i\ ' $file
|
||||||
|
sed -i '/^%install.*/i\ ' $file
|
||||||
|
sed -i '/^%check*/i\ ' $file
|
||||||
|
sed -i '/^%files.*/i\ ' $file
|
||||||
|
sed -i '/^%changelog.*/i\ ' $file
|
||||||
|
echo "Hint: insert newline before stages"
|
||||||
|
}
|
||||||
|
|
||||||
|
increase_release(){
|
||||||
|
# release +1
|
||||||
|
sed -i "/^Release.*$/s/${release_oo}/${release}/" $file
|
||||||
|
# delete Group Tags
|
||||||
|
sed -i '/^Group.*/d' $file
|
||||||
|
echo "Hint: release ++"
|
||||||
|
}
|
||||||
|
|
||||||
|
header_align() {
|
||||||
|
awk '{
|
||||||
|
if ($0 ~ /^[A-Z][[:alnum:]]*: / ) {
|
||||||
|
va="";
|
||||||
|
for(i=2;i<=NF;i++){ va=va" "$i};
|
||||||
|
printf("%-20s%s\n",$1,va);
|
||||||
|
}
|
||||||
|
else print $0;
|
||||||
|
}' $file > .$file
|
||||||
|
mv -f .$file $file
|
||||||
|
echo "Hint: header_align done"
|
||||||
|
}
|
||||||
|
|
||||||
|
#################### main
|
||||||
|
main(){
|
||||||
|
|
||||||
|
file_o=$1
|
||||||
|
file=${file_o}.cp
|
||||||
|
cp -f $file_o $file
|
||||||
|
|
||||||
|
# got verison release
|
||||||
|
version=`cat $file |grep '^Version' | awk '{print $2}'`
|
||||||
|
release_oo=`cat $file |grep '^Release' | awk '{print $2}'`
|
||||||
|
release_o=`echo $release_oo | sed 's/%{.*}//'`
|
||||||
|
release=$((release_o+1))
|
||||||
|
|
||||||
|
#marcos_expand keep this bug ...
|
||||||
|
delete_comment
|
||||||
|
changelog_update
|
||||||
|
increase_release
|
||||||
|
header_align
|
||||||
|
headers_merge
|
||||||
|
insert_enter
|
||||||
|
delete_blank
|
||||||
|
|
||||||
|
#let's play
|
||||||
|
read -p "Hint: exec vimdiff $file $file_o ? enter [yes/no]: " ans
|
||||||
|
vimdiff $file $file_o
|
||||||
|
read -p "Hint: do mv -b -f $file $file_o ? enter [yes/no]: " ans
|
||||||
|
if [[ $ans =~ [Yy]([Ee][Ss])? ]];then
|
||||||
|
mv -b -f $file $file_o
|
||||||
|
echo "Hint: $file_o updated"
|
||||||
|
else
|
||||||
|
rm -f $file
|
||||||
|
echo "Hint: $file deleted. Not my bad :P "
|
||||||
|
fi
|
||||||
|
echo "From SONG: Enjoy your spec working !"
|
||||||
|
}
|
||||||
|
|
||||||
|
banner(){
|
||||||
|
cat <<eof
|
||||||
|
+-+-+-+-+-+-+-+-+-+
|
||||||
|
|s|p|e|c|_|p|r|e|p|
|
||||||
|
+-+-+-+-+-+-+-+-+-+
|
||||||
|
eof
|
||||||
|
}
|
||||||
|
if [[ $# != 1 ]];then
|
||||||
|
banner
|
||||||
|
echo "USAGE: $(basename $0) SPECFILE"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
banner
|
||||||
|
main $1
|
||||||
BIN
v3.2.1.tar.gz
Normal file
BIN
v3.2.1.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user