スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Luaでファイルシステムを実装しよう(MacFUSEで)

MacFUSEを使うとObjective-Cでファイルシステムを実装できる。ということはLuaでファイルシステムを実装できる。
コードは以下。^Cで止まる。
require "cocoa"
require "cocoa:MacFUSE"

local hello = {}
objc.implement_informal_protocol(hello,"GMUserFileSystemOperations")
function hello:contentsOfDirectoryAtPath_error_(path,error)
  return objc.table_to_NSArray{"hello.txt"}
end
function hello:contentsAtPath_(path)
  if path:isEqualToString_("/hello.txt") then
    return objc.runtime.string_to_NSData"Hello world!\n"
  end
  return nil
end

local filesystem = cocoa.GMUserFileSystem:alloc():initWithDelegate_isThreadSafe_(hello,false)
filesystem:mountAtPath_withOptions_("/Volumes/Hello",objc.table_to_NSArray{"rdonly","volname=HelloFS"})

pcall(function()
  local running = false
  repeat
    local next = cocoa.NSDate:dateWithTimeIntervalSinceNow_(1.0)
    running = cocoa.NSRunLoop:currentRunLoop():runMode_beforeDate_(cocoa.NSDefaultRunLoopMode,next)
  until not running
end)
filesystem:unmount()
スポンサーサイト

テーマ : プログラミング | ジャンル : コンピュータ

trackback


この記事にトラックバックする(FC2ブログユーザー)

MacRubyとMacFUSEでファイルシステムを作ってみる

こないだAtomPubとWebDAVの話をしてて、あーそうかAPIをWebDAVとして実装してたらファイルシステムとしてマウントできて面白かったかもなぁ、でも実装面倒なんじゃないのかなどうだろやったことないし、でもvimで記事書いて:wで投稿されてmvしたらカテゴリ変わってrmで記?...

コメントの投稿

非公開コメント

プロフィール

minoki

Author:minoki
好きなプログラミング言語:
Haskell,Lua
GitHubアカウント
Twitter

最新記事
月別アーカイブ
カテゴリ
検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。