Shellscript

簡単にHugoのブログポストのテンプレを生成するシェルスクリプトを作った

表題の通り。 いつもコマンドを忘れるので。 ちなみにデプロイもシェルスクリプトで書いてる。 hugoの記事作成 hugo new "path/to/article.md" コレだけなのだが、記事ソースが配置されるcontent配下にpostと階層が有る場合、 hugo new "content/post/article.md"とやってしまう。 しかしcontent/content/path/to/article.mdに作られてしまう。 正しくはhugo new "post/article.md"だ。contentを除いておく必要が有る。 「久々にブログ書くか」という時(いつも)こうなる。しんどい。 shellscriptで生成を自動化 ということで自動化しよう。 shellscriptを書く。new_post.shと言う名前にした。 #!/bin/bash echo -e "\033[0;32mCreating new post...\033[0m" if [ $# -eq 1 ]; then title="_$1" else title="" fi formatted_date=$(date "+%Y-%m-%d") full_path="posts/${formatted_date}${title}.md" hugo new "$full_path" vi "content/$full_path" タイトルに日付を付けてエディタを起動するまで自動化した。 ./new_post.sh title で./content/posts/2017-01-23_title.mdが生成されてviで開く。 これでブログ書き出しの障壁が小さくなった。もっと頻度を上げたい。 ちなみにbashのlintとしてshellcheckを入れてる。 さらにVimのWatchdogsに組み込んで使うと、非同期でチェックを行い、警告を出してくれて大変便利。 変な書き方すると怒ってくれて、自分のような半端者にはたいへん助かる。 使ってない人はぜひインストールしよう。

特定のアプリケーションにスイッチするシェルスクリプトを作る

Web開発を行っていて、ターミナルとブラウザを行き来することが非常に多い。 一度のキーアクションでターミナルに移動、ブラウザに移動できる方法がないかと考えた上で、作ってみた。 思いつきから作ってみたが意外と便利だった。一日に多用するショートカットとなった。 ブラウザとターミナルを交互に切り替えたい Web開発している時にターミナルとChromeを何度も行き来することがある。 Alt-tabもあるけれど、他のウィンドウが邪魔で何度Alt+tabを入力すればよいかわからない。 Alt-tabを押す、該当の画面がターミナル(Window)であるかを確認、もう一度Alt-tabを押すという繰り返しが非常に面倒。 特定のキー1回でブラウザとターミナルをトグルできればベスト。 xdotoolを使ってみる できる事は下記があるらしい。 ウィンドウ ID の取得 名前やクラスによる検索 現在アクテイブなウィンドウ ウィンドウ ID で指定されたウィンドウの操作 リサイズ 移動 最小化 最全面へ マウスイベントの模倣 マウスカーソル移動 マウスクリック キーイベントの模倣 文字入力 ショートカットキー入力 NOTE: xdotoolを使い特定ウィンドウの表示をワンキーでトグル(http://d.hatena.ne.jp/mooz/20101228/p) $xdotool Usage: xdotool <cmd> <args> Available commands: getwindowfocus getwindowname getwindowpid getwindowgeometry getdisplaygeometry search selectwindow help version behave behave_screen_edge click getmouselocation key keydown keyup mousedown mousemove mousemove_relative mouseup set_window type windowactivate windowfocus windowkill windowmap windowminimize windowmove windowraise windowreparent windowsize windowunmap set_num_desktops