LoginSignup
0
0

20240415 日記 nushell つづき

Posted at

nushellつづき

プロンプトにgitステータスを表示したい

nushell向けのgit-promptがあるのでは?と思ったがみつからない
starshipを使うのかもしれないがいまいちわからない
途方にくれてたらnushell/awesome-nu: A curated list of awesome tools that work within the nu language ecosystem e.g. nushell, scripts, nana, etc.がみつかった
ためしにcargo install nu_plugin_gstatを実行したがエラーがでた

エラーが長いので折りたたんでいる
> cargo install nu_plugin_gstat                                                            2024年04月14日 22時10分59秒
    Updating crates.io index
  Downloaded nu_plugin_gstat v0.92.2
  Downloaded 1 crate (18.1 KB) in 0.44s
  Installing nu_plugin_gstat v0.92.2
    Updating crates.io index
  Downloaded bincode v1.3.3
  Downloaded textwrap v0.16.1
  Downloaded windows-targets v0.52.5
  Downloaded vte_generate_state_changes v0.1.1
  Downloaded windows-result v0.1.1
  Downloaded unicode-width v0.1.11
  Downloaded unicase v2.7.0
  Downloaded wyz v0.5.1
  Downloaded byteorder v1.5.0
  Downloaded windows-core v0.54.0
  Downloaded toml_edit v0.21.1
  Downloaded url v2.5.0
  Downloaded sys-locale v0.3.1
  Downloaded winnow v0.5.40
  Downloaded vcpkg v0.2.15
  Downloaded simdutf8 v0.1.4
  Downloaded seahash v4.1.0
  Downloaded num-traits v0.2.18
  Downloaded serde_derive v1.0.197
  Downloaded semver v1.0.22
  Downloaded bytes v1.6.0
  Downloaded rayon-core v1.12.1
  Downloaded nu-plugin v0.92.2
  Downloaded windows_x86_64_msvc v0.52.5
  Downloaded serde v1.0.197
  Downloaded rand v0.8.5
  Downloaded miette v7.2.0
  Downloaded ntapi v0.4.1
  Downloaded rkyv v0.7.44
  Downloaded rust_decimal v1.35.0
  Downloaded serde_json v1.0.115
  Downloaded nu-protocol v0.92.2
  Downloaded sysinfo v0.30.10
  Downloaded pure-rust-locales v0.8.1
  Downloaded rayon v1.10.0
  Downloaded syn v1.0.109
  Downloaded syn v2.0.58
  Downloaded regex-syntax v0.8.3
  Downloaded idna v0.5.0
  Downloaded windows-sys v0.48.0
  Downloaded libssh2-sys v0.3.0
  Downloaded regex-automata v0.4.6
  Downloaded libc v0.2.153
  Downloaded git2 v0.18.3
  Downloaded chrono v0.4.37
  Downloaded bitvec v1.0.1
  Downloaded aho-corasick v1.1.3
  Downloaded hashbrown v0.12.3
  Downloaded libgit2-sys v0.16.2+1.7.2
  Downloaded fancy-regex v0.13.0
  Downloaded cc v1.0.94
  Downloaded borsh v1.4.0
  Downloaded allocator-api2 v0.2.18
  Downloaded ryu v1.0.17
  Downloaded getrandom v0.2.14
  Downloaded crossbeam-epoch v0.9.18
  Downloaded libz-sys v1.1.16
  Downloaded rmp-serde v1.1.2
  Downloaded quote v1.0.36
  Downloaded rmp v0.8.12
  Downloaded proc-macro-error v1.0.4
  Downloaded owo-colors v4.0.0
  Downloaded ppv-lite86 v0.2.17
  Downloaded nu-engine v0.92.2
  Downloaded nu-ansi-term v0.50.0
  Downloaded jobserver v0.1.30
  Downloaded thiserror-impl v1.0.58
  Downloaded thiserror v1.0.58
  Downloaded rand_core v0.6.4
  Downloaded erased-serde v0.4.4
  Downloaded crossterm_winapi v0.9.1
  Downloaded crossbeam-deque v0.8.5
  Downloaded byte-unit v5.1.4
  Downloaded borsh-derive v1.4.0
  Downloaded supports-hyperlinks v3.0.0
  Downloaded rkyv_derive v0.7.44
  Downloaded rend v0.4.2
  Downloaded proc-macro-error-attr v1.0.4
  Downloaded unicode-normalization v0.1.23
  Downloaded terminal_size v0.3.0
  Downloaded tap v1.0.1
  Downloaded supports-color v3.0.0
  Downloaded strip-ansi-escapes v0.2.0
  Downloaded smawk v0.3.2
  Downloaded rand_chacha v0.3.1
  Downloaded radium v0.7.0
  Downloaded pkg-config v0.3.30
  Downloaded percent-encoding v2.3.1
  Downloaded proc-macro-crate v3.1.0
  Downloaded paste v1.0.14
  Downloaded nu-utils v0.92.2
  Downloaded windows v0.54.0
  Downloaded nu-system v0.92.2
  Downloaded nu-glob v0.92.2
  Downloaded miette-derive v7.2.0
  Downloaded lscolors v0.17.0
  Downloaded windows v0.52.0
  Downloaded lru v0.12.3
  Downloaded windows-core v0.52.0
  Downloaded vte v0.11.1
  Downloaded uuid v1.8.0
  Downloaded unicode-bidi v0.3.15
  Downloaded ptr_meta_derive v0.1.4
  Downloaded nu-path v0.92.2
  Downloaded inventory v0.3.15
  Downloaded funty v2.0.0
  Downloaded form_urlencoded v1.2.1
  Downloaded either v1.11.0
  Downloaded dirs-sys-next v0.1.2
  Downloaded dirs-next v2.0.0
  Downloaded chrono-humanize v0.2.3
  Downloaded bytecheck v0.6.12
  Downloaded typetag-impl v0.2.16
  Downloaded typetag v0.2.16
  Downloaded tinyvec v1.6.0
  Downloaded omnipath v0.1.6
  Downloaded syn_derive v0.1.8
  Downloaded supports-unicode v3.0.0
  Downloaded ptr_meta v0.1.4
  Downloaded unicode-linebreak v0.1.5
  Downloaded toml_datetime v0.6.5
  Downloaded utf8-width v0.1.7
  Downloaded tinyvec_macros v0.1.1
  Downloaded is_ci v1.2.0
  Downloaded cfg_aliases v0.1.1
  Downloaded bytecheck_derive v0.6.12
  Downloaded bitflags v2.5.0
  Downloaded bit-vec v0.6.3
  Downloaded bit-set v0.5.3
  Downloaded ahash v0.7.8
  Downloaded 130 crates (40.6 MB) in 31.68s (largest was `windows` at 11.8 MB)
   Compiling proc-macro2 v1.0.79
   Compiling unicode-ident v1.0.12
   Compiling windows_x86_64_msvc v0.52.5
   Compiling serde v1.0.197
   Compiling winapi v0.3.9
   Compiling version_check v0.9.4
   Compiling autocfg v1.2.0
   Compiling cfg-if v1.0.0
   Compiling windows_x86_64_msvc v0.48.5
   Compiling jobserver v0.1.30
   Compiling crossbeam-utils v0.8.19
   Compiling libc v0.2.153
   Compiling cc v1.0.94
   Compiling pkg-config v0.3.30                                                                                                                          
error: linker `link.exe` not found                                                                                                                       
  |
  = note: program not found

note: the msvc targets depend on the msvc linker but `link.exe` was not found                                                                            

note: please ensure that Visual Studio 2017 or later, or Build Tools for Visual Studio were installed with the Visual C++ option.

note: VS Code is a different product, and is not sufficient.

   Compiling num-traits v0.2.18                                                                                                                          
   Compiling once_cell v1.19.0
   Compiling vcpkg v0.2.15                                                                                                                               
error: could not compile `windows_x86_64_msvc` (build script) due to previous error                                                                      
warning: build failed, waiting for other jobs to finish...
error: could not compile `serde` (build script) due to previous error
error: could not compile `proc-macro2` (build script) due to previous error
error: could not compile `crossbeam-utils` (build script) due to previous error
error: could not compile `winapi` (build script) due to previous error
error: could not compile `windows_x86_64_msvc` (build script) due to previous error
error: could not compile `libc` (build script) due to previous error
error: could not compile `num-traits` (build script) due to previous error
error: failed to compile `nu_plugin_gstat v0.92.2`, intermediate artifacts can be found at `C:\Users\(名前)\AppData\Local\Temp\cargo-installpaoRrF`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

まずrustupの更新をしよう

> scoop update rustup                                                                      2024年04月14日 22時21分27秒
Updating Scoop...
  :
  :
rustup: 1.26.0 -> 1.27.0
WARN  Scoop uses 'aria2c' for multi-connection downloads.
WARN  Should it cause issues, run 'scoop config aria2-enabled false' to disable it.
WARN  To disable this warning, run 'scoop config aria2-warning-enabled false'.
Updating one outdated app:
Updating 'rustup' (1.26.0 -> 1.27.0)
Downloading new version
Starting download with aria2 ...
Download: Download Results:
Download: gid   |stat|avg speed  |path/URI
Download: ======+====+===========+=======================================================
Download: b0f7c7|OK  |   0.9MiB/s|D:/Users/(名前)/scoop/cache/rustup#1.27.0#https_static.rust-lang.org_rustup_archive_1.27.0_x86_64-pc-windows-msvc_rust
up-init.exe
Download: Status Legend:
Download: (OK):download completed.
Checking hash of rustup-init.exe ... ok.
Uninstalling 'rustup' (1.26.0)
Unlinking ~\scoop\apps\rustup\current
Installing 'rustup' (1.27.0) [64bit] from main bucket
Loading rustup-init.exe from cache.
Running installer script...
Linking ~\scoop\apps\rustup\current => ~\scoop\apps\rustup\1.27.0
Persisting .cargo
Persisting .rustup
'rustup' (1.27.0) was installed successfully!                                                                           
Notes
-----
This package defaults to using the MSVC toolchain in new installs; use "rustup set default-host" to configure it
(existing installs may be using the GNU toolchain by default)
According to https://doc.rust-lang.org/book/ch01-01-installation.html#installing-rustup-on-windows
Microsoft C++ Build Tools is needed and can be downloaded here: https://visualstudio.microsoft.com/visual-cpp-build-tools/
When installing build tools, these two components should be selected:
- MSVC - VS C++ x64/x86 build tools
- Windows SDK

MSVCのを使うような感じに書いてあるが、MinGWを使うやり方がStackoverflowにあったのでそれでやってみよう
参考:compiler errors - Unable to compile Rust hello world on Windows: linker link.exe not found - Stack Overflow

> rustup toolchain install stable-x86_64-pc-windows-gnu                                    2024年04月14日 22時29分16秒
  :
  :
  :
  stable-x86_64-pc-windows-gnu installed - rustc 1.77.2 (25ef9e3d8 2024-04-09)

info: checking for self-update
> rustup default stable-x86_64-pc-windows-gnu                                              2024年04月14日 22時31分29秒
info: using existing install for 'stable-x86_64-pc-windows-gnu'
info: default toolchain set to 'stable-x86_64-pc-windows-gnu'

  stable-x86_64-pc-windows-gnu unchanged - rustc 1.77.2 (25ef9e3d8 2024-04-09)
> 

はいったのかな、、、?

> cargo install nu_plugin_gstats
    Updating crates.io index
  Installing nu_plugin_gstat v0.92.2
    Updating crates.io index
  Downloaded winapi-x86_64-pc-windows-gnu v0.4.0
  :
  :
  Installing D:\Users\(名前)\scoop\persist\rustup\.cargo\bin\nu_plugin_gstat.exe
   Installed package `nu_plugin_gstat v0.92.2` (executable `nu_plugin_gstat.exe`)

はいったっぽい、

> nu_plugin_gstat.exe .                                                                      2024年04月14日 23時34分12秒
D:\Users\(名前)\scoop\apps\rustup\current\.cargo\bin\nu_plugin_gstat.exe: This plugin must be run from within Nushell.
If you are running from Nushell, this plugin may be incompatible with the version of nushell you are using.

あれ、だめだ

> register D:\Users\(名前)\scoop\apps\rustup\current\.cargo\bin\nu_plugin_gstat.exe
> exit
> nu
> plugin list
╭───────┬───────────┬────────────────┬─────────┬──────────────────────────────────────────────────────────────────────────┬───────────┬──────────────────╮
│     # │   name    │   is_running   │   pid   │                                 filename                                 │   shell   │     commands     │
├───────┼───────────┼────────────────┼─────────┼──────────────────────────────────────────────────────────────────────────┼───────────┼──────────────────┤
│     0 │ gstat     │ false          │         │ D:\Users\*******\scoop\persist\rustup\.cargo\bin\nu_plugin_gstat.exe     │           │ ╭───┬───────╮    │
│       │           │                │         │                                                                          │           │ │ 0 │ gstat │    │
│       │           │                │         │                                                                          │           │ ╰───┴───────╯    │
╰───────┴───────────┴────────────────┴─────────┴──────────────────────────────────────────────────────────────────────────┴───────────┴──────────────────╯

わからん、、、しかたない、あきらめよう

ところでこれをunregisterする方法もわからない、プラグインアンインストールしたらきえるかな、と思ったが消えない
なんだかんだやってたら$nu.plugin-pathに設定が入っていることに気づいたのでそれを消したら、plugin listで出てこなくなった。

starship登録

.cache/starship/init.nuつくる方法が一般的みたいだけど、$nu.default-config-dir配下につくることにした
まず設定ファイルの作成

> starship init nu | save -f $"($nu.default-config-dir)/starship.nu"

config.nuに追加

# starship
# starship init nu | save -f $"($nu.default-config-dir)/starship.nu"
use $"($nu.default-config-dir)/starship.nu"

で、starshipの設定でgitの状態をプロンプトに表示できるので、それをこんどやろうと思う

git の補完どうするのか

git-completionが使えないような気がするのでなやんでいる
nu_scripts/custom-completions/git/git-completions.nu at main · nushell/nu_scriptsが使えるのかなあ?

> cd $nu.default-config-dir
> git clone https://github.com/nushell/nu_scripts.git

でnushellのスクリプトを全部コピーして$nu.config-pathに以下の設定を追加

$nu.config-path
# git complition
source $"($nu.default-config-dir)/nu_scripts/custom-completions/git/git-completions.nu"

うん、なんかちゃんと動いた!
image.png

ただし、git cloneはなぜか補完が用意されてない

completionsのディレクトリにはscoopとかあるので便利そうです
ほかにもいろいろあって便利そう

powershellのアップデート

cmd.exe開いてscoop update powershellしてもpwsh.exeが起動中と怒られる
cmd.exeからpowershell.exe(ver 5.1)を起動して、scoop update powershellすると更新できた

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0