文系プログラマによるTIPSブログスマートフォン用の表示で見る文系プログラマによるTIPSブログ文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。何だよ使わないサービスを非表示にしたいんだけど?自作したサービスを削除したいんだけど?雑感モチベーション私「このファイルRARか。私「RARアーカイバなんてインストールしたくない。アンインストール時にゴミが残るの嫌だし挙動をコントロールしたい。私「homebrewでインストールしたp7zipならRAR解凍できる。私「Automatorなら確かシェルスクリプト呼べるから、画面からポチポチできそう」こんな動機です。Storeには無いけど、homebrewには有るコマンドをFinder上でトラックパッドでポチポチ実行したいしたい場合もです。ターミナルからコマンドを実行しないかというと、「いちいちターミナルでコマンド実行するの大変じゃない?ファイル名に日本語やスペースが混じってると面倒だし」という物凄くつまらない理由になります。このつまらない願望をAutomatorなら実現できるので、やってみましょう。p7zipAutomatorからサービスを作成するアプリケーションからAutomatorを起動します。Automatorを起動するといきなり以下のようなダイアログが表示されます。表示されていますが、ここは新規作成ボタンをクリックします。新規作成ボタンをクリックすると以下のようなダイアログが表示されます。書類の種類はクイックアクションを選択し、選択ボタンをクリックします。解りにくいですが、サービスに登録するにはクイックアクションを選択します。選択ボタンをクリックすると以下のような画面が表示されます。大量の機能が表れて面くらいますが、虫眼鏡アイコンのテキストボックスにシェルスクリプトと入力すると、以下のように大量のメニューの中からシェルスクリプトを実行が絞り込まれます。シェルスクリプトを実行をドラッグし、ワークフローを作成するには、ここにアクションまたはファイルをドラッグしてください。いうエリアにドロップします。ワークフローが受け取る現在の項目をファイルまたはフォルダに、シェルを/bin/bashに変更し、テキストエリアに以下をコピー&ペーストします。ここで保存した名前がそのままサービス名になります。今回は「RARを解凍」という名前にしてみました。保存したファイルの実態は/Users/ユーザ名/Library/Services/RARを解凍.workflowに保存されています。これで完成です!では早速試してみましょう。以下のように沢山のディレクトリが有るとします。sample50このフォルダを1ファイルのzipに圧縮するのではなく、フォルダ毎にzip圧縮をしたい、更にフォルダは削除してzipファイルのみ残したい場合、以下のスクリプトをAutomatorでサービス化するだけです。サービス化手順は前述と全く同じです。/System/Library/Sounds/Glass.aiffこちらは、以下の記事を参考にカスタマイズした形になります。mattintosh.hatenablog.comGIFアニメで挙動を確認するおまけ:画像サイズの50%化なんでこんな機能が必要になるかというと、retinaディスプレイで画面キャプチャを取得すると、解像度の問題か、巨大な画像(2倍のサイズ)になってしまうためです。それを等倍に戻すためにこれが便利だったりします。この機能に関しては標準機能のみで行った方が楽なので、通常のワークフローのみで作成します。ワークフローが受け取る現在の項目をイメージファイルに、ワークフローの1件目をFinder項目を複製に、ワークフローの2件目をイメージをサイズ調整にし、比率(パーセント)指定を選択して値に50を指定し、保存すれば完了です。元のファイルを削除せずコピーしてからリサイズするので、操作を誤っても元ファイルへの影響は無いので安心です。GIFアニメで挙動を確認するトラブルシューティング作成したサービスがメニューに出てこないんだけど?ワークフローが受け取る現在の項目の設定値が誤っていると、メニューに表示されない事があります。「ワークフローが受け取る現在の項目」を「自動(テキスト)」が選択されている場合、フォルダを右クリックしてもサービスに表れません。選択値の通り、テキストファイル上で右クリックした場合のみ選択できるようになります。従って、対象が画像なのか、フォルダなのか、等を考慮して適切に設定する必要があります。homebrewのコマンドが実行されてないっぽいんだけど?Automatorはログインシェルを実行してくれないため、.bashrcや.zshrcを参照しないため、環境変数やパスが未設定の状態で実行されます。これに対応するにはフルパスで記述する等が必要になります。"テスト"これをスクリプトの最後等に挟むと通知もできます。do」は標準入力(stdin)から選択された複数のファイル名を受け取っています。標準入力(stdin)なのかというと、Automatorのワークフローでそう設定したためです。「入力の引き渡し方法」を「引数として」を選択した場合、スクリプトの1行目を以下のように修正する事で動くようになります。doこれは単にシェルスクリプトの処理の問題なだけなので、使い慣れている方で記述すればいいかなと思います。表示したいもののみチェックする尚、サービスの数が5個以上の場合はサービスというサブメニューが表示され、5個より少ない場合は以下のようにサブメニューの代わりにコマンド名が直接表示されるようです。/Users/ユーザ名/Library/Services/に保存されているので、ここにあるファイルを削除するだけで、リアルタイムに削除が反映されるようです。右クリックしてサービスメニューを展開したタイミングで都度このファイル群を参照しているため、リアルタイムに反映されるのだと思われます。雑感Windowsでは使えないので汎用性には大変疑問が残りますが、個人用途ではAutomatorは非常に有用だったりします。シェルスクリプトが実行可能という事は、プログラマの皆様なら何ができるか想像できますね?スクリプトを書かなくてもUIだけで構築できるので、実は色々楽だったりします。画像サイズ50%化ですが、macにはsipsという画像操作コマンドがありますが、これは比率を指定できないため、ImageMagick等を別途インストールする必要があります。それをするためだけに巨大で脆弱性満載なものをインストールしたくありません。そんな時標準ワークフローが利用すると簡単に実現できるので楽です。Storeからインストールしたくない系コマンドは沢山あると思うので、サービス化等をしてオペレーションを簡単にしておきたいですね。週間)昔は業務系SIer、今はベンチャー企業でプログラムを書いています。INFILEを実行できるようにするmacのAutomatorでhomebrewのコマンドをFinderのサービスから実行できるようにするReactオススメ書籍React自体の基礎、AtomicDesignの適用、CSSの運用手法の歴史的な経緯とメリットデメリット、Reduxの基礎、redux-sagaによる非同期処理、サーバサイドレンダリング、テスト、lint、を学ぶ事ができます。単行本(ソフトカバー)この商品を含むブログを見るAngularオススメ書籍Angularを学ぶなら絶対以下がおすすめです!バインディング、ディレクティブ、パイプ、フォーム、コンポーネント、サービス、ルーティング、httpClientによる非同期httpリクエスト、テスト、angular-cli、を非常に丁寧な説明で網羅的に解説しています。大型本この商品を含むブログを見るSEOオススメ書籍SEOを学ぶなら絶対以下がおすすめです!クローラに対して何をどうすればサイトの巡回効率・速度を上げる事ができるのか、どういったマークアップをする事が標準仕様なのか。巷に溢れる業者による経験則に基づくオレオレSEO情報は一切無く、全てGoogle等のオフィシャルな情報に基づいて何をすべきか、どんな手段があるのかを解説されています。プログラマな私が業務で行った施策が多く書かれており、プログラマ寄りで高度な内容となっており、巷のビギナー向けの曖昧な情報集とは一線を画しています。Amazonアソシエイト・プログラムの参加者です。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。