Tag Archives: bash

.svn、.DS_Storeを削除する

0
Filed under Mac, 仕事ツール
Tagged as , ,

こういうの何度も何度もやってるんだけど、その何度も、の感覚が数ヶ月だったり数年だったりして、毎回毎回忘れています。
んで、今回もググってしまった始末。
自分のところのblogに書いてあるかと思ったが、書いてなかったみたいなので、書いておいて、次回からはググる速度を早くする!
と思って、書こうと思ったら見つけた。
cleanup.shとかいうファイルを。
とある作業フォルダの中に。

#! /bin/bash
find . -name ".svn" -type d -exec echo delete {} ";" -exec rm -rf {} ";"
find . -name ".DS_Store" -exec echo delete {} ";" -exec rm -rf {} ";"

…これだよ、これ。
一応パスが通っている場所にコピーしておいた。


[AD]

↓発表当時から気になっていたゲーム!もうすぐ日本でも発売なんですね!!

ディズニー エピックミッキー ~ミッキーマウスと魔法の筆~

ディズニー エピックミッキー ~ミッキーマウスと魔法の筆~

定価:¥ 5,966

Amazon価格:¥ 3,886

カテゴリ:Video Game

発売日:2011-08-04


↓でもなんか変だな、と思ったら、この特徴的なダークな雰囲気が日本版のパッケージから消えている!

Art of Epic Mickey (Disney Editions Deluxe)

出版社:Disney Book Group( 2011-10-11 )

定価:¥ 4,820

Amazon価格:¥ 15,371

ハードカバー ( 160 ページ )

ISBN-10 : 1423148266

ISBN-13 : 9781423148265


↓ということで、やっぱりこっちか!?と思うんだけど、普通にDSで出して欲しかった…。

みんなのリズム天国

みんなのリズム天国

定価:¥ 5,966

Amazon価格:¥ 4,200

カテゴリ:Video Game

発売日:2011-07-21


↓新型が出るようで、旧型は若干安くなっています!これでもiPadには充電可能なので、これでいい人はなくなる前に!

SANYO USB出力付きリチウムイオンバッテリー (専用高容量リチウムイオン電池使用) KBC-L2BS

SANYO USB出力付きリチウムイオンバッテリー (専用高容量リチウムイオン電池使用) KBC-L2BS

Amazon価格:¥ 4,000

カテゴリ:エレクトロニクス

発売日:2010-10-21


lipo:複数アーキテクチャ向けライブラリを結合するコマンド

1
Filed under iPhoneアプリ, トラブルシューティング, プログラミング言語, 仕事ツール
Tagged as , , , , ,

Odd merge signphoto © 2008 Jason McHuff | more info (via: Wylio)

iOS Static Libraries

iOS Static LibrariesというiOSアプリ向けにビルドされた便利ライブラリ群があります。
ちょっと必要なライブラリが含まれていて、自分でビルドするよりも便利ですし、iOS SDKがバージョンアップされたらきちんと更新されているので便利に使わせてもらっています。
先日、iOS Static Librariesの、iOS SDK 4.3向けのビルドがリリースされました。
しかし、これがちょっと曲者で、現在iOSデバイスはARM V6かARM V7の二つがあり、今回のビルドバーションは、ARMアーキテクチャ向けに二つのビルドがなされているのです。
ARM V6というのはiPhone 3G以前で使われていたものなので、対応機種を3GS以降に絞るならARM V7のみに対応したビルドを行えばいいのですが、まだ3Gも無視できない状況ですので、これをなんとかしないといけません。
そして、Xcodeのビルド設定的には一つにマージされている方が便利なのです。
マージって、、なんかツールがあるのか?設定でどうにか回避できるものなのか?と調べてみたところ、偶然、lipoというコマンドを知ることが出来ました。

lipoコマンド

man lipoによると、次のような説明があります。

The lipo command creates or operates on “universal” (multi-architecture) files.

まさに複数アーキテクチャ対応のユニバーサルファイルを生成するためのツールだと分かります。
そして、これはiOSアプリを開発できる環境ならインストール済みであることも分かりました。
例として、前述したiOS Static Librariesについて調べてみます。
ARM V6用のライブラリ libcurl.a について下記のコマンドで調べてみます。すると、ちゃんとターゲットアーキテクチャを調べることが出来ることが分かります。

1
2
3
$ lipo -info libcurl.a
input file libcurl.a is not a fat file
Non-fat file: libcurl.a is architecture: armv6

そして、ユニバーサルファイルを作る例ですが、例えば、ARM V6用、V7用のlibcurl.aが、./armv6/libcurl.a と、 ./armv7/libcurl.a にある場合には、次のようにして生成できます。出力先は ./fat/ とします。

1
lipo -arch armv6 ./armv6/libcurl.a -arch armv7 ./armv7/libcurl.a -create -output ./fat/libcurl.a

直感的でわかりやすいですね!

armv6/armv7ユニバーサルライブラリをつくる

というわけで、今回の目標である「iOS Static Librariesのarmv6/armv7ユニバーサルライブラリをつくる」シェルスクリプトを載せておきます。
まず、準備として次のようなファイル配置にしておきます。

workディレクトリ直下で実行したら、work/lib以下にユニバーサルライブラリファイルが生成されると思います。また、処理対象は”*.a”ファイルのみ、とします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
 
echo 'makefat.sh -- start!'
 
RootV6='./iPhoneOS-V6-4.3'
 
for lib_armv6 in `find $RootV6 -name "*.a" -print`
do
	lib_armv7=`echo $lib_armv6 | sed "s/V6/V7/g"`
	echo $lib_armv6
	echo $lib_armv7
	lib_fat=`echo $lib_armv6 | sed "s/iPhoneOS-V6-4.3\///g"`
	echo $lib_fat
 
	lipo -arch armv6 $lib_armv6 -arch armv7 $lib_armv7 -create -output $lib_fat
done
 
echo 'makefat.sh -- end!'

one more lipo

lipoは複数アーキテクチャのユニバーサルライブラリをから特定のアーキテクチャパートを削除することも出来たりするようです。
両方対応版のライブラリのみが提供されている環境で、不要なアーキテクチャを削除すれば、ビルド後の実行ファイルサイズが小さくなったりすると思うので、そういう用途にも使えそうですね。


[AD]

↓リンカーとかプログラムをきっちりやろうとしたら外せない部分。去年出たらしいこの本、面白そうですね。

リンカ・ローダ実践開発テクニック―実行ファイルを作成するために必須の技術 (COMPUTER TECHNOLOGY)

著者/訳者:坂井 弘亮

出版社:CQ出版( 2010-08-01 )

定価:

Amazon価格:¥ 3,024

単行本 ( 303 ページ )

ISBN-10 : 4789838072

ISBN-13 : 9784789838078


↓もうすぐ発売されるWEB+DB PRESS plusシリーズ。気になるタイトルです!!

良いコードを書く技術 -読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)

著者/訳者:縣 俊貴

出版社:技術評論社( 2011-04-09 )

定価:

Amazon価格:¥ 2,462

単行本(ソフトカバー) ( 240 ページ )

ISBN-10 : 4774145963

ISBN-13 : 9784774145969


↓こういうのじっくり読んでみたいなぁ〜。

プログラミングコンテストチャレンジブック

著者/訳者:秋葉 拓哉 岩田 陽一 北川 宜稔

出版社:毎日コミュニケーションズ( 2010-09-11 )

定価:

単行本(ソフトカバー) ( 316 ページ )

ISBN-10 : 4839931992

ISBN-13 : 9784839931995


↓結局まだ読んでいない数学ガールシリーズ最新作はアルゴリズムへ突入!

数学ガール/乱択アルゴリズム (数学ガールシリーズ 4)

著者/訳者:結城 浩

出版社:SBクリエイティブ( 2011-02-26 )

定価:

Amazon価格:¥ 2,052

単行本 ( 480 ページ )

ISBN-10 : 479736100X

ISBN-13 : 9784797361001


svnの差分があるファイルをリストアップしたらawkが面白いことを知った

0
Filed under Subversion, プログラミング言語, 仕事ツール
Tagged as , , ,

svn diff

subversionで変更一覧を見るには次のコマンドを入力します。

1
$ svn diff

これで、ファイル名に続いて差分がdiff形式で表示されます。
しかし、変更箇所の詳細は不要で、変更ファイルのファイル名だけが欲しい、という状況になり、一覧を調べるのに何か便利なコマンドがないかと調べて、awkと組み合わせてリストアップするコマンドを見つけました。

1
$ svn diff | awk '/^Index/ {print $NF}'

参考サイト:http://www.02.246.ne.jp/~torutk/subversion/intro.html

エイリアス化

これを毎回入力するのは面倒なので次のように .bash_profile に書いて、エイリアス登録。

1
alias svn_diff_list='svn diff | awk "/^Index/ {print $NF}"'

awk導入

上記コマンドの後半はawkによる文字処理。
awkって名前は知っているけど、自分で使ったこと無いので、これを機にちょっと調べてみた。
awkの面白さが分かりやすかったのがこのページ(http://x68000.q-e-d.net/~68user/unix/pickup?awk)
ls -alで出てくる情報を空白区切りとみなして、5列目、9列目のみ表示したい場合には次のようなコマンドでOKなのだ!

1
$ ls -al | awk '{print $5,$9}'

おー!!これは面白い!!!
んで、そのなかでも、例えば、adminという文字列がある行のみ表示したい場合には、次のように正規表現で指定すれば、行を抽出できる。

1
$ ls -al | awk '/admin/ {print $5,$9}'

ちなみに正規表現にマッチした行をすべて表示するには次のような感じ。

1
$ ls -al | awk '/admin/ {print;}'

awk、奥が深いらしいのですが、導入はこれで十分ですね!あとは、必要に応じて調べればいい!


[AD]

↓AWKの項目もある!ちなみにAWKとは、作者3人の名前の頭文字。エイホ(Aho)、ワインバーガ(Weinberger)、カーニハン(Kernighan)。そう、あのカーニハンですよ!

言語設計者たちが考えること (THEORY/IN/PRACTICE)

出版社:オライリージャパン( 2010-09-27 )

定価:

大型本 ( 536 ページ )

ISBN-10 : 4873114713

ISBN-13 : 9784873114712


↓awkを本格的にプログラム言語として勉強するならこれが良さそう。

sed & awkプログラミング 改訂版 (A nutshell handbook)

著者/訳者:Dale Dougherty Arnold Robbins

出版社:オライリー・ジャパン( 1997-10-01 )

定価:

Amazon価格:¥ 4,428

大型本 ( 461 ページ )

ISBN-10 : 4900900583

ISBN-13 : 9784900900585


↓256倍シリーズのAWK本。

AWKを256倍使うための本 (Ascii 256倍)

著者/訳者:志村 拓 鷲北 賢 西村 克信

出版社:ASCII( 1993-08 )

定価:

単行本 ( 277 ページ )

ISBN-10 : 4756101623

ISBN-13 : 9784756101624


ターミナルから(Growl)通知するコマンド

1
Filed under Mac, 仕事ツール
Tagged as , , , ,

Growlとは、標準では、Macの右上に出てくるポップアップ機能のことです。

Growlは、AppleScriptなどから表示させることは出来るのですが、開発者としてはターミナルから呼び出せるととても便利ですよね。そこで使うコマンドが、growlnotify です。

growlnotify:インストール

growlnotifyは標準環境ではインストールされていないので、パッケージをダウンロードしてインストールします。

Extrasフォルダー以下にgrowlnotifyパッケージがあるのでgrowlnotify.pkgをダブルクリックでインストールします。
インストールが完了したら、一応Terminalで確認してみましょう。

$ which growlnotify
/usr/local/bin/growlnotify
$ growlnotify -v
growlnotify 1.2.1
Copyright (c) The Growl Project, 2004-2008

大丈夫そうですね。

growlnotify:簡単な使い方

簡単な使い方は次のようになります。
まず、”Done!”というメッセージを表示してみます。

$ growlnotify -m Done!


次に、タイトル”Message”で、”Hello World!”というメッセージを表示してみます。

$ growlnotify -m "Hello World!" -t Message


簡単ですね〜。

Growlの機能

しかし、このGrowlは、画面上に通知を表示できるだけではないのです!
Macの「システム環境設定」の「Growl」内の「アプリケーション」を見ると、Growlを呼び出すアプリの一覧が表示されており、各アプリから呼び出したときの表示を個別に設定できます。
見た目の変更するだけかと思いきや、「MailMe」というのに設定すると、メール通知に出来たりします!

まぁ、メール送信は他のコマンドを使ってもいいのですが、GUIと切り替えで使えると便利なこともありますよね。(長時間かかるコンパイルの完了通知とか、エラー通知とか)


[AD]

↓Macをメインに使うようになってきたので、いろいろと環境を快適に整備したい。

Mac OS X Hacks―プロが使うテクニック&ツール100選

著者/訳者:ラエル ドーンフェスト ケビン ヘメウェイ

出版社:オライリージャパン( 2003-11 )

定価:

Amazon価格:¥ 3,888

単行本 ( 447 ページ )

ISBN-10 : 4873111463

ISBN-13 : 9784873111469



growlnotify:ヘルプ

続いて、growlnotifyのヘルプを見ておきましょう。
Read More »