Lines Matching full:local

7 local unistd = require("posix.unistd")
8 local sys_stat = require("posix.sys.stat")
9 local lfs = require("lfs")
11 local function getlocalbase()
12 local f = io.popen("sysctl -in user.localbase 2> /dev/null")
13 local localbase = f:read("*l")
17 localbase = "/usr/local"
22 local function decode_base64(input)
23 local b = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
26 local result = {}
27 local bits = ''
31 local x = input:sub(i, i)
35 local f = b:find(x) - 1
42 local byte = bits:sub(i, i + 7)
44 local c = 0
55 local function warnmsg(str, prepend)
59 local tag = ""
66 local function errmsg(str, prepend)
71 local function chmod(path, mode)
73 local _, err, msg = sys_stat.chmod(path, mode)
79 local function chown(path, owner, group)
80 local _, err, msg = unistd.chown(path, owner, group)
86 local function dirname(oldpath)
90 local path = oldpath:gsub("[^/]+/*$", "")
97 local function mkdir_p(path)
101 local r, err = mkdir_p(dirname(path))
108 local function sethostname(hostname)
112 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
116 local hostnamepath = root .. "/etc/rc.conf.d/hostname"
119 local f, err = io.open(hostnamepath, "w")
128 local function splitlist(list)
129 local ret = {}
142 local function splitlines(s)
143 local ret = {}
152 local function getgroups()
153 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
154 local cmd = "pw "
159 local f = io.popen(cmd .. "groupshow -a 2> /dev/null | cut -d: -f1")
160 local groups = f:read("*a")
166 local function checkgroup(group)
167 local groups = getgroups()
178 local function purge_group(groups)
179 local ret = {}
192 local function adduser(pwd)
197 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
198 local cmd = "pw "
202 local f = io.popen(cmd .. " usershow " .. pwd.name .. " -7 2> /dev/null")
203 local pwdstr = f:read("*a")
214 local extraargs = ""
216 local list = splitlist(pwd.groups)
237 local precmd = ""
238 local postcmd = ""
239 local input = nil
259 local r = f:close(cmd)
276 local function addgroup(grp)
281 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
282 local cmd = "pw "
286 local f = io.popen(cmd .. " groupshow " .. grp.name .. " 2> /dev/null")
287 local grpstr = f:read("*a")
292 local extraargs = ""
294 local list = splitlist(grp.members)
302 local r = os.execute(cmd)
311 local function addsshkey(homedir, key)
312 local chownak = false
313 local chowndotssh = false
314 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
318 local ak_path = homedir .. "/.ssh/authorized_keys"
319 local dotssh_path = homedir .. "/.ssh"
320 local dirattrs = lfs.attributes(ak_path)
331 local f = io.open(ak_path, "a")
348 local function adddoas(pwd)
349 local chmodetcdir = false
350 local chmoddoasconf = false
351 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
352 local localbase = getlocalbase()
353 local etcdir = localbase .. "/etc"
357 local doasconf = etcdir .. "/doas.conf"
358 local doasconf_attr = lfs.attributes(doasconf)
361 local dirattrs = lfs.attributes(etcdir)
363 local r, err = mkdir_p(etcdir)
370 local f = io.open(doasconf, "a")
376 local rule = pwd.doas
381 local rule = str
395 local function addsudo(pwd)
396 local chmodsudoersd = false
397 local chmodsudoers = false
398 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
399 local localbase = getlocalbase()
400 local sudoers_dir = localbase .. "/etc/sudoers.d"
404 local sudoers = sudoers_dir .. "/90-nuageinit-users"
405 local sudoers_attr = lfs.attributes(sudoers)
408 local dirattrs = lfs.attributes(sudoers_dir)
410 local r, err = mkdir_p(sudoers_dir)
417 local f = io.open(sudoers, "a")
438 local function update_sshd_config(key, value)
439 local sshd_config = "/etc/ssh/sshd_config"
440 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
444 local f = assert(io.open(sshd_config, "r+"))
445 local tgt = assert(io.open(sshd_config .. ".nuageinit", "w"))
446 local found = false
447 local pattern = "^%s*"..key:lower().."%s+(%w+)%s*#?.*$"
449 local line = f:read()
451 local _, _, val = line:lower():find(pattern)
471 local function exec_change_password(user, password, type, expire)
472 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
473 local cmd = "pw "
477 local postcmd = " -H 0"
478 local input = password
493 local f = io.popen(cmd .. " >/dev/null", "w")
498 local r = f:close(cmd)
505 local function change_password_from_line(line, expire)
506 local user, password = line:match("%s*(%w+):(%S+)%s*")
507 local type = nil
521 local function chpasswd(obj)
526 local expire = false
571 local function settimezone(timezone)
575 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
580 local f, _, rc = os.execute("tzsetup -s -C " .. root .. " " .. timezone)
588 local function pkg_bootstrap()
599 local function install_package(package)
603 local install_cmd = "pkg install -y " .. package
604 local test_cmd = "pkg info -q " .. package
616 local function run_pkg_cmd(subcmd)
617 local cmd = "env ASSUME_ALWAYS_YES=yes pkg " .. subcmd
624 local function update_packages()
628 local function upgrade_packages()
632 local function addfile(file, defer)
645 local content = nil
657 local mode = "w"
662 local root = os.getenv("NUAGE_FAKE_ROOTDIR")
666 local filepath = root .. file.path
667 local f = assert(io.open(filepath, mode))
676 local owner, group = string.match(file.owner, "([^:]+):([^:]+)")
685 local n = {