|
1 | | -#!/bin/sh |
2 | | - |
| 1 | +# This Week in Rust - Publishing Tools |
3 | 2 | # TODO: Make sure running from latest "main" branch commit |
4 | 3 |
|
| 4 | +# Show available recipes |
| 5 | +help: |
| 6 | + @just --list |
| 7 | + |
5 | 8 | # Typical flows: |
6 | 9 | # |
7 | | -# 1. `make website` |
| 10 | +# 1. `just website` |
8 | 11 | # The first workflow will generate the desired website, landing |
9 | | -# the end contents in the local "output-website/" directory. This is the |
| 12 | +# the end contents in the local "output-website/" directory. This is the |
10 | 13 | # equivalent of running `pelican --delete-output-directory content` |
11 | 14 | # from a properly instantantiated environment. |
12 | 15 | # |
|
16 | 19 | # |
17 | 20 | # Output: `output-website/` |
18 | 21 | # |
19 | | -# 2. `make copy-website-contents` |
| 22 | +# 2. `just copy-website-contents` |
20 | 23 | # This workflow will sync the `output-website/` directory from above, and sync |
21 | 24 | # it with the directory passed to it. Used for syncing state with |
22 | 25 | # this-week-in-rust.github.io repo. |
23 | 26 | # |
24 | | -# 3. `make email` |
| 27 | +# 3. `just email` |
25 | 28 | # This workflow will generate the desired email template, landing |
26 | | -# the end contents in the local "email/" directory. This is the |
| 29 | +# the end contents in the local "email/" directory. This is the |
27 | 30 | # equivalent of running `USE_EMAIL_THEME=1 pelican --delete-output-directory content` |
28 | 31 | # from a properly instantantiated environment, and running |
29 | 32 | # `juice --web-resources-images false /juice/in.html /juice/out.html` on the latest content post. |
30 | | -# |
| 33 | +# |
31 | 34 | # $ build clean generate-email optimize-email |
32 | 35 | # |
33 | 36 | # Output: `email/<NUMBER>-<YEAR>-<MONTH>-<DAY>-email.html` |
34 | 37 | # |
35 | 38 |
|
| 39 | +# Generate and host website locally |
36 | 40 | website: generate-website host-website |
| 41 | + |
| 42 | +# Copy website contents to this-week-in-rust.github.io repo |
37 | 43 | copy-website-contents: |
38 | | - @./copy_website_content_to_repo.sh |
| 44 | + ./copy_website_content_to_repo.sh |
| 45 | + |
| 46 | +# Generate and optimize email template |
39 | 47 | email: generate-email optimize-email |
40 | 48 |
|
41 | | -build: |
| 49 | +# Build Docker image |
| 50 | +docker-build: |
42 | 51 | cd .. && docker build -t twir -f publishing/Dockerfile . && cd - |
43 | 52 |
|
| 53 | +# Clean website output directories |
44 | 54 | clean-website: |
45 | | - @rm -rf output/ && rm -rf output-website/ && rm -rf juice/ |
| 55 | + rm -rf output/ output-website/ juice/ |
| 56 | + |
| 57 | +# Clean email output directories |
46 | 58 | clean-email: |
47 | | - @rm -rf output/ && rm -rf output-email-format/ && rm -rf email/ && rm -rf juice/ |
| 59 | + rm -rf output/ output-email-format/ email/ juice/ |
48 | 60 |
|
49 | | -generate-website: build clean-website |
| 61 | +# Generate website content |
| 62 | +generate-website: docker-build clean-website |
50 | 63 | @echo "Generating website..." |
51 | | - @docker run -it \ |
52 | | - -v $(shell pwd)/output-website:/usr/twir/output \ |
53 | | - twir:latest |
| 64 | + docker run -it \ |
| 65 | + -v {{justfile_directory()}}/output-website:/usr/twir/output \ |
| 66 | + twir:latest |
54 | 67 | @echo "Finished generating website." |
55 | 68 |
|
| 69 | +# Host website locally on port 8000 |
56 | 70 | host-website: |
57 | 71 | @echo "Hosting website..." |
58 | | - @docker run -it \ |
| 72 | + docker run -it \ |
59 | 73 | -p 8000:8000 \ |
60 | | - -v $(shell pwd)/output-website:/usr/twir/output:ro \ |
| 74 | + -v {{justfile_directory()}}/output-website:/usr/twir/output:ro \ |
61 | 75 | -it \ |
62 | 76 | twir:latest \ |
63 | 77 | bash run_server.sh |
64 | 78 | @echo "Finished hosting website." |
65 | 79 | @echo "" |
66 | | - @echo "To sync contents with your local 'this-week-in-rust.github.io' repo, run \033[1;33m'make copy-website-contents'\033[0m" |
| 80 | + @echo "To sync contents with your local 'this-week-in-rust.github.io' repo, run 'just copy-website-contents'" |
67 | 81 |
|
68 | | -generate-email: build clean-email |
| 82 | +# Generate email content |
| 83 | +generate-email: docker-build clean-email |
69 | 84 | @echo "Generating email..." |
70 | | - @docker run -it \ |
| 85 | + mkdir -p output-email-format |
| 86 | + docker run -it \ |
71 | 87 | -e USE_EMAIL_THEME=1 \ |
72 | | - -v $(shell pwd)/output-email-format:/usr/twir/output \ |
| 88 | + -v {{justfile_directory()}}/output-email-format:/usr/twir/output \ |
73 | 89 | twir:latest |
74 | 90 |
|
| 91 | +# Optimize email HTML for delivery |
75 | 92 | optimize-email: |
76 | 93 | @echo "Generating optimized email..." |
77 | | - @OUTPUT_PREFIX=output-email-format ./create_optimized_email.sh |
| 94 | + OUTPUT_PREFIX=output-email-format ./create_optimized_email.sh |
0 commit comments