2018年2月15日 (木)

JavaScript for Automation (JXA)でファイルをFTPアップロード

JXA でも Apple Script 同様、doShellScript 内で curl コマンドを用いてファイルを FTP サーバーにアップローすることはできる。

 app = Application.currentApplication();
 app.includeStandardAdditions = true;
 var localFilePath = "/Users/xxxxx/foo/bar.txt";
 var ftpUser = "xxxxx";
 var ftpPassWord = "papapass";
 var upPath = "ftp://ftp.hogehoge.hog/usr/xxxxx/hoge";
 
 app.doShellScript("curl -T '"+localFilePath.replace(/\'/g, "'\\''")+"' -u "+ftpUser+":"+ftpPassWord+" '"+upPath.replace(/\'/g, "'\''")+"'");

ローカルファイルやアップロードパスに絶対にスペースやクォーテーションマーク(ダブル、シングルとも)が含まれない自信があるなら、パスをクォーテーションで囲んだり、エスケープせずに以下のように書くこともできる。

 app.doShellScript("curl -T "+localFilePath+" -u "+ftpUser+":"+ftpPassWord+" "+upPath);

いずれにしても、これでは FTP パスワードがスクリプト内にむき出しになってしまうので、スクリプト実行時にキーチェーンからパスワードを取り出すことにする。

» 続きを読む

JavaScript for Automation (JXA)でUTF-8テキストの読み書き

Apple Script 同様、JXA でも本来の機能を用いてテキストを開いて読み書きすることはできる。

app = Application.currentApplication();
app.includeStandardAdditions = true;
app.openForAccess(item_1);
var text_content = app.read(item_1, {as:"text"});
app.closeAccess(item_1);

しかしこれでは、文字コードが MacOS(Shift JIS の Mac 独自仕様)になり、改行コードも CR に変わってしまうため、筆者のように外国語と日本語が混じった文章を書く人間にとっては実用的ではない。

そのため、unicode テキストを扱うには JXA でもやはり doShellScirpt 頼みということになる。

» 続きを読む

JavaScript for Automation (JXA)でフォルダアクション

フォルダアクションスクリプトを JXA で書こうとしたがうまくいかない。

function addingFolderItemsTo(this_folder, {afterReceiving:added_items}) {
	//
}

というメソッドが実装されているはずなのだが、うまく動作しない。

ただ、上記のメソッドを記述しなくても

var finder = Application('Finder')
finder.includeStandardAdditions = true
var added_items = finder.selection()

のようなスクリプトを単にフォルダアクションとして登録するだけで、一応動作はするのだが、それだとそのフォルダから項目を取り除いた場合や、フォルダウィンドウを開いたり閉じたりしただけでも処理が行われてしまうので、実用的ではない。

そこで、Automator を介してフォルダアクションを動作させるという方法を試みた。

» 続きを読む

JavaScript for Automation (JXA)で色々やってみる

故あって、普段よく使っている Apple Script を数件、JavaScript for Automation (JXA) に移植した。

その際、メモしておいたヒントなどをいくつかここに書き留めておく。

» 続きを読む

2017年9月27日 (水)

Aleph One JPをMacでプレイする

Aleph One JP についての詳しい説明は省略するが、早く言えばフリーの 3D FPS (一人称シューティングゲーム) の実行環境 Aleph One の日本語版である。プレイするには別途シナリオファイルが必要だが、有志達の手により日本語化されたシナリオもいくつか配布されていて、英語が苦手な人でも楽しめる環境が整っている。

marathon-infinity
(クリックして拡大)
(プレイ中のシナリオは Marathon Infinity。写っているのはその最終ステージ)

その実行環境 AlephOne の日本語版 AlephOneJP は Mac 版バージョン 1.0 から長い間更新されていないものの、High Sierra 上でも動作可能であることを確認した (APFS でフォーマットされたドライブ上でも可能)。

ただ、確か OS X Mavericks 以降?だったか、説明書通りにインストールしただけではうまく行かないため、少し工夫が必要である。

以下にそれらについて述べる。

» 続きを読む

2017年9月26日 (火)

High Sierra各種検証結果(2)[更新]

macOS がバージョンアップするたびに個人的に調べている事項についての記事のまとめ。

Finder ウィンドウの位置とサイズに関しては Sierra から一部変化があった。Maverick から変化がないので、当該記事へのリンクを貼っておく。
macOSのFinderウィンドウの位置とサイズを個別記憶(High Sierra版)
MavericksのFinderウィンドウの位置とサイズを個別記憶
日本語入力の辞書登録に関しても、基本的に Mavericks から変化がないので、Mavericks における当該記事へのリンクを貼っておく。
Mavericksでことえりの追加辞書を登録
※ただし、Yosemite から「ことえり」というプログラム名ではなくなり、単に「日本語入力」という名称に変更されている。
それと、日本語入力の単語登録を素早く行うための Automator Workflow の記事も、Mavericks の記事がそのまま適用できるのでリンクを貼っておく。
Mavericksことえりユーザ辞書登録ショートカットworkflow

ウェブサーバーソフトウェア apache でユーザーディレクトリ内で CGI を有効にする方法については、Sierra から変化はない。当該記事にリンクを貼っておく。
SierraでユーザディレクトリCGI

High Sierra各種検証結果(1)[更新]

個人的に High Sierra 上での動作を確認したソフトウェアや周辺機器を掲載しておく。

CaptyTV Hi-Vision (PIX-DT181-PU0)
「libfreetype.6.dylib」があれば、視聴ソフトウェア「Station TV LE 2.3.3」で視聴は可能。
だが、残念なことに HDD が APFS でフォーマットされている場合(ほとんどの ノート型 Mac では、High Sierra インストール時に APFS に自動でコンバートされる)、録画はできないようだ。HDD が HFS+ の場合、録画ができるのかどうか筆者は試していないのでわからない。
「libfreetype.6.dylib」は XQuartz に含まれるライブラリーであり、XQuartz をインストールすれば libfreetype.6.dylib も自動でインストールされる(はず。筆者は試していない)。あるいは、ダウンロードした XQuartz から Pacifist(シェアウェア)を用いて libfreetype.6.dylib だけを取り出すこともできる(はず。これも筆者未経験)。もし El Capitan 時代以前に X11 をインストールしていたなら、Time Machine バックアップから libfreetype.6.dylib を取り出すこともできるかもしれない。libfreetype.6.dylib は「/usr/X11/lib」ディレクトリーに置く(「X11/lib」ディレクトリがなければ作成する)
外付け DVD への動画の保存は不可能。
外付け HDD を録画場所にすることもできない。環境設定から設定しようとすると、Station TV LE が落ちる。設定ファイル「/Users/ユーザー名/ライブラリ/Preferences/com.PIXELA.StationTV_LE2.plist」の「RecVolumePath」という項目を直接書き換えても録画はできない。
CaptyTV を Mac に接続し、StationTV_LE を起動して視聴した後、StationTV_LE を一旦終了させてまた起動しようとすると、起動に失敗する。その場合、一旦 CaptyTV の USB ケーブルを Mac から抜き、再び差してから StationTV_LE を起動させれば起動が可能。
High Sierra インストール以前に録画してあった動画を視聴するのは可能。
intuos 3
intuos 3 向け最終バージョンの WacomTablet ドライバー 6.3.9w5 で動作する(但し、すべての機能を完全に試したわけではない)。
Photoshop CS 5
Apple が配布している Java For OS X 2015-001 をインストールすれば、起動できるようにはなる。しかし、それだけではアプリケーションを終了させるときにエラーが出る。色々試した結果、「システム環境設定」において「Spotlight」の項目内の「プライバシー」セクションに、「Adobe Photoshop CS 5」フォルダー(アプリケーションフォルダー内にある)を登録していれば、終了時のエラーは起きないことがわかった。その他の動作についてはざっと試した限り問題ない(但し、すべての機能を完全に試したわけではない)。
Parallels Desktop 10
動作可能(但し、すべての機能を完全に試したわけではない)。
Pac the Mac
この世に、このゲームをいまだにプレイしている Mac ユーザーが筆者以外に存在するのかはなはだ疑問だが(笑)、残念ながら、APFS でフォーマットされた SSD からは起動できないようだ。だが、HFS+ でフォーマットされた外付けドライブにアプリを移し、そこから起動すれば正常に動作するようだ(但し、すべての機能を完全に試したわけではない)。
Aleph One JP
FPS (一人称シューティングゲーム) の実行環境 AlephOne の日本語版 AlephOneJP は Mac 版バージョン 1.0 が High Sierra 上で動作可能。
詳細記事はこちら:Aleph One JPをMacでプレイする

«Fedora 25をメディアなしでインストールする