読者です 読者をやめる 読者になる 読者になる

`expect` で絞めていただこ - shellscript の実行途中で求められるパスワード入力を自動で

tech macos settings homebrew

と言うお話.

設定用 shellscript を走らせていて,途中,度々求められるメールやパスワードの入力がどうにかならないものか,と思うようになってきました.

このために結局マシンの前を離れられない.

何のためにスクリプト用意して作業を自動化しているのか,

煩雑な作業を shellscript に任せて自動化してやっほい,という企みもこれではほっとんど意味がないじゃない.

...と彷徨い,ほどなくして expect というコマンドがあることを知ります.

そんなとき、毎回パスワードを入力するのは面倒!(略)という問題を解決するのがexpectというコマンドです。


コマンドの返答を識別して次の入力を自動的に行うコマンド

今回これを使ってみたので,備忘録.

% sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12.2
BuildVersion:   16C67
Expect SF
Expect SF / @markheybo
続きを読む

やっぱつらいのでやってもらを.- iTerm2 編

tech macos app settings vim zsh shell iterm2

は?もしかしてシリーズ化とかイキッてるの?,と睨まれても仕方ない感じですが,ホントそんなことありません,の(笑,またまた os のクリーン再インストールに端を発したイベントの話.*1

iTerm2

実はインストールは homebrewcask で楽できてはいたのですが,設定の方は相変わらず手作業でした.

これが結構煩わしいもので,いつも,ついつい後回しにしてしまう.

そして忘れた頃に必要になって起動した時,悲しい思いをし,結局手で設定をする.でも,やっぱり面倒なのには変わりなく,尚且つさっさと取掛りたいからヤッツケな設定で切り抜ける.

で,また放置...

そんなのを性懲りもなく繰り返してました.

いけません.

iTerm2 Logo

これを断ちたいと思います.


*1:しつこいな.

続きを読む

`plutil` が json 形式にコンバートしてくれないっ、てゆのは

tech macos settings

やりたかったこと。;

plutil -convert json ~/Library/Preferences/com.googlecode.iterm2.plist \
  -o ~/com.googlecode.iterm2.plist.json


plutil コマンド使って plist ファイルを json 形式にコンバートして頂こうとお願いしたのですが、応えはエラー。;

~/Library/Preferences/com.googlecode.iterm2.plist: invalid object in plist for destination format


xml へは出来るのに。;

plutil -convert xml1 ~/Library/Preferences/com.googlecode.iterm2.plist \
  -o ~/com.googlecode.iterm2.plist.json


一応...;

% plutil -lint ~/Library/Preferences/com.googlecode.iterm2.plist
~/Library/Preferences/com.googlecode.iterm2.plist: OK

ですよね。

そんなんなか、目にしたのがこんな記載。;

One complication with this is that some Plist data types cannot be converted by plutil. The workaround I found was to do some pre-processing on the plist before passing it to plutil. Specific to the plist that I’m working with, I had to replace both and tags with .

「あ。」(察し

property
property / The hills are alive*


続きを読む

またあんたかい...つか潰すけどね,[caps lock]

macos settings shellscript

以前にもレポートしましたけど,どうやら,また仕様を変えたようで.

役立たずの [caps lock] キーを control キーに変更する shellscript のお話.;

keyboard_vid=$(ioreg -n 'Apple Internal Keyboard' -r | grep -E 'idVendor' | awk '{ print $4 }')
keyboard_pid=$(ioreg -n 'Apple Internal Keyboard' -r | grep -E 'idProduct' | awk '{ print $4 }')
keyboardid="${keyboard_vid}-${keyboard_pid}-0"

# CapsLock(30064771129) -> Control(30064771296)

defaults -currentHost write -g com.apple.keyboard.modifiermapping.${keyboardid} -array-add '
<dict>
  <key>HIDKeyboardModifierMappingDst</key>
  <integer>30064771296</integer>
  <key>HIDKeyboardModifierMappingSrc</key>
  <integer>30064771129</integer>
</dict>
'

これで [caps lock] キーは control キーとして振る舞うようになりました.

思うに,設定の反映は killall cfprefsd とかは暖簾に腕押し.再起動必要みたい*1

しかし同じバージョン内で,こんな部分にまでも手を入れてくるもんなんですね.何だかな...

MP3 fan
Caps Lock / andrewmalone

あ、あと知ってました?
上にあるように ‘’ 内で改行やインデント入れて記述できるんですね。エスケープ \ とか不要みたい。うん見通し良くて実に気持ちいい。

*1:
これが実にめんどくさいっっ.
何か方法ないもんですかね.

続きを読む

こんどは `eye-d3` かよっ 苛

tech macos shellscript homebrew eyed3 id3 settings software

今回も,これ,役に立つ人っているのだろうか,と言った感じの話題.笑

homebrew で eyeD3 を入れるなら,

brew install eye-d3

が正解だった,というお話.

MP3 fan
MP3 fan / Oneras

これもまた前回エントリ同様,os のクリーン再インストールが契機となったもの. クリーンインストールしたので,いつもの通り設定用の shellscript を走らせ,戻ってきたら,途中で止まっていた.(苛

場所は,eyeD3 のインストール.

続きを読む