lua-platform-info: use libplatforminfo
This commit is contained in:
parent
358a087ea4
commit
7e0976edae
|
@ -1,5 +1,4 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
include $(INCLUDE_DIR)/target.mk
|
|
||||||
|
|
||||||
PKG_NAME:=lua-platform-info
|
PKG_NAME:=lua-platform-info
|
||||||
PKG_VERSION:=1
|
PKG_VERSION:=1
|
||||||
|
@ -12,26 +11,26 @@ define Package/lua-platform-info
|
||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
TITLE:=Lua hardware platform information library
|
TITLE:=Lua hardware platform information library
|
||||||
DEPENDS:=+lua @(TARGET_ar71xx_generic||TARGET_ar71xx_nand||TARGET_mpc85xx_generic||TARGET_x86_generic||TARGET_x86_kvm_guest||TARGET_x86_64||TARGET_x86_xen_domu||TARGET_ramips_rt305x||TARGET_brcm2708_bcm2708||TARGET_brcm2708_bcm2709||TARGET_sunxi)
|
DEPENDS:=+lua +libplatforminfo
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/lua-platform-info/description
|
|
||||||
Lua library to obtain some generic information about the runtime platform
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Prepare
|
define Build/Prepare
|
||||||
mkdir -p $(PKG_BUILD_DIR)
|
mkdir -p $(PKG_BUILD_DIR)
|
||||||
|
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Configure
|
define Build/Configure
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
|
CFLAGS="$(TARGET_CFLAGS)" \
|
||||||
|
CPPFLAGS="$(TARGET_CPPFLAGS)" \
|
||||||
|
$(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/lua-platform-info/install
|
define Package/lua-platform-info/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/lua
|
$(INSTALL_DIR) $(1)/usr/lib/lua
|
||||||
$(INSTALL_DATA) ./files/$(BOARD)$(if $(SUBTARGET),/$(SUBTARGET))/platform_info.lua $(1)/usr/lib/lua/
|
$(CP) $(PKG_BUILD_DIR)/platform_info.so $(1)/usr/lib/lua/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,lua-platform-info))
|
$(eval $(call BuildPackage,lua-platform-info))
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
local function read_line(file)
|
|
||||||
local f = io.open(file)
|
|
||||||
local ret = f:read('*line')
|
|
||||||
f:close()
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
local board_name = read_line('/tmp/sysinfo/board_name')
|
|
||||||
local model = read_line('/tmp/sysinfo/model')
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'ar71xx'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'generic'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return board_name
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', ''))
|
|
||||||
end
|
|
|
@ -1,37 +0,0 @@
|
||||||
local function read_line(file)
|
|
||||||
local f = io.open(file)
|
|
||||||
local ret = f:read('*line')
|
|
||||||
f:close()
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
local board_name = read_line('/tmp/sysinfo/board_name')
|
|
||||||
local model = read_line('/tmp/sysinfo/model')
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'ar71xx'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'nand'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return board_name
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', ''))
|
|
||||||
end
|
|
|
@ -1,37 +0,0 @@
|
||||||
local function read_line(file)
|
|
||||||
local f = io.open(file)
|
|
||||||
local ret = f:read('*line')
|
|
||||||
f:close()
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
local board_name = read_line('/tmp/sysinfo/board_name')
|
|
||||||
local model = read_line('/tmp/sysinfo/model')
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'brcm2708'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'bcm2708'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return board_name
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', ''))
|
|
||||||
end
|
|
|
@ -1,37 +0,0 @@
|
||||||
local function read_line(file)
|
|
||||||
local f = io.open(file)
|
|
||||||
local ret = f:read('*line')
|
|
||||||
f:close()
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
local board_name = read_line('/tmp/sysinfo/board_name')
|
|
||||||
local model = read_line('/tmp/sysinfo/model')
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'brcm2708'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'bcm2709'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return board_name
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', ''))
|
|
||||||
end
|
|
|
@ -1,37 +0,0 @@
|
||||||
local function read_line(file)
|
|
||||||
local f = io.open(file)
|
|
||||||
local ret = f:read('*line')
|
|
||||||
f:close()
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
local board_name = read_line('/tmp/sysinfo/board_name')
|
|
||||||
local model = read_line('/tmp/sysinfo/model')
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'mpc85xx'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'generic'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return board_name
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', ''))
|
|
||||||
end
|
|
|
@ -1,32 +0,0 @@
|
||||||
local f = io.popen('. /lib/functions.sh; . /lib/ramips.sh; ramips_board_detect; echo "$RAMIPS_BOARD_NAME"; echo "$RAMIPS_MODEL"')
|
|
||||||
local board_name, model = f:read("*a"):match('([^\n]+)\n([^\n]+)')
|
|
||||||
f:close()
|
|
||||||
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'ramips'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'rt305x'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return board_name
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return (model:lower():gsub('[^%w]+', '-'):gsub('%-+$', ''))
|
|
||||||
end
|
|
|
@ -1,37 +0,0 @@
|
||||||
local function read_line(file)
|
|
||||||
local f = io.open(file)
|
|
||||||
local ret = f:read('*line')
|
|
||||||
f:close()
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
local board_name = read_line('/tmp/sysinfo/board_name')
|
|
||||||
local model = read_line('/tmp/sysinfo/model')
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'sunxi'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return board_name
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', ''))
|
|
||||||
end
|
|
|
@ -1,36 +0,0 @@
|
||||||
local model
|
|
||||||
|
|
||||||
for line in io.lines('/proc/cpuinfo') do
|
|
||||||
model = line:match('^model name%s*:%s*(.+)$')
|
|
||||||
if model then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'x86'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return '64'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return 'x86-64'
|
|
||||||
end
|
|
|
@ -1,36 +0,0 @@
|
||||||
local model
|
|
||||||
|
|
||||||
for line in io.lines('/proc/cpuinfo') do
|
|
||||||
model = line:match('^model name%s*:%s*(.+)$')
|
|
||||||
if model then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'x86'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'generic'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return 'x86-generic'
|
|
||||||
end
|
|
|
@ -1,37 +0,0 @@
|
||||||
local model
|
|
||||||
|
|
||||||
for line in io.lines('/proc/cpuinfo') do
|
|
||||||
model = line:match('^model name%s*:%s*(.+)$')
|
|
||||||
if model then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'x86'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'kvm_guest'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return 'x86-kvm'
|
|
||||||
end
|
|
|
@ -1,36 +0,0 @@
|
||||||
local model
|
|
||||||
|
|
||||||
for line in io.lines('/proc/cpuinfo') do
|
|
||||||
model = line:match('^model name%s*:%s*(.+)$')
|
|
||||||
if model then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
module 'platform_info'
|
|
||||||
|
|
||||||
-- The OpenWrt target
|
|
||||||
function get_target()
|
|
||||||
return 'x86'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The OpenWrt subtarget or nil
|
|
||||||
function get_subtarget()
|
|
||||||
return 'xen_domu'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The board name
|
|
||||||
function get_board_name()
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The model name
|
|
||||||
function get_model()
|
|
||||||
return model
|
|
||||||
end
|
|
||||||
|
|
||||||
-- The image name for sysupgrades
|
|
||||||
function get_image_name()
|
|
||||||
return 'x86-xen'
|
|
||||||
end
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
all: platform_info.so
|
||||||
|
|
||||||
|
CFLAGS += -Wall
|
||||||
|
|
||||||
|
platform_info.so: platform_info.c
|
||||||
|
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared -fPIC -o $@ $^ $(LDLIBS) -lplatforminfo
|
|
@ -0,0 +1,77 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2015, Matthias Schiffer <mschiffer@universe-factory.net>
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <libplatforminfo.h>
|
||||||
|
|
||||||
|
#include <lua.h>
|
||||||
|
#include <lauxlib.h>
|
||||||
|
#include <lualib.h>
|
||||||
|
|
||||||
|
|
||||||
|
static int push_string(lua_State *L, const char *value) {
|
||||||
|
if (value)
|
||||||
|
lua_pushstring(L, value);
|
||||||
|
else
|
||||||
|
lua_pushnil(L);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int get_target(lua_State *L) {
|
||||||
|
return push_string(L, platforminfo_get_target());
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_subtarget(lua_State *L) {
|
||||||
|
return push_string(L, platforminfo_get_subtarget());
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_board_name(lua_State *L) {
|
||||||
|
return push_string(L, platforminfo_get_board_name());
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_model(lua_State *L) {
|
||||||
|
return push_string(L, platforminfo_get_model());
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_image_name(lua_State *L) {
|
||||||
|
return push_string(L, platforminfo_get_image_name());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static const luaL_reg R[] = {
|
||||||
|
{"get_target", get_target},
|
||||||
|
{"get_subtarget", get_subtarget},
|
||||||
|
{"get_board_name", get_board_name},
|
||||||
|
{"get_model", get_model},
|
||||||
|
{"get_image_name", get_image_name},
|
||||||
|
{NULL, NULL },
|
||||||
|
};
|
||||||
|
|
||||||
|
LUALIB_API int luaopen_platform_info(lua_State *L) {
|
||||||
|
luaL_register(L, "platform_info", R);
|
||||||
|
return 1;
|
||||||
|
}
|
Loading…
Reference in New Issue