ふと自分のブログのアクセスログを見ていたところ、1年以上前の記事への参照が意外と多かった。過去記事全ての情報の鮮度に責任は負えないなと思ったので、1年以上前の記事には警告を出すようにした。例えば以下の記事には警告が出る。
スクリプトも置いといたので、よければご利用ください。設定 > 詳細設定 > headに要素を追加
あたりに置くと動きます。はてなブログProをご利用中の方で「トップページの表示形式(PC版)」を「一覧形式」にしている場合は、各記事にのみ表示されます。
ふと自分のブログのアクセスログを見ていたところ、1年以上前の記事への参照が意外と多かった。過去記事全ての情報の鮮度に責任は負えないなと思ったので、1年以上前の記事には警告を出すようにした。例えば以下の記事には警告が出る。
スクリプトも置いといたので、よければご利用ください。設定 > 詳細設定 > headに要素を追加
あたりに置くと動きます。はてなブログProをご利用中の方で「トップページの表示形式(PC版)」を「一覧形式」にしている場合は、各記事にのみ表示されます。
$ git log --name-status --author="$(git config --get user.name)" | grep -E '^(A|M|D)\b' | awk '{ print $2 }' | sort | uniq
git log
の最後にディレクトリ名を入れると、そのディレクトリ以下のファイル一覧を取得することができます。昔書き捨てたスクリプトがあった気がするんだけどどこにやったかな〜というときに便利です。どうぞご利用ください。
昨晩夕飯食べずに寝落ちしてしまい、PCの電源も刺さずにつけっぱなしにしてしまった。それを忘れて朝PCを触っていたところ電源が落ちた。以前からバッテリが減っていることに気づけず困っていたので、バッテリが減っていて充電もしていなかった場合に通知を出すことにした。
通知にはdunstを利用しているのでこれを使う。dunstifyを利用すると任意のテキストで簡単に通知を出すことができる。
まず以下のスクリプトを適当に $PATH
に含まれてるディレクトリの中に放り込む。 /sys/class/power_supply/
に BAT0
とか BAT1
とかでバッテリ情報が入ってるのでこれを使う。 自分の端末はThinkPad T480でフロントバッテリとリアバッテリがあるので BAT0
と BAT1
があった。これを実行すると、全てのバッテリの残量が10%未満かつ充電していない場合にdunstでアラートを表示できる。
#!/bin/bash set -eu urgency=1 for battery in $(ls /sys/class/power_supply/ | grep BAT); do battery_path="/sys/class/power_supply/${battery}" battery_capacity=$(cat ${battery_path}/capacity); battery_status=$(cat ${battery_path}/status); if [ ${battery_capacity} -ge 10 ] || [ ${battery_status} = "Charging" ]; then urgency=0 fi done [ "${urgency}" = 1 ] && dunstify -u critical 'Low Battery!' exit 0;
あとはこれを1分おきに実行する。いま使っているディストリビューションはArch Linuxで、デフォルトでcronは入らないしsystemdのタイマー機能を利用する。
まずはsystemdのUnitファイルを $HOME/.config/systemd/user/low-battery-notifier.service
みたいな名前で保存する。/path/to/low-battery-notifier
は実行ファイルを置いた場所を指定する。これで、 systemd --user start low-battery-notifier.service
で通知が動いていれば問題ない。
[Unit] Description=Notify low battery alert [Service] Type=oneshot ExecStart=/path/to/low-battery-notifier
次にこれを1分おきに実行するよう設定する。以下のtimerファイルを $HOME/.config/systemd/user/low-battery-notifier.timer
みたいな名前で保存する。 serviceファイルと名前を対応づけて拡張子を.timerにする必要がある。
[Unit] Description=Notify low battery alert timer [Timer] OnCalendar=*-*-* *:*:00 [Install] WantedBy=timers.target
これで systemctl --user enable low-battery-notifier.timer && systemctl --user start low-battery-notifier.timer
すると1分おきに最初のスクリプトが実行されるようになる。タイマーが正常に動いているかどうかは systemctl list-timers --users --all
で確認することができる。
$ systemctl list-timers --user --all NEXT LEFT LAST PASSED UNIT ACTIVATES Sat 2020-04-18 17:37:00 JST 20s left Sat 2020-04-18 17:36:05 JST 34s ago low-battery-notifier.timer low-battery-notifier.service
という具合。これでバッテリが減ったら1分おきに通知が出る。
READMEにある通り
$ yay -S github-cli
でインストールできる。yay
はGoで書かれているAURヘルパで、要はナウい yaourt
。他のAURヘルパを利用しても良い。 go-pie
が依存になっており、 go
がインストールされているとコンフリクトする可能性があるので、コンフリクトした場合は手で解決する必要がある。
gh
コマンドを実行すると認可のためにブラウザが開かれる。ここでSSOが有効なorgをauthorizeしようとする際には事前にSSOを突破しておく必要がある(突破していないとアクセス権を取得できない)。間違えてアクセス権がない状態でtokenを発行してしまった場合は、一旦GitHubの Settings > Applications > Authorized OAuth Apps > GitHub CLI (dev)
を一旦revokeして、.config/gh/config.yml
を削除すると再度認可が行われる。
$ gh issue list Issues for masawada/housekeeping #312 2020年2月目標 #311 2020/02/01-2020/02/29献立計画 #310 2月購買計画 #306 2020年旅行候補 #304 2019大掃除落穂拾い #300 2020年欲しいもの #299 2020年コンテンツ消費リスト #298 2020年やりたいこと #297 2020年上半期計画 #284 引っ越し
個人の計画repoのIssue一覧が見られて便利になった。いまのところIssue/P-Rを作るかリストするかブラウザで開くかくらいしかないけど、端末上で自由に編集したりレビューできるようになったりしたらめちゃくちゃ便利だと思う。
小ネタです。
$ git add -A error: 's/' does not have a commit checked out fatal: adding files failed
addできない。困った。
$ ls README.md s/ $ ls -la s total 12 drwxr-xr-x 3 masawada masawada 4096 Jan 7 16:46 ./ drwxr-xr-x 4 masawada masawada 4096 Jan 7 16:46 ../ drwxr-xr-x 7 masawada masawada 4096 Jan 7 16:46 .git/
どうやら s
というディレクトリが作られていて、中に .git
ディレクトリが作られている状態。しかしこんなディレクトリを作った記憶はない… 一体何故…
ひとまずhistoryを眺めたところ、いつもと様子がおかしいコマンドを発見しました。
$ git git s
自分はgitconfigのaliasで git s
を git status -sb
に指定しています。
[alias] s = status -sb
しかし git
を重ねてしまっているのがおかしそう。実行してみましょう。
$ git git s WARNING: You called a Git command named 'git', which does not exist. Continuing in 0.1 seconds, assuming that you meant 'init'. Initialized empty Git repository in /home/masawada/sandbox/git/s/.git/
やはりこれが原因でディレクトリが作られていた!! しかし平時は git git
と重ねても単にエラーが出て終了するだけです。
assuming that you meant 'init'
これはgitconfigでautocorrectを有効にしているから。git git
と重ねると git init
に補完されてリポジトリのディレクトリが作られてしまう、というオチでした。
[help] autocorrect = 1
autocorrectについてはこちら