Luaの環境を構築してみる

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

nginxの設定が〜みたいな話をしていたら、そりゃluaで書くんでしょみたいな煽りをされたので、
ひとまず開発環境を構築してみることにします。

環境導入

homebrewが導入済みならば、bomebrewから一発です。
パッケージ管理ツールであるluarocksも入れておきます。

$ brew install lua
$ brew install luarocks
$ mkdir ~/.luarocks
$ luarocks path >> ~/.zshrc

3行目でユーザー環境でライブラリ等をインストールするディレクトリを作成しています。

4行目で環境変数を追加しています。
私はzshを使っているためzshrcに記載しましたが、使っているシェルに応じて対象ファイルを変更してください。

ライブラリ(CJSON)の導入

Lua上でJSONを扱うライブラリであるCJSONとファイルシステムを扱うLuaFileSystemを導入し、動作を確認してみます。

$ luarocks install --local lua-cjson
$ luarocks install --local luafilesystem

main.lua

local json = require 'cjson'
local lfs = require 'lfs'
local doc_path = "./"
local result
local file
local text
local val
for filename in lfs.dir(doc_path) do
    result =  string.find(filename,"^.*json$")
    if result ~= nill then
        file = io.open(filename,"r");
        io.input(file);
        text = io.read()
        val = json.decode(text)
        io.close(file)
    end
end
print("JSON " .. text)
print("val.hello is " ..val.hello)

helloWorld.json

{ "hello":"world"}

動作結果

$ lua ./main.lua
JSON { "hello":"world"}
val.hello is world

まとめ

環境導入までは問題なく行えました。Windows環境でも試したかったのですが、
cjsonの導入でCコンパイラ周りでハマってしまいました。
ひとまずは今回構築した環境で進めていきたいと思います。

参考サイト

LuaRocks で Lua のモジュールを管理する - Qiita