git履歴の先頭に、後から「空commit」を割り込ませる

git

本件を実行する前に git clone でバックアップを取っておきましょう あらかじめ、全commitの履歴を cherry-pick するスクリプトを作成しておく git log --pretty="format:%H" | gawk '/./{ line[i++]=$0 } END{ while(--i >= 0){ print "git cherry-pick ",l…

【ポエム】NYAGOS 2017年ふりかえり

Nihongo Yet Another GOing Shell についての駄文です。関心ある方に読んでいただければと 参考:2017年冒頭に言ってたこと Luaデータ共有との戦い > 完全に改善した!(← うさんくさい) < 4.0 全コマンド(=goroutine~スレッド)で 1-Lua インスタンスを…

まともな foreach が使えるようになります

次のバージョンから、環境変数の置換構文を組み合わせれば、下記のようなことができます。 $ foreach i *.go ; echo move %i% %i:go=goo% ; end move bindata.go bindata.goo move builtinfunc.go builtinfunc.goo move complete_lua.go complete_lua.goo mo…

NYAGOS、かんたん設定

NYAGOS、かんたん設定 Windows向け拡張コマンドラインシェル:NYAGOS (Nihongo Yet Another GOing Shell) の個人設定はホームディレクトリに .nyagos というテキストファイル(Luaスクリプト)を作成して行います。 Windows の場合ホームディレクトリは一般に …

vimとバッチファイルでtwitter と mstdn.jp にコマンドプロンプトから同時投稿する

dondon.cmd を実行すると vim が起動する。 投稿したい時は「:eq」 twtr.exe と mstdn.exe を使って、twitter と mstdn.jp に投稿する キャンセルする時は「:cq」か、ゼロバイトにしてから「:eq」 つ dondon.cmd @echo off setlocal set "DON=%TEMP%\don.txt…

ここ近年、Go で作った UNIX っぽい Windows のツール

※ ANSI/UTF8自動判別と書いているは行単位で判断しているので、混在しててもだいたい大丈夫 seek - color-grep for ansi/utf8 (Windows) おれおれ grep 。ANSI/UTF8自動判別・カラー対応。SJIS か UTF8 かによって、findstr と jvgrep をいちいち使い分ける…

神Excel にテキストファイルを流し込むスクリプト書いたよー

godexcel.cmd C3 AA30 tmp.xls ./GodExcel.cmd という感じで実行すると、神 Excel「tmp.xls」の C3~AA30 の領域に、自分自身(GodExcel.cmd) の内容を展開して という感じになる。 つ GodExcel.cmd @set args=%* @powershell "iex( (@('','','')+(cat '%~f0'|…

PowerShell で、二つのフォルダーのファイル構成を比較するコマンドを作る

つ dirdiff.cmd @set "arg1=%~1" & set "arg2=%~2" @powershell "iex((@('','','')+(cat '%~f0' | select -skip 3))-join[char]10)" @exit /b %ERRORLEVEL% $md5 = New-Object System.Security.Cryptography.MD5CryptoServiceProvider function Get-MD5s($di…

(補足)git で特定の2つのフォルダーを使ってる履歴のみ残して、後は消す

git

git で特定の2つのフォルダーを使ってる履歴のみ残して、後は消す 最初の commit だけは argf , seek フォルダーに関わってなくとも残ってしまう(あとで revert した) git rebase -i -root で、最初の commit も削除できた。

git で特定の2つのフォルダーを使ってる履歴のみ残して、後は消す

フォルダー一つだけなら git filter-branch --subdirectory-filter が使えるが、複数の場合はそうもいかない。 複数のフォルダーだけを残すために、Lua スクリプトをさくっと書いた。 function getgitlog(files) local fd = io.popen("git log " .. table.co…

うっかり、オレオレ grep (seek)を書いてしまった。

go

先日、while( <> ){ } 的なものの Go 版ライブラリ argfを書いてみたわけだけれども、そのサンプルとして 簡単な grep (seek)を書いてみた。 https://github.com/zetamatta/experimental/tree/master/seek (また、例によって、実験用レポジトリ experimental…

Lua 5.1 向け shebang for Windows

@lua5.1.exe -e "_,_,b=io.input([[%~f0]]):read('*l','*l','*a');assert(loadstring('\n'..b,[[%~f0]]))()" @exit /b %ERRORLEVEL% print('ahaha') x 5行目にわざと Lua としては不適切な文字 x を入れている。これを実行すると lua: (command line):1: [st…

while( <> ){…} みたいなことを Go で

go

UNIX風のテキストファイルフィルターを書くのに便利なように Perl には while( <> ){ print $_ } という構文がある。これと同じような手軽さで Go でもフィルターを書くためのライブラリ argf を書いてみた。 package main import ( "fmt" "os" "github.com/…

Go言語についての3つくらいの誤解

go go

以下、自分の思い込みもあるとは思うが、あまり気にしないで書いてみる。 Goは短く書くための言語ではない 短く書けるようにした結果、落とし穴が発生したり、 読みにくくなったり誤解が生じる余地があるならば、 そのような書き方は排除されている。 貴方が…

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(3)バージョン文字列の設定

バッチファイルの話もするとたいへんなので、以下 PowerShell だけという方向で: Go ソースへの埋め込み これは簡単で、 go build "-o" nyagos.exe -ldflags "$ldflags -X main.version=$version" だけでよい。これで main パッケージの version という変数…

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(2)バージョン文字列の取得

方針としては リリースビルドの時は、テキストファイル(Misc\version.txt)に記載のテキスト スナップショットの時は、git describe --tags の結果 を使うことにしている。これはバッチファイルでも比較的簡単だ。 リリースビルドなら for /F %%I in (%~dp0Mi…

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(1)目次

NYAGOS は 4.2.1 まではバッチファイルで、以下の作業を行っていた。 実行ファイルの作成 バージョン文字列の取得 リリース(make release)の時はテキストファイル(Misc\version.txt) スナップショット(引数なし make)の時は git describe --tags を使用 バ…

n番煎じの powershell 向け shebang !

PowerShell のスクリプトを実行しようとすると、実行ポリシーを一時的に変えるため powershell -ExecutionPolicy RemoteSigned -file HOGE.ps1 と長い起動コマンドラインになってしまいがちです。 ということで、HOGE.ps1 を実行するために、別途 HOGE.cmd …

海底神殿から金塊を受領しました

今から海底神殿から金塊を受領しまーす(だいたい水抜き済み、全エルダーガーディアン討伐済み) 底に穴をあけると金ブロックが! 金ブロック8個(金のインゴット72個相当)いただきました! 海底神殿を攻略すると、スポンジ、ランタンが入るのが大きくて、…

GoのEnum表現は、go:generate + stringer の出番?

go

Go の Enum 表現 - Qiita 主旨が違うかもしれないんだけど、そういうのは go:generate + stringer の出番と違うかなと思った。 package main import "fmt" type SkuNameEnum int //go:generate stringer -type=SkuNameEnum const ( Free SkuNameEnum = iota …

PowerShell での項目の並べ方整理

コマンドを書く場合は「空白」で区切る。 関数・外部コマンドに関係なく、引数リスト全体を囲む「括弧」は要らない。 Write-Verbose -Message "$ go build" コマンドの引数に「式」を書いて評価させる場合は、その引数1個を「括弧」で囲む 囲まないと、個別…

ファイルサーバ名が変わったので、リンク切れした「お気に入り」を修復

Windows7のエクスプローラで出てくる「お気に入り」は、%USERPROFILE%\Links というフォルダーにショートカットが全部並んでいる。 PowerShell を使って全部リネームしよう、そうしよう。 $fromName = "\\旧サーバ名\" $toName = "\\新サーバ名\" $wsh = New…

Write-Host と Write-Output ではリダイレクトした時の改行コードが変わってしまう

(※ 2017.09.15追記: stknohg さんから、いろいろ技術的な補足をいただきました。詳しくはコメント欄を参照ください) Write-Host の出力を、PowerShell の呼び出し元でリダイレクトすると、改行コードが LF になる。 CRLF にするには Write-Output を使わね…

OneNote 2016 を使ってみた

evernote のデータを本格的に移行しようとは思わなかったが、ちょっとお試しで OneNote を使ってみた。 OneNote の種類にとまどった 会社PC の Office2010 に入ってる OneNote と、Windows10 に最初から入っている OneNote のユーザインターフェイスが微妙に…

本当に Windows10 のコマンドプロンプトはエスケープシーケンスをサポートしたのか?

したっぽい。実験してみよう package main import ( "fmt" "os" "syscall" "unsafe" ) var kernel32 = syscall.NewLazyDLL("kernel32") const STD_INPUT_HANDLE = uintptr(1) + ^uintptr(10) const STD_OUTPUT_HANDLE = uintptr(1) + ^uintptr(11) const STD…

NYAGOSの小TIPS集

NYAGOS 4.2.0 以降が対象です。 ファイルはゴミ箱へ trash ファイル名 でファイルがいきなり削除ではなく、ゴミ箱に入ります。実体は Lua スクリプトで、COM経由でゴミ箱へファイルを移動しています。(nyagos.d/trash.lua) UTF8 変換に type 文 内蔵 type …

Visual Studio を NYAGOS から使う時

普通は Visual Studio のパスを通すため、下記のように .nyagos 上で Visual Studio コマンドプロンプトのバッチを source する。 nyagos.exec{'source',[[C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat]],'x86'} これやると NYAGO…

OJTばかりやって

OJTばかりやって、座学や書籍で理論をちゃんとやらんから、妙な社内標準・社内フレームワーク・社内ローカルルールが出来て、他所で通用しない社員ばかりになるんだな https://twitter.com/zetamatta/status/881672613889679360 四国の僧侶の先生が言ってた…

readline ライブラリ

nyagos 以外からでも簡単に使えるよう、いろいろがんばった package main import ( "context" "fmt" "github.com/zetamatta/nyagos/readline" ) func main() { editor := readline.Editor{ Default: "InitialValue", Cursor: 3, } text, err := editor.ReadL…

俺は荒木飛呂彦先生は…

ジョジョ第三部の途中で亡くなっていて、今描いているのは二代目ではないかと思っている。 画風が変わっている 登場人物が主人公をジョジョと全く呼ばなくなる このあたりから各話を適当に入れ替えても成り立つようなストーリー構成へ 先生自身が若返ってい…