Lines Matching full:local

6 local unistd = require("posix.unistd")
7 local sys_stat = require("posix.sys.stat")
8 local lfs = require("lfs")
10 local function decode_base64(input)
11 local b = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
14 local result = {}
15 local bits = ''
19 local x = input:sub(i, i)
23 local f = b:find(x) - 1
30 local byte = bits:sub(i, i + 7)
32 local c = 0
43 local function warnmsg(str, prepend)
47 local tag = ""
54 local function errmsg(str, prepend)
59 local function chmod(path, mode)
60 local mode = tonumber(mode, 8)
61 local _, err, msg = sys_stat.chmod(path, mode)
67 local function chown(path, owner, group)
68 local _, err, msg = unistd.chown(path, owner, group)
74 local function dirname(oldpath)
78 local path = oldpath:gsub("[^/]+/*$", "")
85 local function mkdir_p(path)
89 local r, err = mkdir_p(dirname(path))
96 local function sethostname(hostname)
100 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
104 local hostnamepath = root .. "/etc/rc.conf.d/hostname"
107 local f, err = io.open(hostnamepath, "w")
116 local function splitlist(list)
117 local ret = {}
130 local function adduser(pwd)
135 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
136 local cmd = "pw "
140 local f = io.popen(cmd .. " usershow " .. pwd.name .. " -7 2> /dev/null")
141 local pwdstr = f:read("*a")
152 local extraargs = ""
154 local list = splitlist(pwd.groups)
168 local precmd = ""
169 local postcmd = ""
170 local input = nil
190 local r = f:close(cmd)
207 local function addgroup(grp)
212 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
213 local cmd = "pw "
217 local f = io.popen(cmd .. " groupshow " .. grp.name .. " 2> /dev/null")
218 local grpstr = f:read("*a")
223 local extraargs = ""
225 local list = splitlist(grp.members)
233 local r = os.execute(cmd)
242 local function addsshkey(homedir, key)
243 local chownak = false
244 local chowndotssh = false
245 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
249 local ak_path = homedir .. "/.ssh/authorized_keys"
250 local dotssh_path = homedir .. "/.ssh"
251 local dirattrs = lfs.attributes(ak_path)
262 local f = io.open(ak_path, "a")
279 local function addsudo(pwd)
280 local chmodsudoersd = false
281 local chmodsudoers = false
282 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
283 local sudoers_dir = "/usr/local/etc/sudoers.d"
287 local sudoers = sudoers_dir .. "/90-nuageinit-users"
288 local sudoers_attr = lfs.attributes(sudoers)
291 local dirattrs = lfs.attributes(sudoers_dir)
293 local r, err = mkdir_p(sudoers_dir)
300 local f = io.open(sudoers, "a")
321 local function update_sshd_config(key, value)
322 local sshd_config = "/etc/ssh/sshd_config"
323 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
327 local f = assert(io.open(sshd_config, "r+"))
328 local tgt = assert(io.open(sshd_config .. ".nuageinit", "w"))
329 local found = false
330 local pattern = "^%s*"..key:lower().."%s+(%w+)%s*#?.*$"
332 local line = f:read()
334 local _, _, val = line:lower():find(pattern)
354 local function exec_change_password(user, password, type, expire)
355 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
356 local cmd = "pw "
360 local postcmd = " -H 0"
361 local input = password
376 local f = io.popen(cmd .. " >/dev/null", "w")
381 local r = f:close(cmd)
388 local function change_password_from_line(line, expire)
389 local user, password = line:match("%s*(%w+):(%S+)%s*")
390 local type = nil
404 local function chpasswd(obj)
409 local expire = false
454 local function pkg_bootstrap()
465 local function install_package(package)
469 local install_cmd = "pkg install -y " .. package
470 local test_cmd = "pkg info -q " .. package
482 local function run_pkg_cmd(subcmd)
483 local cmd = "pkg " .. subcmd .. " -y"
490 local function update_packages()
494 local function upgrade_packages()
498 local function addfile(file, defer)
511 local content = nil
523 local mode = "w"
528 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
532 local filepath = root .. file.path
533 local f = assert(io.open(filepath, mode))
542 local owner, group = string.match(file.owner, "([^:]+):([^:]+)")
551 local n = {