Awesome
Philea
Apply commands on globbed files
This tool is part of the go-github-release workflow
Install
Pick an msi package here!
deb/ubuntu/rpm repositories
wget -O - https://raw.githubusercontent.com/mh-cbon/latest/master/source.sh \
| GH=mh-cbon/philea sh -xe
# or
curl -L https://raw.githubusercontent.com/mh-cbon/latest/master/source.sh \
| GH=mh-cbon/philea sh -xe
deb/ubuntu/rpm packages
curl -L https://raw.githubusercontent.com/mh-cbon/latest/master/install.sh \
| GH=mh-cbon/philea sh -xe
# or
wget -q -O - --no-check-certificate \
https://raw.githubusercontent.com/mh-cbon/latest/master/install.sh \
| GH=mh-cbon/philea sh -xe
chocolatey
choco install philea -y
go
mkdir -p $GOPATH/src/github.com/mh-cbon
cd $GOPATH/src/github.com/mh-cbon
git clone https://github.com/mh-cbon/philea.git
cd philea
glide install
go install
Usage
Philea - Apply commands on globbed files
Usage:
philea [options] <cmds>...
philea -q | --quiet
philea -h | --help
philea -v | --version
Options:
-h --help Show this screen.
-v --version Show version.
-q --quiet Less verbose.
-e --exclude pattern Exclude files from being processed [default: *vendor/*].
-p --pattern pattern Which kind of files to process [default: **/*.go].
-C --change-dir Change current working directory.
-S --series Execute process in series instead of parallel.
-d --dry Show commands only, do not run anything.
-s --short Shorter display, wihtout formatting.
Notes:
cmd can contain
%s, it will be replaced by the current file path.
%d, it will be replaced by the path of the directory of the current file.
%dname, it will be replaced by the directory name of the current file.
%f, it will be replaced by the name of the current file.
%fname, it will be replaced by the name of the current file minus its extension.
philea will process all files and all commands and return an exit code=1 if any fails.
Examples:
philea "cat %s" "grep t %s"
It will process all go files, except those in vendors, and apply
cat, then grep an each file.
philea "cat %s" "grep t %s" "ls -al %d" "echo '%dname'"
Example
$ philea --pattern main.go "echo %fname" "echo %f" "echo %dname" "echo %d" "echo %s"
echo ./: ./
echo main.go: main.go
echo main: main
echo ./main.go: ./main.go
echo .: .