#! /usr/bin/env nu def main [ name: string idx?: int ] { let name = $name | str kebab-case | str downcase let idx = if ($idx | is-empty) { ( glob "*_*" | split row '/' | get (($in | length) - 1) | split row '_' | get 0 | into int | $in + 1 | (if $in < 10 { $"0($in)" } else { $in } ) ) } else { $idx } let problem_name = $"($idx)_($name)" let existing = glob * | where $it =~ $name let tmp_dir = $"/tmp/($problem_name)" if ($existing | is-not-empty) { let ans = input $"Override existing '($existing)'? \(y/n\): " match $ans { 'y' | 'Y' | 'yes' => { mv $problem_name $tmp_dir }, _ => return } } cargo new $problem_name --name $name --vcs none if $env.LAST_EXIT_CODE == 0 { rm -r $tmp_dir } else { mv $tmp_dir $problem_name } }