Skip to content

Instantly share code, notes, and snippets.

@hankei6km
hankei6km / convert_crlf_in_git_repo_files_to_lf.md
Last active October 25, 2020 11:37
Git のリポジトリ内のファイルで改行が CRLF のファイルを LF へ変換する

Git のリポジトリ内のファイルで改行が CRLF のファイルを LF へ変換する

Git リポジトリのルートで以下を実行。

$ git ls-tree -r HEAD | cut -f1 | cut -d ' ' -f3 | xargs -i{} sh -c 'git rev-list --objects --all | grep {}' | cut -d ' ' -f2 | tr '\n' '\0' | xargs -0 -i{} file -Z {} | grep -i crlf | sed -e 's/:[^:]*$//' | tr "\n" "\0" | xargs -0 -iF awk 'BEGIN{RS="\r";ORS="\n";c=""} { c=c "" $0} END{printf("%s", c) > ARGV[1]}' F

2020-10-25追記: 最初のバージョンではパス名に細工されるとコマンドを挿入できてしまう脆弱性がありました(上記のものは対応はしてあります)。

@hankei6km
hankei6km / convert_filename_by_metadata_using_powershell.md
Created October 17, 2020 02:43
PowerShell で画像のメタデータを使ってファイルをリネーム

PowerShell で画像のメタデータを使ってファイルをリネーム

※ 以下、1年以上前に書いたメモです。いまでも写真ファイルのリネームに使っていますが、古い情報があるかもしれません。

てきとうに試していたのできちんとしたまとめはないが、 以下はコマンド履歴とかから覚えているものを順番にメモっていたもの (とはいっても、実際にはパイプでうまいことやろうとしたのだが、 FromFile で作成したインスンタンスを Dispose() する方法が思いつかなかったので、 普通に命令を; で列挙する方向に変換したりなんかもした、その辺は割愛).

@hankei6km
hankei6km / edit_a_gist_from_output_piped_from_another_command.md
Last active October 17, 2020 01:01
GitHub CLI の gist edit へパイプを接続し、gist を編集する

GitHub CLI の gist edit へパイプを接続し、gist を編集する

Bash(Process Substitution)

$ echo "edit a gist from output piped from another command" | EDITOR="cp "<(cat -) gh gist edit {<gist ID> | <gist URL>} [flags]

Vim

@hankei6km
hankei6km / gist_twitter_card.md
Last active October 16, 2020 06:48
Gist と Twitter Card(ogp)

Gist と Twitter Card(ogp)

Github 上のリポジトリに og:image を設定できる機能があるならば、gist にもありそうかな、ということでメモ。

gist のソース (charome で右クリックからの v で表示) を見ながらのメモなので、実際の動作は不明。

description

descrption は gist の description が使わるれるもよう。

@hankei6km
hankei6km / git_remote_protocol_https_to_fetch__ssh_to_push.md
Last active October 16, 2020 05:24
git remote のプロトコルを変更する

git remote のプロトコルを変更する

(github に登録している ssh の鍵を agent に登録していないので) fetch するだけでパスフレーズを入力するのが面倒。 よって、fetch 用のプロトコルは https、push 用のプロトコルは ssh にする方法のメモ。

$ git remote -v
origin  git@github.com:hankei6km/test-nextjs-material-ui.git (fetch)
origin git@github.com:hankei6km/test-nextjs-material-ui.git (push)
@hankei6km
hankei6km / create_gist_using_vim_and_gh.md
Last active October 16, 2020 05:42
Vim と Github CLI で gist 作成

Vim と Github CLI で gist 作成

buffer 全体で gist を作成

ファイル名は渡さない。

:w !gh gist create

ファイル名を渡す(エスケープはあまり考慮していないので注意)。

@hankei6km
hankei6km / vercel_fzf.sh
Created October 6, 2020 16:21
fzf で vercel ls の出力を選択 & w3mで deployment をプレビュー
# vercel ls + fzf
#
# requirements
# - w3m
#
# Released under CC0 1.0
# http://creativecommons.org/publicdomain/zero/1.0/deed.ja
# vercel_fzf - select lines from `vervel ls` output.
# this function does not support switching to next page(`--next` optsion).
@hankei6km
hankei6km / adxl345_double_tap.sh
Last active September 14, 2020 14:03
ADXL345 x Raspberry Pi をシェルスクリプトで利用する https://hankei6km.github.io/posts/2020-09-adxl345_raspberryi_pi_shellscript/
#!/bin/sh
#
# Copyright (c) 2020 hankei6km
# Licensed under the MIT License.
# https://opensource.org/licenses/MIT
# https://www.analog.com/media/jp/technical-documentation/data-sheets/ADXL345_jp.pdf
BW_RATE="0x2c"
DATA_FORMAT="0x31"
FIFO_CTL="0x38"
<script src='https://cdn.jsdelivr.net/npm/apexcharts'></script>
{{.Inner}}
@hankei6km
hankei6km / yaml2json
Created May 28, 2018 15:57 — forked from mboersma/yaml2json
YAML to JSON one-liner
python -c 'import sys, yaml, json; y=yaml.safe_load(sys.stdin.read()); print(json.dumps(y))'