1 | clean:
|
2 | rm -rf ./src
|
3 | rm -rf ./public
|
4 | rm -rf ./.storybook
|
5 |
|
6 | build:
|
7 | mkdir -p ./src
|
8 | mkdir -p ./public
|
9 |
|
10 | if [ -d './sources/assets' ]; then \
|
11 | mkdir -p ./public/assets; \
|
12 | cp -R ./sources/assets/* ./public/assets; \
|
13 | fi
|
14 |
|
15 | make .pug
|
16 | make .styl
|
17 | make .coffee
|
18 | make .js
|
19 |
|
20 | make .jpg
|
21 | make .png
|
22 |
|
23 | make .public
|
24 |
|
25 | findPath = findPath() { \
|
26 | file_ext=$$1; \
|
27 | file_handler=$$2; \
|
28 | for filepath in `find ./sources -print | grep "$$file_ext"`; do \
|
29 | if [ $$file_ext = '\.pug' ]; then \
|
30 | output_kw='public'; \
|
31 | else \
|
32 | output_kw='src'; \
|
33 | fi; \
|
34 | output_dir=`echo "$$filepath" | sed "s/sources/$${output_kw}/g" | xargs dirname`; \
|
35 | mkdir -p $$output_dir; \
|
36 | $$file_handler $$file_ext $$filepath $$output_dir; \
|
37 | done; \
|
38 | }
|
39 |
|
40 | extHandler = extHandler() { \
|
41 | file_ext=$$1; \
|
42 | source_path=$$2; \
|
43 | output_dir=$$3; \
|
44 | file_name=`echo $$source_path | rev | cut -d'/' -f 1 | rev`; \
|
45 | case "$$file_ext" in \
|
46 | '\.pug' ) \
|
47 | pug -P -o $$output_dir $$source_path; \
|
48 | ;; \
|
49 | '\.styl' ) \
|
50 | stylus --out $$output_dir $$source_path; \
|
51 | ;; \
|
52 | '\.coffee' ) \
|
53 | coffee -c -b -o $$output_dir $$source_path; \
|
54 | ;; \
|
55 | '\.js' ) \
|
56 | cp $$source_path $$output_dir; \
|
57 | ;; \
|
58 | '\.jpg' ) \
|
59 | code="export default Image = \"data:image/jpeg;base64,`cat $$source_path | base64 -w 0`\";"; \
|
60 | echo -n $$code | tr -s '\r\n' ‘’ > $$output_dir/$$file_name.js; \
|
61 | ;; \
|
62 | '\.png' ) \
|
63 | code="export default Image = \"data:image/png;base64,`cat $$source_path | base64 -w 0`\";"; \
|
64 | echo -n $$code | tr -s '\r\n' ‘’ > $$output_dir/$$file_name.js; \
|
65 | ;; \
|
66 | '\.md' ) \
|
67 | code="export default Image = \"`cat $$source_path | md2html `\";"; \
|
68 | echo -n $$code | tr -s '\r\n' ‘’ > $$output_dir/$$file_name.js; \
|
69 | ;; \
|
70 | * ) \
|
71 | exit 1; \
|
72 | ;; \
|
73 | esac; \
|
74 | }
|
75 |
|
76 | .pug:
|
77 | @$(findPath); $(extHandler); \
|
78 | findPath '\.pug' extHandler
|
79 |
|
80 | .styl:
|
81 | @$(findPath); $(extHandler); \
|
82 | findPath '\.styl' extHandler
|
83 |
|
84 | .coffee:
|
85 | @$(findPath); $(extHandler); \
|
86 | findPath '\.coffee' extHandler
|
87 |
|
88 | .js:
|
89 | @$(findPath); $(extHandler); \
|
90 | findPath '\.js' extHandler
|
91 |
|
92 | .jpg:
|
93 | @$(findPath); $(extHandler); \
|
94 | findPath '\.jpg' extHandler
|
95 |
|
96 | .png:
|
97 | @$(findPath); $(extHandler); \
|
98 | findPath '\.png' extHandler
|
99 |
|
100 | .png:
|
101 | @$(findPath); $(extHandler); \
|
102 | findPath '\.md' extHandler
|
103 |
|
104 | .public:
|
105 | if [ -d './src/public' ]; then \
|
106 | mv ./src/public/* ./public; \
|
107 | rmdir './src/public'; \
|
108 | fi
|
109 |
|
110 | rebuild: clean
|
111 | if [ -d './sources/stories' ]; then \
|
112 | make story_book; \
|
113 | fi
|
114 | make build
|