ターミナルがダサいとモテない。pierでTerminal Taskをひとまとめ
Yusuke Hasegawa

Yusuke Hasegawa @yusukeh

About: I’m Yusuke, CEO of grasys Inc., a Japanese MSP specializing in scalable, high-performance cloud infrastructure and operations.

Location:
Tokyo, Japan
Joined:
May 29, 2025

ターミナルがダサいとモテない。pierでTerminal Taskをひとまとめ

Publish Date: Jun 24
0 0

Command-Line Frameworkが好き


Photo by Sigmund on Unsplash

自分はCommand-Line Frameworkが大好きなんですが・・・

またまた見つけてしまいました。

pierです。Rustで実装されてます。

GitHub - pier-cli/pier: A Linux script management CLI written in Rust

Command-Line Frameworkというと、自分はいろいろ活用してきました。

古くはPerlのApp::CmdApp::Rad

bashのrerun

こちらは自分でmedium書いてますね

ターミナルがダサいとモテない。bash command-line framework rerun編

あとはRustで作られてるargc

これも自分でmedium書いてますね。

ターミナルがダサいとモテない。bash command-line framework argc編

bashだと処理内容的に辛いな・・・ってときに、Pythonで書けるTyper

Typer

この通りCommand-Line Frameworkが大好きです。

今日はpierを紹介しようと思います。

pierの簡単な説明

githubのDescriptionに書いてありますね

GitHub - pier-cli/pier: A Linux script management CLI written in Rust

scriptを書いて便利になったけど、いろんなサーバがあって

PATHの設定が・・・

script名の命名が・・・

作者の苛立ちが感じられます😅

気持ちわかります👍

ざっくり自分の斜め読み理解で説明すると

  • Installはcargo install
  • tomlファイルでScript本体とそのメタデータを一元管理
  • pier本体とtomlだけで複数のscriptを持ち回れる

素敵じゃん🤣

んじゃさっそく始めてみます。

pierのInstall

githubに見逃すレベルでさらっと書かれています。

GitHub - pier-cli/pier: A Linux script management CLI written in Rust

cargo install pier
Enter fullscreen mode Exit fullscreen mode

これで入ります。

pierのpre-init

macOSだと${HOME}/Library/Preferences/pier/config.tomlがdefaultのconfig pathになっていて気持ち悪いのとdotfilesをyadmで管理できないので変更します。

helpを見ると・・・

pier --help
pier 0.1.6
Benjamin Scholtz, Isak Johansson
A simple script management CLI

USAGE:
    pier [FLAGS] [OPTIONS] <alias> [args]...
    pier [FLAGS] [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help
            Prints help information

    -V, --version
            Prints version information

    -v, --verbose
            The level of verbosity

OPTIONS:
    -c, --config-file <path>
            Sets a custom config file.

            DEFAULT PATH is otherwise determined in this order:

            - $PIER_CONFIG_PATH (environment variable if set)

            - pier.toml (in the current directory)

            - $XDG_CONFIG_HOME/pier/config.toml

            - $XDG_CONFIG_HOME/pier/config

            - $XDG_CONFIG_HOME/pier.toml

            - $HOME/.pier.toml

            - $HOME/.pier [env: PIER_CONFIG_PATH=]

ARGS:
    <alias>
            The alias or name for the script

    <args>...
            The positional arguments to send to script

SUBCOMMANDS:
    add Add a new script to config
    config-init alias: init - Add a config file
    copy alias: cp - Copy existing alias to the new one
    edit Edit a script matching alias
    help Prints this message or the help of the given subcommand(s)
    list alias: ls - List scripts
    move alias: mv, rename - Move/rename existing alias to the new one
    remove alias: rm - Remove a script matching alias
    run Run a script matching alias
    show Show a script matching alias
Enter fullscreen mode Exit fullscreen mode

いくつかのパターンでconfig pathを設定できるみたいですね

DEFAULT PATH is otherwise determined in this order:

            - $PIER_CONFIG_PATH (environment variable if set)

            - pier.toml (in the current directory)

            - $XDG_CONFIG_HOME/pier/config.toml

            - $XDG_CONFIG_HOME/pier/config

            - $XDG_CONFIG_HOME/pier.toml

            - $HOME/.pier.toml

            - $HOME/.pier [env: PIER_CONFIG_PATH=]
Enter fullscreen mode Exit fullscreen mode

ちょっと自分の場合は確実に設定したいのでbashrcに以下のように設定しました。

# pier
if command -v pier &> /dev/null; then
  declare -x PIER_CONFIG_PATH=${XDG_CONFIG_HOME}/pier/config.toml
fi
Enter fullscreen mode Exit fullscreen mode

まあこれは自分の癖や気持ちの問題なので気にしないでください。

pier --help
Enter fullscreen mode Exit fullscreen mode

環境変数を読み込ませるとHelpの出力のOptions -cの最後あたりに

env: でPIER_CONFIG_PATHが出力されるので確認できます。

- $HOME/.pier [env: PIER_CONFIG_PATH=/Users/xxxxxx/.config/pier/config.toml]
Enter fullscreen mode Exit fullscreen mode

pier config-init

PIER_CONFIG_PATHを設定できたら環境変数が読み込まれてることを確認して以下を実行してみましょう。

pier config-init
Enter fullscreen mode Exit fullscreen mode

pier config.toml

config-initしたらこんな感じのtomlができます。

ひとつscriptもsampleの登録されます。

cat ${PIER_CONFIG_PATH}

[scripts.hello-pier]
command = 'echo Hello, Pier!'
description = 'This is an example command.'

[default]
Enter fullscreen mode Exit fullscreen mode

pier list

listで登録されてる一覧が確認できます。

pier list
≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖
⋮ Alias ⋮ Tags ⋮ Command ⋮ Description ⋮
≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖
⋮ hello-pier ⋮ ⋮ echo Hello, Pier! ⋮ This is an example command. ⋮
≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖≖
Enter fullscreen mode Exit fullscreen mode

hello-pierは最初から登録されてます。

pier run

実際にhello-pierを実行してみます。

pier run hello-pier
Hello, Pier!
Enter fullscreen mode Exit fullscreen mode

実際にconfig.tomlを見ると

[scripts.hello-pier]
command = 'echo Hello, Pier!'
description = 'This is an example command.'
Enter fullscreen mode Exit fullscreen mode

commandのパラメータを実行してます。

これでだいたいわかってきてると思うので次は実際に追加してみましょう。

pier add

pier addでscriptsを追加できます。

ここではあくまでもサンプルとしてbatcacheを作り直してます。

pier add \
  --alias rebuild-cache-bat \
  --description "Rebuilding the bat cache" \
  --tag bat \
  -- "bat cache --clear & bat cache --build" 
Added rebuild-cache-bat
Enter fullscreen mode Exit fullscreen mode

実際に登録したものを走らせてみます。

pier run rebuild-cache-bat
Clearing theme set cache ... okay
Clearing syntax set cache ... okay
Clearing metadata file ... okay
Writing theme set to /Users/xxxxxxxx/.cache/bat/themes.bin ... okay
Writing syntax set to /Users/xxxxxxxx/.cache/bat/syntaxes.bin ... okay
Writing metadata to folder /Users/xxxxxxxx/.cache/bat ... okay
Enter fullscreen mode Exit fullscreen mode

感想

githubのREADMEにも書いてある通りで、cargo installしてtomlをdotfilesで持っていくだけで一通りのscriptを持ち回れるのはとてもいい感じ

READMEを読むと

defaultのinterpriterを設定できるみたいでnodeなどの例もあるんで、全部nodeで書くとかなら設定するといいかも

GitHub - pier-cli/pier: A Linux script management CLI written in Rust

shebangもtomlのヒアドキュメント形式で書けるみたいなので、自分はこっちの方が好みかな

GitHub - pier-cli/pier: A Linux script management CLI written in Rust

あとは実際に登録するとき、ちょっと複雑なscriptであれば

pier addのhelpに記載してある通りにやらないで

pier add --help
pier-add 0.1.6
Add a new script to config

USAGE:
    pier add [FLAGS] [OPTIONS] --alias <alias> [--] [command]

FLAGS:
    -f, --force Allows to overwrite the existing script
    -h, --help Prints help information
    -V, --version Prints version information

OPTIONS:
    -a, --alias <alias> The alias or name for the script
    -d, --description <description> The description for the script
    -t, --tag <tags>... Set which tags the script belongs to

ARGS:
    <command> The command/script content to be executed. If this argument is not found it will open your $EDITOR
                 for you to enter the script into
Enter fullscreen mode Exit fullscreen mode

commandの入力に適当に入れてtomlを編集した方がやりやすいかもしれないですね。

pier add [FLAGS] [OPTIONS] --alias <alias> [--] [ここに適当にいれて]

vi ${PIER_CONFIG_PATH}
Enter fullscreen mode Exit fullscreen mode

ちょっと個人的に使ってみようかな

Comments 0 total

    Add comment