diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b4e184..15a32ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,13 +12,13 @@ Changelog ### Added - Don't evaluate comments (#1358) -- Add skip-comments setting (#1333) -- Allow bash completion to complete tasks in other directories (#1303) +- Add skip-comments setting (#1333 by @neunenak) +- Allow bash completion to complete tasks in other directories (#1303 by @jpbochi) ### Misc - Restore www/CNAME (#1364) - Improve book config (#1363) -- Add kitchen sink justfile to test syntax highlighting (#1362) +- Add kitchen sink justfile to test syntax highlighting (#1362 by @nk9) - Note version in which absolute path construction was added (#1361) - Inline setup and cleanup functions in completion script test (#1352) @@ -26,17 +26,17 @@ Changelog --------------------------------------------------------------------- ### Changed -- Allow constructing absolute paths with `/` operator (#1320) +- Allow constructing absolute paths with `/` operator (#1320 by @erikkrieg) ### Misc - Allow fewer lints (#1340) -- Fix issues reported by nightly clippy (#1336) -- Refactor run.rs (#1335) +- Fix issues reported by nightly clippy (#1336 by @neunenak) +- Refactor run.rs (#1335 by @neunenak) - Allow comments on same line as settings (#1339) - Fix justfile env shebang on Linux (#1330) -- Update Chinese translation of README.md (#1325) +- Update Chinese translation of README.md (#1325 by @hustcer) - Add additional settings to grammar -- Add an example of using a variable in a recipe parameter (#1311) +- Add an example of using a variable in a recipe parameter (#1311 by @papertigers) [1.4.0](https://github.com/casey/just/releases/tag/1.4.0) - 2022-8-08 --------------------------------------------------------------------- @@ -47,10 +47,10 @@ Changelog ### Misc - Don't hardcode homebrew prefix (#1295) - Exclude files from cargo package (#1283) -- Add usage note to default list recipe (#1296) -- Add MPR/Prebuilt-MPR installation instructions to README.md (#1280) +- Add usage note to default list recipe (#1296 by @jpbochi) +- Add MPR/Prebuilt-MPR installation instructions to README.md (#1280 by @hwittenborn) - Add make and makesure to readme (#1299) -- Document how to configure zsh completions on MacOS (#1285) +- Document how to configure zsh completions on MacOS (#1285 by @nk9) - Convert package table to HTML (#1291) [1.3.0](https://github.com/casey/just/releases/tag/1.3.0) - 2022-7-25 @@ -63,52 +63,52 @@ Changelog - Fix multibyte codepoint crash (#1243) ### Misc -- Update just-install reference on README.md (#1275) +- Update just-install reference on README.md (#1275 by @0xradical) - Split Recipe::run into Recipe::{run_shebang,run_linewise} (#1270) -- Add asdf package to readme(#1264) -- Add mdbook deps for build-book recipe (#1258) (#1259) -- Fix typo: argumant -> argument (#1257) -- Improve error message if `if` is missing the `else` (#1252) -- Explain how to pass arguments of a command to a dependency (#1254) -- Update Chinese translation of README.md (#1253) -- Improvements to Sublime syntax file (#1250) -- Prevent unbounded recursion when parsing expressions (#1248) +- Add asdf package to readme(#1264 by @jaacko-torus) +- Add mdbook deps for build-book recipe (#1258 by @) (#1259 by @TopherIsSwell) +- Fix typo: argumant -> argument (#1257 by @kianmeng) +- Improve error message if `if` is missing the `else` (#1252 by @nk9) +- Explain how to pass arguments of a command to a dependency (#1254 by @heavelock) +- Update Chinese translation of README.md (#1253 by @hustcer) +- Improvements to Sublime syntax file (#1250 by @nk9) +- Prevent unbounded recursion when parsing expressions (#1248 by @evanrichter) - Publish to snap store (#1245) -- Restore fuzz test harness (#1246) -- Add just-install to README file (#1241) -- Fix dead readme link (#1240) +- Restore fuzz test harness (#1246 by @evanrichter) +- Add just-install to README file (#1241 by @brombal) +- Fix dead readme link (#1240 by @wdroz) - Do `use super::*;` instead of `use crate::common::*;` (#1239) - Fix readme punctuation (#1235) - Add argument splitting section to readme (#1230) - Add notes about environment variables to readme (#1229) - Fix book links (#1227) -- Add nushell README.md (#1224) +- Add nushell README.md (#1224 by @hustcer) - Use absolute links in readme (#1223) - Copy changelog into manual (#1222) -- Translate Chinese manual introduction and title (#1220) +- Translate Chinese manual introduction and title (#1220 by @hustcer) - Build Chinese language user manual (#1219) -- Update Chinese translation of README.md (#1218) -- Translate all of README.md into Chinese (#1217) -- Translate all of features in README into Chinese (#1215) +- Update Chinese translation of README.md (#1218 by @hustcer) +- Translate all of README.md into Chinese (#1217 by @hustcer) +- Translate all of features in README into Chinese (#1215 by @hustcer) - Make link to examples directory absolute (#1213) -- Translate part of features in README into Chinese (#1211) -- Add JetBrains IDE plugin to readme (#1209) -- Translate features chapter of readme to Chinese (#1208) +- Translate part of features in README into Chinese (#1211 by @hustcer) +- Add JetBrains IDE plugin to readme (#1209 by @linux-china) +- Translate features chapter of readme to Chinese (#1208 by @hustcer) [1.2.0](https://github.com/casey/just/releases/tag/1.2.0) - 2022-5-31 --------------------------------------------------------------------- ### Added - Add `windows-shell` setting (#1198) -- SHA-256 and UUID functions (#1170) +- SHA-256 and UUID functions (#1170 by @mbodmer) ### Misc -- Translate editor support and quick start to Chinese (#1206) -- Translate first section of readme into Chinese (#1205) +- Translate editor support and quick start to Chinese (#1206 by @hustcer) +- Translate first section of readme into Chinese (#1205 by @hustcer) - Fix a bunch of typos (#1204) - Remove cargo-limit usage from justfile (#1199) -- Add nix package manager install instructions (#1194) -- Fix broken link in readme (#1183) +- Add nix package manager install instructions (#1194 by @risingBirdSong) +- Fix broken link in readme (#1183 by @Vlad-Shcherbina) - Add screenshot to manual (#1181) - Style homepage (#1180) - Center readme (#1178) @@ -126,7 +126,7 @@ Changelog - Fix install script (#1172) - Document that `invocation_directory()` returns an absolute path (#1162) - Fix absolute_path documentation (#1160) -- Add cross-platform justfile example (#1152) +- Add cross-platform justfile example (#1152 by @presidento) [1.1.2](https://github.com/casey/just/releases/tag/1.1.2) - 2022-3-30 --------------------------------------------------------------------- @@ -149,8 +149,8 @@ Changelog --------------------------------------------------------------------- ### Added -- Add `error()` function (#1118) -- Add `absolute_path` function (#1121) +- Add `error()` function (#1118 by @chamons) +- Add `absolute_path` function (#1121 by @Laura7089) [1.0.1](https://github.com/casey/just/releases/tag/1.0.1) - 2022-2-28 --------------------------------------------------------------------- @@ -159,15 +159,15 @@ Changelog - Make path_exists() relative to current directory (#1122) ### Misc -- Detail environment variable usage in readme (#1086) -- Format --init justfile (#1116) +- Detail environment variable usage in readme (#1086 by @kenden) +- Format --init justfile (#1116 by @TheLocehiliosan) - Add hint for Node.js script compatibility (#1113) [1.0.0](https://github.com/casey/just/releases/tag/1.0.0) - 2022-2-22 --------------------------------------------------------------------- ### Added -- Add path_exists() function (#1106) +- Add path_exists() function (#1106 by @heavelock) ### Misc - Note that `pipefail` isn't normally set (#1108) @@ -177,20 +177,20 @@ Changelog ### Misc - Fix dotenv-load documentation (#1104) -- Fixup broken release package script (#1100) +- Fixup broken release package script (#1100 by @lutostag) [0.11.1](https://github.com/casey/just/releases/tag/0.11.1) - 2022-2-14 ----------------------------------------------------------------------- ### Added -- Allow duplicate recipes (#1095) +- Allow duplicate recipes (#1095 by @lutostag) ### Misc - Add arrow pointing to table of contents button (#1096) -- Improve readme (#1093) +- Improve readme (#1093 by @halostatue) - Remove asciidoc readme (#1092) - Convert README.adoc to markdown (#1091) -- Add choco package to README (#1090) +- Add choco package to README (#1090 by @michidk) [0.11.0](https://github.com/casey/just/releases/tag/0.11.0) - 2022-2-3 ---------------------------------------------------------------------- @@ -210,18 +210,18 @@ Changelog ----------------------------------------------------------------------- ### Added -- Add windows-powershell setting (#1057) +- Add windows-powershell setting (#1057 by @michidk) ### Changed - Allow using `-` and `@` in any order (#1063) ### Misc - Use `Context` suffix for snafu error contexts (#1068) -- Upgrade snafu to 0.7 (#1067) -- Mention "$@" in the README (#1064) -- Note how to use PowerShell with CLI in readme (#1056) +- Upgrade snafu to 0.7 (#1067 by @shepmaster) +- Mention "$@" in the README (#1064 by @mpdude) +- Note how to use PowerShell with CLI in readme (#1056 by @michidk) - Link to cheatsheet from readme (#1053) -- Link to Homebrew installation docs in readme (#1049) +- Link to Homebrew installation docs in readme (#1049 by @michidk) - Workflow tweaks (#1045) - Push to correct origin in publish recipe (#1044) @@ -232,7 +232,7 @@ Changelog - Use musl libc for ARM binaries (#1037) ### Misc -- Make completions work with Bash alias (#1035) +- Make completions work with Bash alias (#1035 by @kurtbuilds) - Run tests on PRs (#1040) - Improve GitHub Actions workflow triggers (#1033) - Publish from GitHub master branch instead of local master (#1032) @@ -243,12 +243,12 @@ Changelog ### Added - Add `--dump-format json` (#992) - Add `quote(s)` function for escaping strings (#1022) -- fmt: check formatting with `--check` (#1001) +- fmt: check formatting with `--check` (#1001 by @hdhoang) ### Misc - Refactor github actions (#1028) -- Fix readme formatting (#1030) -- Use ps1 extension for pwsh shebangs (#1027) +- Fix readme formatting (#1030 by @soenkehahn) +- Use ps1 extension for pwsh shebangs (#1027 by @dmringo) - Ignore leading byte order mark in source files (#1021) - Add color to `just --fmt --check` diff (#1015) @@ -264,12 +264,12 @@ Changelog ### Misc - Add alternatives and prior art section to readme (#1008) -- Fix readme `make`'s not correctly displayed (#1007) +- Fix readme `make`'s not correctly displayed (#1007 by @peter50216) - Document the default recipe (#1006) - Document creating user justfile recipe aliases (#1005) -- Fix readme typo (#1004) +- Fix readme typo (#1004 by @0xflotus) - Add packaging status table to readme (#1003) -- Reword `sh` not found error messages (#1002) +- Reword `sh` not found error messages (#1002 by @hdhoang) - Only pass +crt-static to cargo build (#997) - Stop using tabs in justfile in editorconfig (#996) - Use consistent rustflags formatting (#994) @@ -286,25 +286,25 @@ Changelog ### Misc - Add detailed instructions for installing prebuilt binaries (#978) - Improve readme package table formatting (#977) -- Add conda package to README (#976) +- Add conda package to README (#976 by @kellpossible) - Change MSRV to 1.46.0 (#968) - Use stable rustfmt instead of nightly (#967) - Fix readme typo: FOO → WORLD (#964) - Reword Emacs section in readme (#962) -- Mention justl mode for Emacs (#961) +- Mention justl mode for Emacs (#961 by @psibi) [0.10.1](https://github.com/casey/just/releases/tag/0.10.1) - 2021-8-27 ----------------------------------------------------------------------- ### Added -- Add flags for specifying name and path to environment file (#941) +- Add flags for specifying name and path to environment file (#941 by @Celeo) ### Misc - Fix error message tests for Alpine Linux (#956) - Bump `target` version to 2.0 (#957) - Mention `tree-sitter-just` in readme (#951) - Document release RSS feed in readme (#950) -- Add installation instructions for Gentoo Linux (#946) +- Add installation instructions for Gentoo Linux (#946 by @dm9pZCAq) - Make GitHub Actions instructions more prominent (#944) - Wrap `--help` text to terminal width (#940) - Add `.justfile` to sublime syntax file_extensions (#938) @@ -342,10 +342,10 @@ Changelog - Fix circular variable dependency error message (#909) ### Misc -- Improve readme (#904) +- Improve readme (#904 by @mtsknn) - Add screenshot to readme (#911) -- Add install instructions for Fedora Linux (#898) -- Fix readme typos (#903) +- Add install instructions for Fedora Linux (#898 by @olivierlemasle) +- Fix readme typos (#903 by @rokf) - Actually fix release tagging and publish changelog with releases (#901) - Fix broken prerelease tagging (#900) - Use string value for ref-type check (#897) @@ -361,7 +361,7 @@ Changelog -------------------------------------------------------------------- ### Added -- Add string manipulation functions (#888) +- Add string manipulation functions (#888 by @terror) ### Misc - Remove test-utilities crate (#892) @@ -374,10 +374,10 @@ Changelog ### Added - Add `clean` function for simplifying paths (#883) - Add `join` function for joining paths (#882) -- Add path manipulation functions (#872) +- Add path manipulation functions (#872 by @TonioGela) ### Misc -- Add `file_extensions` to Sublime syntax file (#878) +- Add `file_extensions` to Sublime syntax file (#878 by @Frederick888) - Document path manipulation functions in readme (#877) [0.9.5](https://github.com/casey/just/releases/tag/0.9.5) - 2021-6-12 @@ -386,7 +386,7 @@ Changelog ### Added - Add `--unstable` flag (#869) - Add Sublime Text syntax file (#864) -- Add `--fmt` subcommand (#837) +- Add `--fmt` subcommand (#837 by @vglfr) ### Misc - Mention doniogela.dev/just/ in readme (#866) @@ -406,7 +406,7 @@ Changelog ### Misc - Release `aarch64-unknown-linux-gnu` binaries (#843) - Add `$` to non-default parameter grammar (#839) -- Add `$` to parameter grammar (#838) +- Add `$` to parameter grammar (#838 by @NoahTheDuke) - Fix readme links (#836) - Add `vim-just` installation instructions to readme (#835) - Refactor shebang handling (#833) @@ -415,19 +415,19 @@ Changelog ---------------------------------------------------------------------- ### Added -- Add shebang support for 'cmd.exe' (#828) -- Add `.exe` to powershell scripts (#826) +- Add shebang support for 'cmd.exe' (#828 by @pansila) +- Add `.exe` to powershell scripts (#826 by @sigoden) - Add the `--command` subcommand (#824) ### Fixed - Fix bang lexing and placate clippy (#821) ### Misc -- Fixed missing close apostrophe in GRAMMAR.md (#830) -- Make 'else' keyword in grammar (#829) +- Fixed missing close apostrophe in GRAMMAR.md (#830 by @SOF3) +- Make 'else' keyword in grammar (#829 by @SOF3) - Add forbid script (#827) - Remove `summary` feature (#823) -- Document that just is now in Arch official repo (#814) +- Document that just is now in Arch official repo (#814 by @svenstaro) - Fix changelog years (#813) [0.9.2](https://github.com/casey/just/releases/tag/v0.9.2) - 2021-5-02 @@ -474,7 +474,7 @@ Changelog ---------------------------------------------------------------------- ### Added -- Add just_executable() function (#775) +- Add just_executable() function (#775 by @bew) - Prefix parameters with `$` to export to environment (#773) - Add `set export` to export all variables as environment variables (#767) @@ -495,8 +495,8 @@ Changelog ### Misc - Reorganize readme to highlight editor support (#764) - Add categories and keywords to Cargo manifest (#763) -- Fix command output in readme (#760) -- Note Emacs package `just-mode` in readme (#759) +- Fix command output in readme (#760 by @vvv) +- Note Emacs package `just-mode` in readme (#759 by @leon-barrett) - Note shebang line splitting inconsistency in readme (#757) [0.8.4](https://github.com/casey/just/releases/tag/v0.8.4) - 2021-2-9 @@ -508,10 +508,10 @@ Changelog ### Misc - Document how to change the working directory in a recipe (#752) - Implement `Default` for `Table` (#748) -- Add Alpine Linux package to readme (#736) -- Update to actions/cache@v2 (#742) -- Add link in readme to GitHub Action (#729) -- Add docs for justfile() and justfile_directory() (#726) +- Add Alpine Linux package to readme (#736 by @jirutka) +- Update to actions/cache@v2 (#742 by @zyctree) +- Add link in readme to GitHub Action (#729 by @rossmacarthur) +- Add docs for justfile() and justfile_directory() (#726 by @rminderhoud) - Fix CI (#727) - Improve readme (#725) - Replace saythanks.io link with malto: link (#723) @@ -530,7 +530,7 @@ Changelog - Add conditional expressions (#714) ### Fixed -- Allow completing variables and recipes after `--set` in zsh completion script (#697) +- Allow completing variables and recipes after `--set` in zsh completion script (#697 by @heyrict) ### Misc - Add Parser::forbid (#712) @@ -542,25 +542,25 @@ Changelog ### Changed - Allow choosing multiple recipes to run (#700) -- Complete recipes in bash completion script (#685) -- Complete recipes names in PowerShell completion script (#651) +- Complete recipes in bash completion script (#685 by @vikesh-raj) +- Complete recipes names in PowerShell completion script (#651 by @Insomniak47) ### Misc - Add FreeBSD port to readme (#705) - Placate clippy (#698) - Fix build fix (#693) -- Fix readme documentation for ignoring errors (#692) +- Fix readme documentation for ignoring errors (#692 by @kenden) [0.8.0](https://github.com/casey/just/releases/tag/v0.8.0) - 2020-10-3 ---------------------------------------------------------------------- ### Breaking -- Allow suppressing failures with `-` prefix (#687) +- Allow suppressing failures with `-` prefix (#687 by @iwillspeak) ### Misc - Document how to ignore errors with `-` in readme (#690) - Install BSD Tar on GitHub Actions to fix CI errors (#689) -- Move separate quiet config value to verbosity (#686) +- Move separate quiet config value to verbosity (#686 by @Celeo) [0.7.3](https://github.com/casey/just/releases/tag/v0.7.3) - 2020-9-17 ---------------------------------------------------------------------- @@ -610,19 +610,19 @@ Changelog ---------------------------------------------------------------------- ### Changed -- Ignore '@' returned from interpolation evaluation (#636) +- Ignore '@' returned from interpolation evaluation (#636 by @rjsberry) - Strip leading spaces after line continuation (#635) ### Added -- Add variadic parameters that accept zero or more arguments (#645) +- Add variadic parameters that accept zero or more arguments (#645 by @rjsberry) ### Misc -- Clarify variadic parameter default values (#646) -- Add keybase example justfile (#640) +- Clarify variadic parameter default values (#646 by @rjsberry) +- Add keybase example justfile (#640 by @blaggacao) - Strip trailing whitespace in `examples/pre-commit.just` (#644) - Test that example justfiles successfully parse (#643) - Link example justfiles in readme (#641) -- Add example justfile (#639) +- Add example justfile (#639 by @blaggacao) - Document how to run recipes after another recipe (#630) [0.5.11](https://github.com/casey/just/releases/tag/v0.5.11) - 2020-5-23 @@ -632,8 +632,8 @@ Changelog - Don't load `.env` file when `--no-dotenv` is passed (#627) ### Changed -- Complete recipe names in fish completion script (#625) -- Suggest aliases for unknown recipes (#624) +- Complete recipe names in fish completion script (#625 by @tyehle) +- Suggest aliases for unknown recipes (#624 by @Celeo) [0.5.10](https://github.com/casey/just/releases/tag/v0.5.10) - 2020-3-18 ------------------------------------------------------------------------ @@ -642,7 +642,7 @@ Changelog ---------------------------------------------------------------------- ### Added -- Update zsh completion file (#606) +- Update zsh completion file (#606 by @heyrict) - Add `--variables` subcommand that prints variable names (#608) - Add github pages site with improved install script (#597) @@ -684,7 +684,7 @@ Changelog - Build and upload release artifacts from GitHub Actions (#581) - List solus package in readme (#579) - Expand use of Github Actions (#580) -- Fix readme typo: interpetation -> interpretation (#578) +- Fix readme typo: interpetation -> interpretation (#578 by @Plommonsorbet) [0.5.5](https://github.com/casey/just/releases/tag/v0.5.5) - 2020-1-15 ---------------------------------------------------------------------- @@ -704,7 +704,7 @@ Changelog ### Misc - Add table of package managers that include just to readme (#568) -- Remove yaourt AUR helper from readme (#567) +- Remove yaourt AUR helper from readme (#567 by @ky0n) - Fix regression in error message color printing (#566) - Reform indentation handling (#565) - Update Cargo.lock with new version (#564) @@ -786,7 +786,7 @@ Changelog ### Misc ### Cleanup -- Update deprecated rust range patterns and clippy config (#450) +- Update deprecated rust range patterns and clippy config (#450 by @light4) - Make comments in common.rs lowercase (#470) - Use `pub(crate)` instead of `pub` (#471) - Hide summary functionality behind feature flag (#472) @@ -804,7 +804,7 @@ Changelog - Use constants instead of literals in arg parser (#504) ### Infrastructure -- Add repository attribute to Cargo.toml (#493) +- Add repository attribute to Cargo.toml (#493 by @SOF3) - Check minimal version compatibility before publishing (#487) ### Continuous Integration @@ -813,8 +813,8 @@ Changelog - Don't install `dash` on Travis (#482) ### Dependencies -- Use `tempfile` crate instead of `tempdir` (#455) -- Bump clap dependency to 2.33.0 (#458) +- Use `tempfile` crate instead of `tempdir` (#455 by @NickeZ) +- Bump clap dependency to 2.33.0 (#458 by @NickeZ) - Minimize dependency version requirements (#461) - Remove dependency on brev (#462) - Update dependencies (#501) @@ -823,7 +823,7 @@ Changelog ----------------------------------------------------------------------- ### Changed -- Ignore file name case while searching for justfile (#436) +- Ignore file name case while searching for justfile (#436 by @shevtsiv) ### Added - Display alias target with `--show` (#443) @@ -840,7 +840,7 @@ Changelog ### Documented - Fix readme command line (#411) - Typo: "command equivelant" -> "command equivalent" (#418) -- Mention Make’s “phony target” workaround in the comparison (#421) +- Mention Make’s “phony target” workaround in the comparison (#421 by @roryokane) - Add Void Linux install instructions to readme (#423) ### Cleaned up or Refactored @@ -867,11 +867,11 @@ Changelog ----------------------------------------------------------------------- ### Added -- Add recipe aliases by @ryloric (#390) +- Add recipe aliases (#390 by @ryloric) - Allow arbitrary expressions as default arguments (#400) - Add justfile summaries (#399) - Allow outer shebang lines so justfiles can be used as scripts (#393) -- Allow `--justfile` without `--working-directory` by @smonami (#392) +- Allow `--justfile` without `--working-directory` (#392 by @smonami) - Add link to Chinese translation of readme by @chinanf-boy (#377) ### Changed @@ -882,7 +882,7 @@ Changelog ------------------------------------------------------------------------- ### Added -- Print recipe signature if missing arguments (#369) +- Print recipe signature if missing arguments (#369 by @ladysamantha) - Add grandiloquent verbosity level that echos shebang recipes (#348) - Wait for child processes to finish (#345) - Improve invalid escape sequence error messages (#328) @@ -938,7 +938,7 @@ Changelog ----------------------------------------------------------------------- ### Added -- Do not evaluate backticks in assignments during dry runs (#253) +- Do not evaluate backticks in assignments during dry runs (#253 by @aoeu) ### Changed - Change license to CC0 going forward (#270) diff --git a/Cargo.lock b/Cargo.lock index 8b1b515..edf4e65 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -776,6 +776,13 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +[[package]] +name = "update-contributors" +version = "0.0.0" +dependencies = [ + "regex", +] + [[package]] name = "uuid" version = "1.2.1" diff --git a/Cargo.toml b/Cargo.toml index a0a06fe..125f331 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ keywords = ["command-line", "task", "runner", "development", "utility"] exclude = ["/book", "/icon.png", "/screenshot.png", "/www"] [workspace] -members = [".", "bin/ref-type", "bin/generate-book"] +members = [".", "bin/ref-type", "bin/generate-book", "bin/update-contributors"] [dependencies] ansi_term = "0.12.0" diff --git a/bin/update-contributors/Cargo.toml b/bin/update-contributors/Cargo.toml new file mode 100644 index 0000000..b9bd769 --- /dev/null +++ b/bin/update-contributors/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "update-contributors" +version = "0.0.0" +edition = "2021" +publish = false + +[dependencies] +regex = "1.5.4" diff --git a/bin/update-contributors/src/main.rs b/bin/update-contributors/src/main.rs new file mode 100644 index 0000000..d6e0ad3 --- /dev/null +++ b/bin/update-contributors/src/main.rs @@ -0,0 +1,40 @@ +use { + regex::{Captures, Regex}, + std::{fs, process::Command, str}, +}; + +fn author(pr: u64) -> String { + eprintln!("#{}", pr); + let output = Command::new("sh") + .args(&[ + "-c", + &format!("gh pr view {} --json author | jq -r .author.login", pr), + ]) + .output() + .unwrap(); + + assert!( + output.status.success(), + "{}", + String::from_utf8_lossy(&output.stderr) + ); + + str::from_utf8(&output.stdout).unwrap().trim().to_owned() +} + +fn main() { + fs::write( + "CHANGELOG.md", + &*Regex::new(r"\(#(\d+)\)").unwrap().replace_all( + &fs::read_to_string("CHANGELOG.md").unwrap(), + |captures: &Captures| { + let pr = captures[1].parse().unwrap(); + match author(pr).as_str() { + "casey" => format!("(#{})", pr), + contributor => format!("(#{} by @{})", pr, contributor), + } + }, + ), + ) + .unwrap(); +} diff --git a/justfile b/justfile index a1d9bef..3acadaf 100755 --- a/justfile +++ b/justfile @@ -59,6 +59,9 @@ view-man: man update-changelog: git log --pretty='format:- %s' >> CHANGELOG.md +update-contributors: + cargo run --release --package update-contributors + check: fmt clippy test forbid #!/usr/bin/env bash set -euxo pipefail