Guest User

Untitled

a guest
Jun 15th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 2.13 KB | None | 0 0
  1. GENERATE_POST := engine/generate-post.sh
  2. GENERATE_CUT_POST := engine/generate-cut-post.sh
  3. GENERATE_PAGES := engine/generate-pages.sh
  4.  
  5. # Depends
  6. CONFIG := config
  7. TEMPLATE_DIR := template
  8. TEMPLATE_POST := $(TEMPLATE_DIR)/post.html
  9. TEMPLATE_PAGE := $(TEMPLATE_DIR)/page.html
  10. TEMPLATE_POST_ON_PAGE := $(TEMPLATE_DIR)/post-on-page.html
  11.  
  12. # Config
  13. # For build
  14. BUILT_DIR := built
  15. POSTS_BDIR := $(BUILT_DIR)/posts
  16. CUT_POSTS_BDIR := $(BUILT_DIR)/cut_posts
  17. PAGES_BDIR := $(BUILT_DIR)/pages
  18. POSTS_DIR := posts
  19.  
  20. POSTS := $(notdir $(wildcard $(POSTS_DIR)/*))
  21. FINAL_POSTS := $(patsubst %,%.html,$(basename $(POSTS)))
  22. FINAL_CUT_POSTS := $(patsubst %,%.html.cut,$(basename $(POSTS)))
  23.  
  24. # start )-------
  25. CUT_POSTS := $(shell ls -t $(POSTS_DIR))
  26. CUT_POSTS := $(addprefix $(CUT_POSTS_BDIR)/,$(CUT_POSTS))
  27. CUT_POSTS := $(addsuffix .html.cut,$(CUT_POSTS))
  28. # end   )-------
  29.  
  30. # For move
  31. BLOG_ROOT := ko
  32. POSTS_ROOT := $(BLOG_ROOT)/post/
  33.  
  34. # For generate pages
  35. NUMBER_POSTS_ON_PAGE := 10
  36. PAGES_NOT_DIR := $(shell echo $(POSTS) |\
  37.         awk '{\
  38.                 a = ARGC / $(NUMBER_POSTS_ON_PAGE);\
  39.                 b = ARGC % $(NUMBER_POSTS_ON_PAGE);\
  40.                 if(b != 0) { a = a + 1; }\
  41.                 print "index.html";\
  42.                 for(i = 1; i < a; i++) { print i".html"; }\
  43.             }')
  44. PAGES := $(addprefix $(PAGES_BDIR)/,$(PAGES_NOT_DIR))
  45.  
  46.  
  47. vpath %.html $(POSTS_BDIR)
  48. vpath %.html.cut $(CUT_POSTS_BDIR)
  49. vpath % $(POSTS_DIR)
  50.  
  51. .PHONY: all generate-posts make-built-dirs install generate-pages clean
  52.  
  53. all: generate-posts generate-pages
  54.  
  55. generate-pages: $(PAGES)
  56. $(PAGES): $(FINAL_CUT_POSTS)
  57.     $(GENERATE_PAGES) $(PAGES_BDIR) $(TEMPLATE_PAGE) $(CUT_POSTS)
  58.  
  59. generate-posts: make-built-dirs $(FINAL_POSTS)
  60. make-built-dirs: $(BUILT_DIR) $(POSTS_BDIR) $(CUT_POSTS_BDIR) $(PAGES_BDIR)
  61.  
  62. $(FINAL_POSTS): %.html: %
  63.     $(GENERATE_POST) $^ $(POSTS_BDIR) $(TEMPLATE_POST)
  64.  
  65. $(FINAL_CUT_POSTS): %.html.cut: %
  66.     $(GENERATE_CUT_POST) $^ $(CUT_POSTS_BDIR) $(TEMPLATE_POST_ON_PAGE) 10
  67.  
  68.  
  69. $(BUILT_DIR) $(POSTS_BDIR) $(CUT_POSTS_BDIR) $(PAGES_BDIR):
  70.     mkdir $@
  71.  
  72. install:
  73.     rm -rf $(BLOG_ROOT)/*
  74.     mkdir $(POSTS_ROOT)
  75.     cp $(POSTS_BDIR)/* $(POSTS_ROOT)
  76.     cp $(PAGES_BDIR)/* $(BLOG_ROOT)
  77.  
  78. clean:
  79.     rm -rf $(BUILT_DIR)
Add Comment
Please, Sign In to add comment