どうもsaikiです。
表題の通りGo言語でのファイル操作を楽にするパッケージ「gkgfiler」を作りました。
ファイルを再帰的に探す、ファイルの一部を置換するとか、難しくないけど若干めんどくさい処理をまとめました。
結構頑張ったので、機会があったらぜひ使ってください。コマンドラインツールを作るときとか役に立つのではないかと思います。
ちなみにgkgはgokigen(ご機嫌)の略です。ご機嫌です。
以下、READMEの日本語版です。
gkgfiler#
gkgfiler(gokigen-filer)はgo言語でのファイル操作を少しだけ幸せにするパッケージです。
ファイルを再帰的に探す、ファイルの一部を置換する、ファイルの末尾に追加する、ファイルに文字列が含まれているか調べるなど、たまにやるとちょっとめんどくさいものをメソッドとして用意しました。
package gkgfiler#
import "github.com/sasasaiki/gkgfiler"
FUNCTIONS#
func AppendText(path, appendStr string, perm os.FileMode) error
AppendText appendStrをファイル末尾に追記します。permはパーミッション。0777とかです。
func Contains(filename, findStr string) (bool, error)
Contains ファイルにfindStrが含まれているかどうかを返します。
func Exist(path string) bool
Exist ファイル・フォルダが存在するかどうかを返します
func GetGoSrcPath() (string, error)
GetGoSrcPath $GOPATH/src を返します。:区切りで複数あった場合は最初のだけ返します。
func GetPaths(dir string, includeDir bool, matchingPatterns ...string) (matches []string, e error)
GetPaths パターンにマッチしたファイル を(includeDirをtrueにしているとディレクトリも) 返します。
patterns
matchingPatterns exsample "*.go","*.yaml"
全て返したい場合は "*" を渡します
func GetPathsRecurcive(dir string, includeDir bool, matchingPatterns ...string) (paths []string, e error)
GetPathsRecurcive 再帰的にファイルを(includeDirをtrueにしているとディレクトリも)返します。
matchingPatterns exsample "*.go","*.yaml"
全て返したい場合は "*" を渡します
func IsDir(path string) (bool, error)
IsDir ディレクトリかどうかを返します
func ReplaceText(filename, origin, replace string, perm os.FileMode) error
ReplaceText ファイルに含まれる全てのoriginをreplaceに置き換えます。permはパーミッション。0777とかです。
func WriteText(path, str string, createIfNothing bool, perm os.FileMode) error
WriteText ファイルにstrを上書きします。createIfNothingをtrueにすると存在しない場合作成して書き込みます。permはパーミッション。0777とかです。
こんな感じです。
大した量じゃないのにすごくつかれた気がします。
因みにテストもちゃんと書いたので、割と安定して動くことかと思います。
使ったらgithubのスターとかコメントとかつけてもらえると…嬉しいなぁ…
モチベーションにもつながリマス。
テストは最高。
ではまた。