1
Fork 0
tildes-shepherd/Makefile.toml

80 lines
2.3 KiB
Makefile
Raw Normal View History

2023-06-11 11:21:46 +00:00
[env]
# Set BROWSER="firefox" if not already defined.
# All browser targets are defined in `source/types.d.ts` as a global `$browser`.
BROWSER = { condition = { env_not_set = ["BROWSER"] }, value = "firefox" }
# Set NODE_ENV="development" if not already defined.
# Either "development" or "production" should be used.
NODE_ENV = { condition = { env_not_set = ["NODE_ENV"] }, value = "development" }
# Start a browser instance that will reload the extension when changes are made.
[tasks.dev]
clear = true
2023-07-03 10:18:24 +00:00
dependencies = ["pnpm-install", "build"]
2023-06-11 11:21:46 +00:00
command = "pnpm"
args = ["conc", "-c=auto", "-k", "makers watch", "makers run"]
# Build the WebExtension.
[tasks.build]
clear = true
command = "pnpm"
args = ["tsx", "source/build.ts"]
# Remove build directories.
[tasks.clean]
clear = true
command = "pnpm"
args = ["trash", "build/${BROWSER}"]
# Run all other linting tasks.
[tasks.lint]
clear = true
dependencies = ["lint-js", "lint-scss"]
# Run XO.
[tasks.lint-js]
clear = true
command = "pnpm"
args = ["xo"]
# Run Stylelint.
[tasks.lint-scss]
clear = true
command = "pnpm"
args = ["stylelint", "source/**/*.scss"]
# Re-build and pack the WebExtension for publishing.
[tasks.pack]
clear = true
2023-07-03 10:18:24 +00:00
dependencies = ["pnpm-install", "clean", "build"]
2023-06-11 11:21:46 +00:00
command = "pnpm"
args = ["web-ext", "build", "--config=build/web-ext-${BROWSER}.json"]
2023-07-03 10:18:24 +00:00
# Run "pnpm install" if the node_modules directory doesn't exist.
[tasks.pnpm-install]
clear = true
# Disable NODE_ENV so pnpm installs everything.
env = { NODE_ENV = "" }
condition = { files_not_exist = ["node_modules/"] }
command = "pnpm"
args = ["install", "--silent"]
2023-06-11 11:21:46 +00:00
# Start a browser instance with the extension loaded.
[tasks.run]
clear = true
command = "pnpm"
# Set --target explicitly, since web-ext for some reason doesn't use the target
# set in the configuration file. https://github.com/mozilla/web-ext/issues/1862
env = { TARGET = { source = "${BROWSER}", default_value = "${BROWSER}", mapping = { "firefox" = "firefox-desktop" } } }
args = ["web-ext", "run", "--target=${TARGET}", "--config=build/web-ext-${BROWSER}.json"]
2023-06-11 11:21:46 +00:00
# Alias for `WATCH=true makers build`.
[tasks.watch]
env = { WATCH="true" }
extend = "build"
# Create a ZIP archive with only the source code, for AMO publishing.
[tasks.zip-source]
clear = true
command = "git"
args = ["archive", "--format=zip", "--output=build/tildes-shepherd-source.zip", "HEAD"]