Skip to content

Commit

Permalink
make: specify bash to search the awk path using "type -p"
Browse files Browse the repository at this point in the history
  • Loading branch information
akinomyoga committed Dec 6, 2023
1 parent a7eb5d0 commit 2682635
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 5 deletions.
4 changes: 2 additions & 2 deletions GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ ifeq ($(.FEATURES),)
endif

# check gawk
GAWK := $(shell which gawk 2>/dev/null || type -p gawk 2>/dev/null)
GAWK := $(shell which gawk 2>/dev/null || bash -c 'type -p gawk' 2>/dev/null)
ifneq ($(GAWK),)
GAWK_VERSION := $(shell LANG=C $(GAWK) --version 2>/dev/null | sed -n '1{/[Gg][Nn][Uu] [Aa][Ww][Kk]/p;}')
ifeq ($(GAWK_VERSION),)
$(error Sorry, gawk is found but does not seem to work. Please install a proper version of gawk (GNU Awk).)
endif
else
GAWK := $(shell which awk 2>/dev/null || type -p awk 2>/dev/null)
GAWK := $(shell which awk 2>/dev/null || bash -c 'type -p awk' 2>/dev/null)
ifeq ($(GAWK),)
$(error Sorry, gawk/awk could not be found. Please check your PATH environment variable.)
endif
Expand Down
7 changes: 4 additions & 3 deletions docs/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@
- util (`ble/builtin/readonly`): adjust bash options (reported by dongxi8) `#D2050` 1f3cbc01
- history (`ble/builtin/history`): fix error message on the empty `HISTFILE` `#D2061` a2e2c4b6
- complete: exit auto-complete mode on complete self-insert `#D2075` 2783d3d0
- complete: fix error messages on empty command names `#D2085` xxxxxxxx
- complete: fix parsing the output of `complete -p` in bash-5.2 `#D2088` xxxxxxxx
- complete: fix error messages on empty command names `#D2085` dab8dd04
- complete: fix parsing the output of `complete -p` in bash-5.2 (reported by maheis) `#D2088` a7eb5d04
- make: specify bash to search the awk path using `type -p` (reported by rashil2000) `#D2089` xxxxxxxx

## Compatibility

Expand All @@ -56,7 +57,7 @@
- canvas: adjust GraphemeClusterBreak of hankaku-kana voiced marks `#D2077` 31d168cc
- canvas: update tables and grapheme clusters for Unicode 15.1.0 `#D2078` 503bb38b 9d84b424 9d84b424
- complete: use conditional-sync for cobraV2 completions (reported by sebhoss) `#D2084` 595f905b
- term: add workarounds for `eterm` `#D2087` xxxxxxxx
- term: add workarounds for `eterm` `#D2087` a643f0ea

## Contrib

Expand Down
55 changes: 55 additions & 0 deletions note.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1905,6 +1905,18 @@ bash_tips
- make_command.sh の整理 (scan 分離, char_width 分離)
- note.txt -> memo.txt

2023-12-05

* wiki,blerc: TAB で auto-complete を確定させる方法
https://www.reddit.com/r/fishshell/comments/17xn8zs/comment/kbsrm2e/?utm_source=reddit&utm_medium=web2x&context=3

* アンインストールする方法

これは毎回確認を取ってから削除していくのが良い気がする。

アンインストールのスクリプトは独立したファイルであるべき? でも ble.sh 自体
を開きながら bash が処理すると考えれば途中で unlink してもちゃんと動く筈。

2023-10-04

* {,dir/}*.* が failglob エラー着色になる。本来は *.* に対して一致が試みられ
Expand Down Expand Up @@ -7050,6 +7062,49 @@ bash_tips
Done (実装ログ)
-------------------------------------------------------------------------------

2023-12-06

* make: termux 内部でビルドできない (reported by rashil2000) [#D2089]
https://github.com/akinomyoga/ble.sh/issues/374

最初再現しなかったが pkg update を実行したら再現する様になった。背景: そも
そも gawk を入れたら pkg 的には 5.3.0 になっているのに type で見つかる gawk
は 5.1.1 になっているという矛盾があって、pkg info -a gawk としてみたら何故
か2つのパッケージがインストールされているという状態になっていた。それで pkg
update を実行したら無事に gawk 5.3.0 だけになった。

具体的に termux の中の make の中で変数にどういう値が入っているか確認してみ
た所、"type -p gawk" の実行結果としてエラーが出力されていた。どうやら sh が
何が別の物になっていて type -p gawk を認識していない様だ。エラーメッセージ
を見ると dash で実行した時と同様のエラーが発生している。

? ここでの疑問点は sh が dash な他の環境では今まで問題が発生した事がないと
いう事である。自分で試してみた時も問題はなかったし、また、他に報告を受け
てもいない。巷の話題にも挙げられていない。さすがに Ubuntu でビルドに失敗
していたら誰かが書き込みをしている筈である。dash が使われる為の条件が何か
あるのだろうか。

例えば GNU make 自体が bash が見つかる場合には自動的に bash を使うのかも
しれない。然し、/usr/bin/bash に見つからなければ /bin/sh を使うという事な
のかもしれない?

→恐らく Ubuntu には既定で which が存在するので先に which が実行されて
type -p の方には行っていないという事の気がする。

* 因みに SHELL 変数は指定されていなかった。とは言いつつ、SHELL は絶対パスで
指定する物なので、bash の絶対パスが分からない時には使えない。command -V
も余計な出力を行うので使えない。

結局直接 bash を指定してコマンドを呼び出す事にした。既存の make_command.sh
の呼び出しと同様である。

? which を使っているが、which こそ POSIX ではないし全ての環境にある訳ではな
い。と思ったが上記の様に Ubuntu の様な例もあるので現状の通り which を最初
に試みるというので問題はないだろう。

因みに https://github.com/starship/starship/pull/4902 については気づいてい
るだろうか。

2023-11-22

* complete: 'x?' に対する補完設定読み取りに失敗する (reported by maheis) [#2088]
Expand Down

0 comments on commit 2682635

Please sign in to comment.