Skip to content

ソースコードへのアクセスやGitやDockerなどのCLI操作を迅速化する関数・設定集

Notifications You must be signed in to change notification settings

idylwork/shell-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Shell Tools

概要

エンジニアとしてプロジェクトに関わるとき、ソースコードの編集や精査が業務の中心となってきます。 一方でプロジェクトの進行管理やソースコードのリリース先などはクライアントやインフラ構成によって変わってきます。 複数のプロジェクトに横断的に関わるとき、ブラウザのブックマークから辿って情報を検索するよりも ソースコードに対してプロジェクト進行やドキュメントの管理場所を紐づけてしまおうという思想で機能を整備しています。

シェルスクリプトのユーティリティ関数

2 つのコマンドを追加します。

to <action>コマンド

Git や Docker などに関するスニペット集です。 第 2 引数にアクションを指定することで、さまざまな操作を行います。 ファイルを一括で名称変更したり、タイマーを表示したりといった便利コマンドのほか プロジェクトのリポジトリ単位でのコマンドを使うと、プロジェクトのディレクトリ配下でコマンドを実行した際に 適した操作をするよう、設定ファイルにパスなどを保持しておくことができます。 各開発プロジェクトでタスク管理・コード管理・インフラ構成などを完全に統一して管理することは難しく 複数のプロジェクトを横断する際に、都度設定を確認したりドキュメントを参照する必要が出てしまいます。 プロジェクトごとの設定をファイルに保持しておくことで、情報へのアクセスやソースファイルの操作を迅速に行うことができるようになります。

一例として以下のようなコマンドがあります。詳細はto helpで確認できます。

  • to develop develop ブランチをチェックアウトして最新に更新する
  • to git pulls Git の設定を読み取り、リポジトリのプルリクエストをブラウザで開きます
  • to open Docker や Vagrant の設定を読み取り、ローカル環境の URL を開きます

ws <ディレクトリ名>コマンド

あいまい検索を使ってワークスペースディレクトリ内をスピーディに移動できます プロジェクトのディレクトリに移動してtoコマンドを併用することで 情報のアクセスやファイル操作を CLI で完結することもできます。

ws # ワークスペースルートに移動
mkdir example_project
ws expj # example_project に移動

Git CLI の設定

フックを追加

利用方法

シェルスクリプト

導入

index.sh を読み込むことで各コマンドが追加されるので、~/.zshrcなどに以下のコードを追加します。 .zshrc に関する他の設定はzshrc.sampleを参照してください。

[ -f ~/.zsh/index.sh ] && source ~/.zsh/index.sh

設定が終わったらコマンドを読み込みなおします。

source ~/.zshrc

コマンドを使って設定ファイルを作成します。

to edit --init

利用

各コマンドの詳細はヘルプメッセージを参照してください。

: ヘルプメッセージの表示
to help

Git 設定

/git 配下のファイルを~/gitconfigに組み込むことで Git にさまざまな設定が追加されます。

  • gitignore 汎用的なグローバルの Gitignore 設定
  • pre-commit コミット時、変更点にデバッグコードが含まれる場合はコミットを中止する
  • その他設定

導入

gitconfig.sample.iniにサンプル設定があるため、各項目を適宜~/.gitconfigに反映してください。 以下コマンドで差分を表示できます。

to git init

利用

Git の挙動がすべてのリポジトリで変更されるため、特別な操作は不要です。

ディレクトリ構成

  • index.sh スクリプトを読み込む
  • src/ シェルスクリプトのコード
    • tool.sh toコマンド本体
    • constants.sh 定数週
    • functions.sh
    • settings.sh
  • git/ Git の設定に関するファイル
  • config/ 設定ファイル
    • addon.sh 追加のスクリプト
    • projects.ini プロジェクトごとの定数の設定
    • store.ini 保持したいデータ (to bl使用時の索引)
    • note.txt to note使用時に原稿として使用
  • sample/ サンプルファイル
    • config/ 設定ファイルのサンプル (to edit --initで配置)
    • gitconfig.sample ~/.gitconfigのサンプル
    • zshrc.sample ~/.zshrcのサンプル

特定のプロジェクトに関するコードや設定はconfig/配下に記載するようにしてください

Homebrew

以下のライブラリを導入しています。

  • git
  • nodenv

シェルスニペット

時々使用するスニペットをここに記載しておきます。

: 1時間以内に更新されたファイル
sudo find . -mmin -60 -type f | xargs ls -l {}

: 代替treeコマンド
pwd; find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/|  /g' && echo -e "\n$(find . -type d | wc -l) directories, $(find . -type f | wc -l) files"

About

ソースコードへのアクセスやGitやDockerなどのCLI操作を迅速化する関数・設定集

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages