Split scripts into `utils/'.
Add check for file encodings and line terminators. Use GBK/CRLF for `*.bat'.
This commit is contained in:
parent
ecb5ffd3d2
commit
e77a67d77d
75
Makefile
75
Makefile
@ -1,80 +1,19 @@
|
||||
# vim:ft=make:ts=4:sw=4
|
||||
|
||||
TITLE = pkuthss
|
||||
README = README
|
||||
MAJORVER = 1.4
|
||||
MINORVER = alpha2
|
||||
README = README
|
||||
TOLF = dos2unix -q
|
||||
TOCRLF = unix2dos -q
|
||||
TOGBK = recode UTF-8..GBK
|
||||
|
||||
PROJECT = $(TITLE)-$(call VER_GEN,)
|
||||
DIST_DOC = $(PROJECT)/doc
|
||||
DOC_UTF8LF = $(DIST_DOC)/utf8lf
|
||||
DOC_GBKCRLF = $(DIST_DOC)/gbkcrlf
|
||||
|
||||
FIND_UTF8 = -name '*utf8*'
|
||||
|
||||
NUMDATE = $(shell date '+%Y/%m/%d')
|
||||
CNDATE = $(shell date '+%Y年%-m月' | \
|
||||
LANG=zh_CN.UTF-8 sed 'y/0123456789/〇一二三四五六七八九/')
|
||||
VER_GEN = $(if $(MINORVER),$(MAJORVER)$(1)$(MINORVER),$(MAJORVER))
|
||||
|
||||
dist: dist-clean
|
||||
make dist-dir
|
||||
make doc-utf8lf
|
||||
make doc-gbkcrlf
|
||||
make dist-zip
|
||||
|
||||
dist-dir: tex/ doc/
|
||||
mkdir -p $(DIST_DOC)/
|
||||
cp -r tex/ $(PROJECT)/
|
||||
cp -r doc/ $(DOC_UTF8LF)/
|
||||
mv -f $(DOC_UTF8LF)/license/ $(DIST_DOC)/
|
||||
cp -r $(DOC_UTF8LF)/ $(DOC_GBKCRLF)/
|
||||
|
||||
doc-utf8lf:
|
||||
cd $(DOC_UTF8LF)/ && make
|
||||
mv $(DOC_UTF8LF)/$(TITLE).pdf $(PROJECT)/$(README).pdf
|
||||
cd $(DOC_UTF8LF)/ && make dist-clean
|
||||
|
||||
doc-gbkcrlf:
|
||||
find $(DOC_GBKCRLF) -type f -exec $(TOCRLF) '{}' ';'
|
||||
find $(DOC_GBKCRLF) -not '(' $(FIND_UTF8) ')' -type f -exec $(TOGBK) '{}' ';'
|
||||
sed -i 's;\(\\documentclass\[[^][]*\)UTF8\([^][]*\]{pkuthss}\);\1GBK\2;g' \
|
||||
$(DOC_GBKCRLF)/pkuthss.tex
|
||||
sed -i 's;\(\.\./tex/pkuthss-\)utf8\(.def\);\1gbk\2;g' \
|
||||
$(DOC_GBKCRLF)/chap/encl1.tex
|
||||
|
||||
dist-zip: $(PROJECT)
|
||||
zip -rmT $(PROJECT).zip $(PROJECT)/
|
||||
dist:
|
||||
utils/dist TITLE=$(TITLE) README=$(README)
|
||||
|
||||
dist-clean:
|
||||
cd doc && make dist-clean && cd -
|
||||
rm -rf $(PROJECT)/ $(PROJECT).zip
|
||||
utils/dist TITLE=$(TITLE) README=$(README) dist-clean
|
||||
|
||||
maintcheck:
|
||||
@echo '======================================================================'
|
||||
@echo '$@: keep GBK and UTF-8 files synchronised'
|
||||
@echo '======================================================================'
|
||||
iconv -f GBK tex/pkuthss-gbk.def | diff - tex/pkuthss-utf8.def || true
|
||||
@echo '======================================================================'
|
||||
@echo '$@: use "模版" instead of "模板"'
|
||||
@echo '======================================================================'
|
||||
grep -r '模板' . || true
|
||||
@echo '======================================================================'
|
||||
@echo '$@: remember to update documentation after modifications'
|
||||
@echo '$@: remember to review `git diff`'
|
||||
@echo '======================================================================'
|
||||
qa:
|
||||
utils/qa
|
||||
|
||||
revbump:
|
||||
sed -i '/\\Provides/,+1 s;\[[^ ]* [^ ]*;[$(NUMDATE) v$(call VER_GEN,-);g' \
|
||||
tex/*
|
||||
sed -i '/\\newcommand{\\docversion}/ s;{[^{}]\+}$$;{v$(call VER_GEN, )};g' \
|
||||
doc/pkuthss.tex
|
||||
sed -i '/date = / s;{[^{}]\+},$$;{$(CNDATE)},;g' doc/pkuthss.tex
|
||||
@echo '$@: remember to update the ChangeLog'
|
||||
@echo '$@: remember to tag the commit'
|
||||
@echo '$@: remember to use `git push --tags'\'
|
||||
@echo '$@: remember to add new download on Google Code'
|
||||
utils/revbump MAJORVER=$(MAJORVER) MINORVER=$(MINORVER)
|
||||
|
||||
|
||||
88
doc/Make.bat
88
doc/Make.bat
@ -1,44 +1,44 @@
|
||||
@rem Copyright (c) 2008-2009 solvethis
|
||||
@rem Copyright (c) 2010-2012 Casper Ti. Vector
|
||||
@rem Public domain.
|
||||
|
||||
@echo off
|
||||
|
||||
set JOBNAME=pkuthss
|
||||
@rem 这个变量的值可以为 latex 或 pdflatex。
|
||||
set LATEX=latex
|
||||
set BIBTEX=bibtex
|
||||
set GBK2UNI=gbk2uni
|
||||
set DVIPDF=dvipdfmx
|
||||
|
||||
if "%LATEX%"=="latex" (set DODVIPDF=%DVIPDF% %JOBNAME%
|
||||
) else (set DODVIPDF=echo No need to run %DVIPDF%.)
|
||||
@rem 用 pdflatex 时可能需要使用 gbk2uni 转换 .out 文件编码以防书签乱码。
|
||||
if "%LATEX%"=="pdflatex" (@rem set DOGBK2UNI=%GBK2UNI% %JOBNAME%
|
||||
) else (set DOGBK2UNI=echo No need to run %GBK2UNI%.)
|
||||
if "%1"=="" goto doc
|
||||
if "%1"=="doc" goto doc
|
||||
if "%1"=="clear" (goto clear) else (goto usage)
|
||||
|
||||
:doc
|
||||
cd img
|
||||
call Make.bat
|
||||
cd ..
|
||||
%LATEX% %JOBNAME%
|
||||
%BIBTEX% %JOBNAME%
|
||||
%DOGBK2UNI%
|
||||
%LATEX% %JOBNAME%
|
||||
%LATEX% %JOBNAME%
|
||||
%DODVIPDF%
|
||||
goto end
|
||||
|
||||
:clear
|
||||
del *.log *.aux *.bbl *.blg *.toc *.lof *.lot *.out *.dvi missfont.log chap\*.aux
|
||||
goto end
|
||||
|
||||
:usage
|
||||
echo %0 [doc] [clear]
|
||||
goto end
|
||||
|
||||
:end
|
||||
|
||||
@rem Copyright (c) 2008-2009 solvethis
|
||||
@rem Copyright (c) 2010-2012 Casper Ti. Vector
|
||||
@rem Public domain.
|
||||
|
||||
@echo off
|
||||
|
||||
set JOBNAME=pkuthss
|
||||
@rem 这个变量的值可以为 latex 或 pdflatex。
|
||||
set LATEX=latex
|
||||
set BIBTEX=bibtex
|
||||
set GBK2UNI=gbk2uni
|
||||
set DVIPDF=dvipdfmx
|
||||
|
||||
if "%LATEX%"=="latex" (set DODVIPDF=%DVIPDF% %JOBNAME%
|
||||
) else (set DODVIPDF=echo No need to run %DVIPDF%.)
|
||||
@rem 用 pdflatex 时可能需要使用 gbk2uni 转换 .out 文件编码以防书签乱码。
|
||||
if "%LATEX%"=="pdflatex" (@rem set DOGBK2UNI=%GBK2UNI% %JOBNAME%
|
||||
) else (set DOGBK2UNI=echo No need to run %GBK2UNI%.)
|
||||
if "%1"=="" goto doc
|
||||
if "%1"=="doc" goto doc
|
||||
if "%1"=="clear" (goto clear) else (goto usage)
|
||||
|
||||
:doc
|
||||
cd img
|
||||
call Make.bat
|
||||
cd ..
|
||||
%LATEX% %JOBNAME%
|
||||
%BIBTEX% %JOBNAME%
|
||||
%DOGBK2UNI%
|
||||
%LATEX% %JOBNAME%
|
||||
%LATEX% %JOBNAME%
|
||||
%DODVIPDF%
|
||||
goto end
|
||||
|
||||
:clear
|
||||
del *.log *.aux *.bbl *.blg *.toc *.lof *.lot *.out *.dvi missfont.log chap\*.aux
|
||||
goto end
|
||||
|
||||
:usage
|
||||
echo %0 [doc] [clear]
|
||||
goto end
|
||||
|
||||
:end
|
||||
|
||||
|
||||
@ -48,8 +48,8 @@ doc:
|
||||
$(DODVIPDF)
|
||||
|
||||
clean:
|
||||
$(RM) $(JOBNAME).log $(JOBNAME).aux $(JOBNAME).bbl $(JOBNAME).blg\
|
||||
$(JOBNAME).toc $(JOBNAME).lof $(JOBNAME).lot $(JOBNAME).out\
|
||||
$(RM) $(JOBNAME).log $(JOBNAME).aux $(JOBNAME).bbl $(JOBNAME).blg \
|
||||
$(JOBNAME).toc $(JOBNAME).lof $(JOBNAME).lot $(JOBNAME).out \
|
||||
$(JOBNAME).dvi missfont.log
|
||||
$(RM) chap/*.aux
|
||||
|
||||
|
||||
@ -1,29 +1,29 @@
|
||||
@rem Copyright (c) 2008-2009 solvethis
|
||||
@rem Copyright (c) 2010-2012 Casper Ti. Vector
|
||||
@rem Public domain.
|
||||
|
||||
@echo off
|
||||
|
||||
set GS=gswin32c
|
||||
set GSOPTS=-q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite
|
||||
set WIDTHOPT=-dDEVICEWIDTHPOINTS=
|
||||
set HEIGHTOPT=-dDEVICEHEIGHTPOINTS=
|
||||
set OUTPUTOPT=-sOutputFile=
|
||||
|
||||
if "%1"=="" goto pdf
|
||||
if "%1"=="clean" (goto clean) else (goto usage)
|
||||
|
||||
:pdf
|
||||
%GS% %GSOPTS% %WIDTHOPT%400 %HEIGHTOPT%400 %OUTPUTOPT%pkulogo.pdf -f pkulogo.eps
|
||||
%GS% %GSOPTS% %WIDTHOPT%525 %HEIGHTOPT%150 %OUTPUTOPT%pkuword.pdf -f pkuword.eps
|
||||
goto end
|
||||
|
||||
:clean
|
||||
del pkulogo.pdf pkuword.pdf
|
||||
goto end
|
||||
|
||||
:usage
|
||||
echo %0 [pdf] [clean]
|
||||
|
||||
:end
|
||||
|
||||
@rem Copyright (c) 2008-2009 solvethis
|
||||
@rem Copyright (c) 2010-2012 Casper Ti. Vector
|
||||
@rem Public domain.
|
||||
|
||||
@echo off
|
||||
|
||||
set GS=gswin32c
|
||||
set GSOPTS=-q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite
|
||||
set WIDTHOPT=-dDEVICEWIDTHPOINTS=
|
||||
set HEIGHTOPT=-dDEVICEHEIGHTPOINTS=
|
||||
set OUTPUTOPT=-sOutputFile=
|
||||
|
||||
if "%1"=="" goto pdf
|
||||
if "%1"=="clean" (goto clean) else (goto usage)
|
||||
|
||||
:pdf
|
||||
%GS% %GSOPTS% %WIDTHOPT%400 %HEIGHTOPT%400 %OUTPUTOPT%pkulogo.pdf -f pkulogo.eps
|
||||
%GS% %GSOPTS% %WIDTHOPT%525 %HEIGHTOPT%150 %OUTPUTOPT%pkuword.pdf -f pkuword.eps
|
||||
goto end
|
||||
|
||||
:clean
|
||||
del pkulogo.pdf pkuword.pdf
|
||||
goto end
|
||||
|
||||
:usage
|
||||
echo %0 [pdf] [clean]
|
||||
|
||||
:end
|
||||
|
||||
|
||||
@ -33,5 +33,3 @@ pkuword.pdf: pkuword.eps
|
||||
clean:
|
||||
$(RM) pkulogo.pdf pkuword.pdf
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
|
||||
46
utils/dist
Executable file
46
utils/dist
Executable file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/make -f
|
||||
# vim:ts=4:sw=4
|
||||
|
||||
MAJORVER = 1.4
|
||||
MINORVER = alpha2
|
||||
TOLF = dos2unix -q
|
||||
TOCRLF = unix2dos -q
|
||||
TOGBK = recode UTF-8..GBK
|
||||
|
||||
VER_GEN = $(if $(MINORVER),$(MAJORVER)$(1)$(MINORVER),$(MAJORVER))
|
||||
PROJECT = $(TITLE)-$(call VER_GEN,)
|
||||
DIST_DOC = $(PROJECT)/doc
|
||||
DOC_UTF8LF = $(DIST_DOC)/utf8lf
|
||||
DOC_GBKCRLF = $(DIST_DOC)/gbkcrlf
|
||||
|
||||
FIND_UTF8 = -name '*utf8*'
|
||||
|
||||
dist: dist-clean dist-dir doc-utf8lf doc-gbkcrlf dist-zip
|
||||
|
||||
dist-dir: tex/ doc/
|
||||
mkdir -p $(DIST_DOC)/
|
||||
cp -r tex/ $(PROJECT)/
|
||||
cp -r doc/ $(DOC_UTF8LF)/
|
||||
mv -f $(DOC_UTF8LF)/license/ $(DIST_DOC)/
|
||||
cp -r $(DOC_UTF8LF)/ $(DOC_GBKCRLF)/
|
||||
|
||||
doc-utf8lf:
|
||||
cd $(DOC_UTF8LF)/ && make
|
||||
mv $(DOC_UTF8LF)/$(TITLE).pdf $(PROJECT)/$(README).pdf
|
||||
cd $(DOC_UTF8LF)/ && make dist-clean
|
||||
|
||||
doc-gbkcrlf:
|
||||
find $(DOC_GBKCRLF) -type f -exec $(TOCRLF) '{}' ';'
|
||||
find $(DOC_GBKCRLF) -not '(' $(FIND_UTF8) ')' -type f -exec $(TOGBK) '{}' ';'
|
||||
sed -i 's;\(\\documentclass\[[^][]*\)UTF8\([^][]*\]{pkuthss}\);\1GBK\2;g' \
|
||||
$(DOC_GBKCRLF)/pkuthss.tex
|
||||
sed -i 's;\(\.\./tex/pkuthss-\)utf8\(.def\);\1gbk\2;g' \
|
||||
$(DOC_GBKCRLF)/chap/encl1.tex
|
||||
|
||||
dist-zip: $(PROJECT)
|
||||
zip -rmT $(PROJECT).zip $(PROJECT)/
|
||||
|
||||
dist-clean:
|
||||
cd doc && make dist-clean && cd -
|
||||
rm -rf $(PROJECT)/ $(PROJECT).zip
|
||||
|
||||
44
utils/qa
Executable file
44
utils/qa
Executable file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/make -f
|
||||
# vim:ts=4:sw=4
|
||||
|
||||
FIND_GBK = -name '*gbk*' -o -iname '*.bat*'
|
||||
FIND_CRLF = -name '*.bat*'
|
||||
FIND_VCS = -type -d -name '.git' -prune
|
||||
|
||||
# IGNORE "error"s intentionally.
|
||||
.IGNORE qa: enc lt sync spell tail
|
||||
|
||||
enc:
|
||||
@echo '======================================================================'
|
||||
@echo '$@: check file encodings'
|
||||
@echo '======================================================================'
|
||||
find . $(FIND_GBK) -type f -exec file '{}' '+' | grep -v GB
|
||||
find . -not '(' $(FIND_VCS) ')' -not '(' $(FIND_GBK) ')' \
|
||||
-type f -exec file '{}' '+' | grep GB
|
||||
|
||||
lt:
|
||||
@echo '======================================================================'
|
||||
@echo '$@: check line terminators'
|
||||
@echo '======================================================================'
|
||||
find . $(FIND_CRLF) -type f -exec file '{}' '+' | grep -v CRLF
|
||||
find . -not '(' $(FIND_VCS) ')' -not '(' $(FIND_CRLF) ')' \
|
||||
-type f -exec file '{}' '+' | grep CRLF
|
||||
|
||||
sync:
|
||||
@echo '======================================================================'
|
||||
@echo '$@: keep GBK and UTF-8 files synchronised'
|
||||
@echo '======================================================================'
|
||||
iconv -f GBK tex/pkuthss-gbk.def | diff - tex/pkuthss-utf8.def
|
||||
|
||||
spell:
|
||||
@echo '======================================================================'
|
||||
@echo '$@: use "模版" instead of "模板"'
|
||||
@echo '======================================================================'
|
||||
grep -r '模板' .
|
||||
|
||||
tail:
|
||||
@echo '======================================================================'
|
||||
@echo '$@: remember to update documentation after modifications'
|
||||
@echo '$@: remember to review `git diff`'
|
||||
@echo '======================================================================'
|
||||
|
||||
19
utils/revbump
Executable file
19
utils/revbump
Executable file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/make -f
|
||||
# vim:ts=4:sw=4
|
||||
|
||||
NUMDATE = $(shell date '+%Y/%m/%d')
|
||||
CNDATE = $(shell date '+%Y年%-m月' | \
|
||||
LANG=zh_CN.UTF-8 sed 'y/0123456789/〇一二三四五六七八九/')
|
||||
VER_GEN = $(if $(MINORVER),$(MAJORVER)$(1)$(MINORVER),$(MAJORVER))
|
||||
|
||||
revbump:
|
||||
sed -i '/\\Provides/,+1 s;\[[^ ]* [^ ]*;[$(NUMDATE) v$(call VER_GEN,-);g' \
|
||||
tex/*
|
||||
sed -i -e '/date = / s;{[^{}]\+},$$;{$(CNDATE)},;g' \
|
||||
-e '/\\newcommand{\\docversion}/ s;{[^{}]\+}$$;{v$(call VER_GEN, )};g' \
|
||||
doc/pkuthss.tex
|
||||
@echo '$@: remember to update the ChangeLog'
|
||||
@echo '$@: remember to tag the commit'
|
||||
@echo '$@: remember to `git push --tags'\'
|
||||
@echo '$@: remember to add new download on Google Code'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user