diff options
author | Ryan Schanzenbacher <ryan@rschanz.org> | 2024-04-05 11:57:45 -0400 |
---|---|---|
committer | Ryan Schanzenbacher <ryan@rschanz.org> | 2024-04-05 11:57:45 -0400 |
commit | b88d77fb2d0d5028a6f5670695dee6bec129501f (patch) | |
tree | 2536b0461d297e647cf07157641c9b1223339adf /home-config/fish/functions/_tide_sub_bug-report.fish | |
parent | 776a7ca55d2d2c3f396de91db1c6c3c5065012cd (diff) |
ahhh sloppy fish, still needs fixing, esp with the vars
Diffstat (limited to 'home-config/fish/functions/_tide_sub_bug-report.fish')
-rw-r--r-- | home-config/fish/functions/_tide_sub_bug-report.fish | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/home-config/fish/functions/_tide_sub_bug-report.fish b/home-config/fish/functions/_tide_sub_bug-report.fish new file mode 100644 index 0000000..a8065c8 --- /dev/null +++ b/home-config/fish/functions/_tide_sub_bug-report.fish | |||
@@ -0,0 +1,73 @@ | |||
1 | function _tide_sub_bug-report | ||
2 | argparse c/clean v/verbose check -- $argv | ||
3 | |||
4 | set -l fish_path (status fish-path) | ||
5 | |||
6 | if set -q _flag_clean | ||
7 | HOME=(mktemp -d) $fish_path --init-command "curl --silent \ | ||
8 | https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | | ||
9 | source && fisher install ilancosman/tide@v6" | ||
10 | else if set -q _flag_verbose | ||
11 | set --long | string match -r "^_?tide.*" | # Get only tide variables | ||
12 | string match -r --invert "^_tide_prompt_var.*" # Remove _tide_prompt_var | ||
13 | else | ||
14 | set -l fish_version ($fish_path --version | string match -r "fish, version (\d\.\d\.\d)")[2] | ||
15 | _tide_check_version Fish fish-shell/fish-shell "(\d\.\d\.\d)" $fish_version || return | ||
16 | |||
17 | set -l tide_version (tide --version | string match -r "tide, version (\d\.\d\.\d)")[2] | ||
18 | _tide_check_version Tide IlanCosman/tide "v(\d\.\d\.\d)" $tide_version || return | ||
19 | |||
20 | if command --query git | ||
21 | test (git --version | string match -r "git version ([\d\.]*)" | string replace --all . '')[2] -gt 2220 | ||
22 | _tide_check_condition \ | ||
23 | "Your git version is too old." \ | ||
24 | "Tide requires at least version 2.22." \ | ||
25 | "Please update before submitting a bug report." || return | ||
26 | end | ||
27 | |||
28 | # Check that omf is not installed | ||
29 | not functions --query omf | ||
30 | _tide_check_condition \ | ||
31 | "Tide does not work with oh-my-fish installed." \ | ||
32 | "Please uninstall it before submitting a bug report." || return | ||
33 | |||
34 | if not set -q _flag_check | ||
35 | set -l fish_startup_time ($fish_path -ic "time $fish_path -c exit" 2>| | ||
36 | string match -r "Executed in(.*)fish" | string trim)[2] | ||
37 | |||
38 | read --local --prompt-str "What operating system are you using? (e.g Ubuntu 20.04): " os | ||
39 | read --local --prompt-str "What terminal emulator are you using? (e.g Kitty): " terminal_emulator | ||
40 | |||
41 | printf '%b\n' "\nPlease copy the following information into the issue:\n" \ | ||
42 | "fish version: $fish_version" \ | ||
43 | "tide version: $tide_version" \ | ||
44 | "term: $TERM" \ | ||
45 | "os: $os" \ | ||
46 | "terminal emulator: $terminal_emulator" \ | ||
47 | "fish startup: $fish_startup_time" \ | ||
48 | "fisher plugins: $_fisher_plugins" | ||
49 | end | ||
50 | end | ||
51 | end | ||
52 | |||
53 | function _tide_check_version -a program_name repo_name regex_to_get_version current_version | ||
54 | curl --silent https://github.com/$repo_name/releases/latest | | ||
55 | string match -r ".*$repo_name/releases/tag/$regex_to_get_version.*" | | ||
56 | read --local --line __ latestVersion | ||
57 | |||
58 | string match --quiet -r "^$latestVersion" "$current_version" | ||
59 | _tide_check_condition \ | ||
60 | "Your $program_name version is out of date." \ | ||
61 | "The latest is $latestVersion. You have $current_version." \ | ||
62 | "Please update before submitting a bug report." | ||
63 | end | ||
64 | |||
65 | function _tide_check_condition | ||
66 | if test "$status" != 0 | ||
67 | set_color red | ||
68 | printf '%s\n' $argv | ||
69 | set_color normal | ||
70 | return 1 | ||
71 | end | ||
72 | return 0 | ||
73 | end | ||