AppleScriptでプログレスバー – 2

AppleScriptでプログレスバーを表示することについては、ドタバタした内容ながら、ここで紹介しました。
で、デモバージョンとして、”sudo purge”を実行するだけのアプリケーションを書きました。
そう、なんで今更”sudo purge”なんだと思うのですが、適当に処理時間がかかって、プログレスバーを表示するには都合が良かっただけです。

「メモリ開放」に関しては 、Mavericks以降は不要だと言われながらそれなりの数のツールが出ていますが、結局”sudo purge”以上の効果のあるツールを私は知りません。
Appleの、最近のメモリに関する“富豪主義(?)”については、何を言っても無駄な気がしますし、その傾向は留まらないのでしょう。あればありったけ使うので、余裕があればその分だけ積めということのようですから…。

さて、スクリプトは以下のようになります。

property UserName : ""
property UserPasswd : ""
property y : ""
property DialogPath : "/Applications/Dialog.app"

on run
	set y to path to me
	my checkPass_Name()
	my do_do()
	delay 1
	my done_done()
end run

on checkPass_Name()
	tell application "Finder"
		set UserPasswd to comment of (y as alias)
	end tell
	tell application "System Events" to set UserName to name of current user
	if UserName is "" then
		activate
		display dialog "ログインユーザ名を入力してください。" buttons {"キャンセル", "設定"} default answer "" default button 2 with icon caution returning {text returned:theVart, button returned:theVarb}
		if theVart is not "" then
			set UserName to theVart
		else
			return
		end if
	end if
	if UserPasswd is "" then
		activate
		display dialog "ログインパスワードを入力してください。" buttons {"キャンセル", "設定"} default answer "" default button 2 with icon caution with hidden answer returning {text returned:theVart, button returned:theVarb}
		if theVart is not "" then
			set UserPasswd to theVart
			tell application "Finder" to set comment of (y as alias) to UserPasswd
		else
			return
		end if
	end if
end checkPass_Name

on do_do()
	activate
	display dialog "キャッシュファイルの解放を行います。" buttons {"Cancel", "Do Purge!"} default button 2 with icon 1 giving up after 3
	try
		do shell script "open " & quoted form of DialogPath
		delay 1
		do shell script "sudo /usr/sbin/purge" user name UserName password UserPasswd with administrator privileges
	end try
end do_do

to done_done()
	beep 3
	display notification "ディスクキャッシュを解放しました。" with title "完了"
	delay 0.1
	do shell script "killall applet"
end done_done

ダイアログでプログレスバーを表示するアプリケーションはここで紹介した‘Dialog.app’を「アプリケーションフォルダ」へ入れて使う場合のスクリプトです。
‘Dialog.app’の名称を‘ProgressBar.app’とでもしておけばよかったと後で思ったのですが、まあいいでしょう。

デモアプリケーション

上記のアップルスクリプトとほぼ同じ内容のアプリケーションを”デモ版”として用意しました。ダイアログでプログレスバーを表示するアプリケーション‘Dialog.app’は別途に用意しなくても動作するようにバインドしています(編集可能な形式で保存していますので、パッケージの中身を見ていただければバインドのやり方がわかるでしょう)。

下記アドレスからダウンロード可能としました。
http://amstudio.sytes.net/amweb/purge_mem_prgrs.iso.zip

※アプリケーションの著作権は放棄いたしませんが、対価は不要です。自己責任で、自由にお使いください。
インターネット上のリンクは、作者への事前/事後の承諾は不要ですので、自由にリンクして下さい。
基本的に、再配布・転載は認めません。

保証

動作に関する保証はいたしません。また、使用によって生じたと思われるいかなる損害に対しても、作者は一切責任を負いません。使用は御自身の責任において行なってください。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中