macOS の環境を表示する macver コマンド

## はじめに

　[以前の記事](https://qiita.com/Tachy_Pochy/items/d5d4bf82f4e00eea1fd4)は [Catalina](https://apps.apple.com/jp/app/macos-catalina/id1466841314?mt=12) 用でしたが、最近新しい Mac mini を買ったので [Ventura](https://apps.apple.com/us/app/macos-ventura/id1638787999?mt=12) になりました。

　ということで macver コマンドを作り直しました。

## コンセプト

　「macOS のバージョンを確認して」「〇〇のバージョンも確認して」と別々に確認する際に、たくさんインストールしているツールごとに都度別々の方法で確認する方法を調べるのも面倒です。シェルにして実行すれば、一発でまとめて確認できます。

## 免責

　私もインストールしていないものがあるので、動作確認とれていないものもあります。

## まとめシェル

　<ruby><rb>開発者</rb><rp>（</rp><rt>デベロッパー</rt><rp>）</rp></ruby>が使いそうなツール群のバージョン確認コマンドを集めました。もちろんデフォルトではインストールされていないものもありますから、そういったものはエラーになります。

　行を増やしていこうと思えばキリがないので、適宜、追加・削除してお使いください。また、複数行出力されるコマンドは不要な行もあるでしょうから、お好みで grep してください。

　また中には、出力内容に**ローカルパスが含まれるものもあります**ので、出力内容を誰かに共有する場合などはご注意ください。

```zsh:macver
#!/bin/zsh
# https://qiita.com/Tachy_Pochy/items/d5d4bf82f4e00eea1fd4

indent() { sed 's/^/    /'; }

# Hardware
system_profiler SPHardwareDataType | grep -e "Hardware Overview:" -e "Model" -e Chip -e "System Firmware Version:"

# macOS
system_profiler SPSoftwareDataType | grep -e "System Software Overview:" -e "System Version:" -e "Kernel Version:" -e "Secure Virtual Memory:"

# gcc
echo "gcc version: " | indent; gcc -dumpversion

# Xcode
xcodebuild -version | indent

# Git
git --version | indent

# Homebrew
brew --version | indent

# MacPorts
port version | indent
port installed | indent

# Docker
docker version | indent

# Vagrant
vagrant version | indent

# Python
python --version | indent
python3 -VV | indent
pip3 list | indent

# Swift
swift --version | indent

# AppleScript
echo -n "AppleScript version: " | indent
osascript -e 'version of AppleScript'

# シェル
sh --version | grep ersion | indent
zsh --version | indent
tcsh --version | indent

# Go
echo -n "Golang version: " | indent
go version | indent

# Node.js
node -v
echo -n "npm version: "; npm -version | indent
npm list --depth=0 -g | indent

# PHP、Pear および composer
php -v | indent
pear list | indent
composer --version | indent
composer show -i | indent

# Ruby
ruby -v | indent
gem list | indent

# JAVA 、JDK および JAVA_HOME
java -version | indent
javac -version | indent
echo -n "JAVA_HOME=" | indent
/usr/libexec/java_home | indent
set | grep LANG | indent

# Perl
perl --version | grep version | indent

# Apache
httpd -v | indent

# Nginx
nginx -V | indent

# SQLite
echo -n "SQLite3 version: " | indent
sqlite3 -version | indent

# curl
curl --version | indent

# PlantUML
java -jar plantuml.jar -version| grep PlantUML\ version | indent

# Graphviz (dot)
dot -V | indent

# Visual Studio Code
echo -n "Visual Studio Code version: " | indent
code -v | indent
code --list-extensions --show-versions | indent

# CotEditor
echo -n "CotEditor version: " | indent
cot -v | indent

```

## この記事を作成した環境

```
    Hardware Overview:
      Model Name: Mac mini
      Model Identifier: Mac14,3
      Model Number: MMFJ3J/A
      Chip: Apple M2
      System Firmware Version: 8422.141.2
    System Software Overview:
      System Version: macOS 13.5 (22G74)
      Kernel Version: Darwin 22.6.0
      Secure Virtual Memory: Enabled
```

## 参考

[シェルの出力をインデントする（POSIX sh/bash/dash/zsh）](https://qiita.com/KEINOS/items/0b52d0ca7d726b7d1b07)