コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

メニュ変更ツールv1.3をリリースしました

先日、日本アンドロイドの会関西支部発表部屋に参加してきました。たいへん楽しかったです。そのときに少しお話したDropboxを使ってLuaridaプログラムを実機で動作させる方法ですが、メニュ変更ツールv1.3に実装しました。
先ず、最初にメニュ変更ツールについて説明したいと思います。

メニュ変更ツール

Luaridaは、インテントで呼ばれない限り、起動すると/luarida/luarida.luaスクリプトを実行します。通常、Luarida実行時に表示されるメニュは、luarida.luaに書かれています。メニュ変更ツールは、このluarida.luaを書き換えるツールです。
メニュ変更ツールのmenuchanege.luaのメイン部分を下記に示します。メニュ変更ツールはmenuchange.iniを読み込んで、そこに書いているURL上にあるcsvファイルを読み込み、メニュを生成します。
iniファイルです。

MyURL=http://dl.dropbox.com/u/14702102/luaridapublic/lua
filename.get=menuchange.csv

csvファイルには、タイトルと実際にhttp.getするURLと番号が書かれています。番号は個人でcsvを書くときは0〜2以外にしてください。
csvファイルです。

最新のメニュに更新,http://dl.dropbox.com/u/14702102/luaridapublic/lua/luarida.lua.last,1
メニュの無効化,http://dl.dropbox.com/u/14702102/luaridapublic/lua/luarida.lua.non,1
メニュのバックアップ,http://dl.dropbox.com/u/14702102/luaridapublic/lua/luarida.lua.bkup,2
バックアップの復帰,http://dl.dropbox.com/u/14702102/luaridapublic/lua/luarida.lua.ret,0

最新のメニュに更新

Luaridaに標準で添付されているluarida.luaを最新のものに差し替えます。実際にはhttp://dl.dropbox.com/u/14702102/luaridapublic/lua/luarida.lua.lastをluarida.luaに差し替えます。

メニュの無効化

luaridaのメニュを無効化します。luarida.luaの中身をsystem.exit()にします。

メニュのバックアップ

現在のluarida.luaをバックアップします。luarida.luaを独自に書き換えていた場合、このバックアップをとることで、元に戻すことができます。

バックアップの復帰

バックアップしたluarida.luaを元に戻します。


以上がメニュ変更の主な機能ですが、場合によって、メニュが追加されることもあります。
以下にmenuchange.luaのメインプログラムを書いておきます。

------------------------------------------
--メインプログラム
------------------------------------------
function main()
local ret = 0

  --iniファイルを読み込みます
  if(readini()==-1)then
    toast("変更しないで終了します")
    return
  end
  --差し替えるメニュデータを取得します
  if(getHttp( MyURL.."/"..filename.get, LuaridaPath.."/menuchange/"..filename.put )==-1)then
    toast("変更しないで終了します")
    return
  end
  --csvファイルをMenuData[]に読込みます
  if(readcsv()==-1)then
    dialog( "メニュデータの取得エラーです" , "変更しないで終了します", 1 )
    return
  end
  --変更するメニュを決める
  ret = selectmenu()
  if( ret==0 )then
    toast("変更しないで終了します")
    return
  end

  local a = dialog( "Luaridaメニュの変更" , "「"..MenuData[ret].title.."」を適応してもいいですか?", 2 )
  if( a~=1 )then
    toast("変更しないで終了します")
    return
  end

  --luarida.luaのバックアップ
  os.execute( "dd if="..LuaridaPath.."/luarida.lua of="..LuaridaPath.."/menuchange/luarida.lua.bak" )
	
  if( ret==#MenuData )then
    --menuchange.iniを削除します
    os.execute( "rm "..LuaridaPath.."/menuchange/menuchange.ini" )
    dialog( "変更成功" , "menuchange.iniを初期化しました", 1 )
    system.setrun( LuaridaPath.."/menuchange/menuchange.lua" )
  else
    --メニュをluarida.luaとしてダウンロード
    toast("luarida.luaのダウンロード中です")
    if(getHttp( MenuData[ret].url, LuaridaPath.."/luarida.lua" )==-1)then
      toast("変更しないで終了します")
      return
    end
  end

  if( tonumber(MenuData[ret].backup)==1 ) then
    dialog( "変更成功" , "luarida.luaが書き換わりました", 1 )
  elseif( tonumber(MenuData[ret].backup)==2 ) then
    dialog( "変更成功" , "luarida.luaをバックアップしました", 1 )
  elseif( tonumber(MenuData[ret].backup)==0 ) then
    dialog( "変更成功" , "バックアップから復帰しました", 1 )
  end
end