diff --git a/package/gluon.mk b/package/gluon.mk
index 94170305341a178dfd371c409b0795564b7484d8..0d005e13464431e1b769ce8b592d8c5f54c7fdf6 100644
--- a/package/gluon.mk
+++ b/package/gluon.mk
@@ -11,13 +11,8 @@ shell-verbatim = $(call shell-unescape,$(call shell-escape,$(1)))
 
 
 define GluonCheckSite
-[ -z "$$IPKG_INSTROOT" ] || "${TOPDIR}/staging_dir/hostpkg/bin/lua" -e 'dofile()' <<'END__GLUON__CHECK__SITE'
-local f = assert(io.open(os.getenv('IPKG_INSTROOT') .. '/lib/gluon/site.json'))
-local site_json = f:read('*a')
-f:close()
-
-site = require('cjson').decode(site_json)
-$(call shell-verbatim,cat '$(TOPDIR)/../scripts/check_site_lib.lua' '$(1)')
+[ -z "$$IPKG_INSTROOT" ] || "${TOPDIR}/staging_dir/hostpkg/bin/lua" "${TOPDIR}/../scripts/check_site.lua" <<'END__GLUON__CHECK__SITE'
+$(call shell-verbatim,cat '$(1)')
 END__GLUON__CHECK__SITE
 endef
 
diff --git a/scripts/check_site_lib.lua b/scripts/check_site.lua
similarity index 92%
rename from scripts/check_site_lib.lua
rename to scripts/check_site.lua
index c5296f93061a377786be430e329050519d1456e7..3f3ed546eb2c95147f9d7f0056bb62cb9cb46708 100644
--- a/scripts/check_site_lib.lua
+++ b/scripts/check_site.lua
@@ -1,3 +1,15 @@
+local cjson = require 'cjson'
+
+local function load_json(filename)
+	local f = assert(io.open(filename))
+	local json = cjson.decode(f:read('*a'))
+	f:close()
+	return json
+end
+
+local site = load_json(os.getenv('IPKG_INSTROOT') .. '/lib/gluon/site.json')
+
+
 function in_site(var)
 	return var
 end
@@ -170,3 +182,6 @@ end
 function need_array_of(path, array, required)
 	return need_array(path, function(e) need_one_of(e, array) end, required)
 end
+
+
+dofile()