更新Makefile
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
# Makefile for Quarto Project Automation
|
# Makefile for Quarto Project Automation
|
||||||
# Detect OS
|
# Detect OS
|
||||||
|
HOSTNAME := $(shell hostname)
|
||||||
OS := $(shell uname | tr A-Z a-z)
|
OS := $(shell uname | tr A-Z a-z)
|
||||||
ifeq ($(OS), darwin)
|
ifeq ($(OS), darwin)
|
||||||
OS := OSX
|
OS := OSX
|
||||||
@@ -49,13 +50,12 @@ GREPSTR := " \|(\|)\|^submit\|^analysis\|_cache\|_freeze\|^site_libs\|^www"
|
|||||||
|
|
||||||
all: local upload clean commit
|
all: local upload clean commit
|
||||||
|
|
||||||
force: check_git_status render filehash upload clean commit
|
force: updrefbib check_git_status render filehash upload clean commit
|
||||||
|
|
||||||
local: check_git_status lazyrender
|
local: updrefbib check_git_status lazyrender
|
||||||
|
|
||||||
# Update Makefile from a specific location if on macOS
|
|
||||||
updmakefile:
|
updmakefile:
|
||||||
@if [ "$(OS)" = "OSX" ]; then \
|
@if [ "$(OS)" = "OSX" ] && [ "$(HOSTNAME)" = "max" ]; then \
|
||||||
echo "基于 $$HOME/bin/publish2dw.Makefile 更新本项目 Makefile..."; \
|
echo "基于 $$HOME/bin/publish2dw.Makefile 更新本项目 Makefile..."; \
|
||||||
cp "$$HOME/bin/publish2dw.Makefile" "./Makefile"; \
|
cp "$$HOME/bin/publish2dw.Makefile" "./Makefile"; \
|
||||||
git add "Makefile" && git commit -m "Update Makefile"; \
|
git add "Makefile" && git commit -m "Update Makefile"; \
|
||||||
@@ -65,6 +65,23 @@ updmakefile:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
updrefbib:
|
||||||
|
@if [ "$(OS)" = "OSX" ] && [ "$(HOSTNAME)" = "max" ]; then \
|
||||||
|
echo "更新本项目参考文献..."; \
|
||||||
|
cp "$$HOME/literature/Ref.bib" "./BB/"; \
|
||||||
|
echo "推送本地参考文献到远程服务器..."; \
|
||||||
|
rsync -azvu --progress "$$HOME/literature/Ref.bib" "drwater@serev:/home/www/drwater/datapool/public/BB/Ref.bib"; \
|
||||||
|
echo "本项目参考文献更新完成."; \
|
||||||
|
else \
|
||||||
|
echo "更新本项目参考文献..."; \
|
||||||
|
wget -O BB/Ref.bib "https://drwater.rcees.ac.cn/datapool/public/BB/Ref.bib"; \
|
||||||
|
echo "本项目参考文献更新完成."; \
|
||||||
|
fi; \
|
||||||
|
git add BB/Ref.bib; \
|
||||||
|
if [ "$$(git diff --cached)" ]; then \
|
||||||
|
git commit -m "Update Ref.bib"; \
|
||||||
|
fi
|
||||||
|
|
||||||
check_git_status:
|
check_git_status:
|
||||||
@uncommitted=$$(git status --porcelain); \
|
@uncommitted=$$(git status --porcelain); \
|
||||||
if [ -n "$$uncommitted" ]; then \
|
if [ -n "$$uncommitted" ]; then \
|
||||||
@@ -163,7 +180,7 @@ clean:
|
|||||||
@rm -f ./*.spl ./*.aux ./*.bbl ./*.blg ./*.log ./*.tex ./*.bcf ./*.tex.sedbak ./*.fdb_latexmk
|
@rm -f ./*.spl ./*.aux ./*.bbl ./*.blg ./*.log ./*.tex ./*.bcf ./*.tex.sedbak ./*.fdb_latexmk
|
||||||
|
|
||||||
# Upload files to server and fix links
|
# Upload files to server and fix links
|
||||||
upload:
|
upload: backupdocx
|
||||||
@mkdir -p "$(outputdir)" && chmod -R 2775 "$(outputdir)"
|
@mkdir -p "$(outputdir)" && chmod -R 2775 "$(outputdir)"
|
||||||
@$(MAKE) fix_links
|
@$(MAKE) fix_links
|
||||||
@if rsync -azvu --progress --delete -r "$(outputdir)" "$(remotedir)"; then \
|
@if rsync -azvu --progress --delete -r "$(outputdir)" "$(remotedir)"; then \
|
||||||
@@ -181,6 +198,57 @@ upload:
|
|||||||
fi; \
|
fi; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
backupdocx:
|
||||||
|
@echo "备份MS.docx文件..."; \
|
||||||
|
currentcommithash=$$(git rev-parse --short HEAD); \
|
||||||
|
datetime=$$(git show -s --format=%ci $$currentcommithash | sed 's/[-: ]//g' | cut -c3-12); \
|
||||||
|
mkdir -p TC/MS/; \
|
||||||
|
existing_file=$$(find TC/MS -name "MS*.docx" -exec cmp -s www/MS/MS.docx {} \; -print -quit); \
|
||||||
|
if [ -n "$$existing_file" ]; then \
|
||||||
|
echo "与www/MS/MS.docx 内容相同的备份文件已存在: $$existing_file"; \
|
||||||
|
echo "无需备份."; \
|
||||||
|
else \
|
||||||
|
if [ ! -e TC/MS/MS$${datetime}_$${currentcommithash}.docx ]; then \
|
||||||
|
cp www/MS/MS.docx TC/MS/MS$${datetime}_$${currentcommithash}.docx; \
|
||||||
|
echo "备份TC/MS/MS-$${datetime}_$${currentcommithash}.docx完成."; \
|
||||||
|
git add TC/MS/MS-$${datetime}_$${currentcommithash}.docx; \
|
||||||
|
if [ "$$(git diff --cached)" ]; then \
|
||||||
|
git commit -m "备份TC/MS/MS-$${datetime}_$${currentcommithash}.docx"; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
echo "TC/MS/MS-$${datetime}_$${currentcommithash}.docx已存在,无需备份."; \
|
||||||
|
fi; \
|
||||||
|
fi;
|
||||||
|
|
||||||
|
|
||||||
|
trackchange:
|
||||||
|
@echo "选择两个提交以比较文档..."; \
|
||||||
|
hashes=$$(git log --pretty=format:'%h: %s BY %an (%ar)' \
|
||||||
|
| grep -E "$$(ls TC/MS/*.docx | xargs -n1 basename | sed -E 's/MS.*_([0-9a-f]+)\.docx/\1/' | tr '\n' '|')SMT_】" \
|
||||||
|
| fzf --multi --reverse --preview="echo {}" ); \
|
||||||
|
echo $$hashes; \
|
||||||
|
hash1=$$(echo $$hashes | sed -e 's/) \([a-z0-9]\{7\}:\)/)\n\1/g' | tail -n 1 | awk '{print $$1}' | tr -d ':'); \
|
||||||
|
datetime1=$$(git show -s --format=%ci $$hash1 | sed 's/[-: ]//g' | cut -c3-12); \
|
||||||
|
hash2=$$(echo $$hashes | sed -e 's/) \([a-z0-9]\{7\}:\)/)\n\1/g' | head -n 1 | awk '{print $$1}' | tr -d ':'); \
|
||||||
|
datetime2=$$(git show -s --format=%ci $$hash2 | sed 's/[-: ]//g' | cut -c3-12); \
|
||||||
|
if [ -z "$$hash1" ] || [ -z "$$hash2" ]; then \
|
||||||
|
echo "必须选择两个提交."; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
doc1="TC/MS/MS$${datetime1}_$$hash1.docx"; \
|
||||||
|
echo "$$doc1"; \
|
||||||
|
doc2="TC/MS/MS$${datetime2}_$$hash2.docx"; \
|
||||||
|
echo "$$doc2"; \
|
||||||
|
if [ -f "$$doc1" ] && [ -f "$$doc2" ] && [ "$$doc1" != "$$doc2" ]; then \
|
||||||
|
echo "打开文件: $$doc1 和 $$doc2"; \
|
||||||
|
open "$$doc1" "$$doc2"; \
|
||||||
|
printf "MS$${datetime1}-$${datetime2}_$${hash1}-$${hash2}" | pbcopy; \
|
||||||
|
echo "请在word中对比两个版本形成带修改痕迹的版本,并保存至TC/MS$${datetime1}-$${datetime2}_$${hash1}-$${hash2}.docx!"; \
|
||||||
|
else \
|
||||||
|
echo "一个或两个文件不存在: $$doc1, $$doc2"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Fix links in www directory
|
# Fix links in www directory
|
||||||
fix_links:
|
fix_links:
|
||||||
@find ./www -type f -name "*.html" -exec sed -i.bak \
|
@find ./www -type f -name "*.html" -exec sed -i.bak \
|
||||||
|
|||||||
Reference in New Issue
Block a user