Add script to ensure Rust nightly version stays in sync
Dependencies
- [2]
PDZ67CX7Move Nushell scripts inside of `src/` - [3]
FPOXMH3VAdd more agressive garbage collection settings - [4]
WMUFQJFXShow custom prompt inside version control shell - [5]
HINOSPQOAdd simple nushell update script - [*]
MAVDUPWDImprove REPL prompt
Change contents
- edit in src/update.nu at line 7[7.28][4.186]
use rust_version.nu enforce-rust-version; - replacement in src/update.nu at line 14
assert ($candidate | path exists) $"(ansi red) Failed to find required file: (ansi red_bold)($candidate)(ansi reset)"assert ($candidate | path exists) $"(ansi red) Failed to find required file: (ansi red_bold)($candidate)(ansi reset)"; - replacement in src/update.nu at line 29
$required_paths | each {|required_path| assert_path_exists $required_path}$required_paths | each {|required_path| assert_path_exists $required_path}; - replacement in src/update.nu at line 48
sudo nix-collect-garbage --delete-older-than 2dsudo nix-collect-garbage --delete-older-than 2d;# Make sure that Rust is up-to-dateenforce-rust-version; - file addition: rust_version.nu[2.15]
# Prevent rustc from getting too out-of-date;# rust-overlay's selectLatestNightlyWith silently keeps older versions if components/targets are no longer validuse std assert;export def enforce-rust-version [] {let version_info = rustc --version | parse "rustc {version} ({commit} {date})";# Make sure only 1 row of dataassert equal ($version_info | length) 1;assert equal ($version_info.date | length) 1;# Extract the datelet version_date = $version_info.date | first | into datetime;# Return an error if the version is more than one week oldassert greater $version_date ((date now) - 7day) $"This version of Rust was built (ansi red_bold)($version_date | date humanize)(ansi reset)!Check that all specified targets and extensions are valid.(ansi yellow_bold)HINT(ansi reset): replace `selectLatestNightlyWith` with `nightly.latest.default.override` to debug.";}