ACF 库

来自 Alpine Linux

ACF 库

由于使用了非常小的语言 lua,因此需要从头开始构建所有内容。这可能会导致一些困惑、担忧或只是感到不知所措。这是关于我们现在拥有的库和常用函数的文档。我们希望构建更多内容,并利用这些信息来激发关于 ACF 的灵感。

其中一些是 lua 库或为 ACF 编写的库。我们还将 lposix 库作为标准,其文档在此处 LPOSIX

通用库 (acf-lib)

apk.lua

加载/卸载 apk 软件包的函数

  • delete - 删除软件包
  • install - 安装软件包
  • version - 检查软件包的已安装版本

date.lua

日期和时间函数,与 os.time() 和 os.date() 一起使用

  • date_to_seconds - 接收日期表并将日期表转换为自 1970 年以来的秒数
  • seconds_to_date - 接收秒数值表并将秒数值表转换为按从小到大排序的日期
  • string_to_table
  • date_diff - 接收两个秒数值并返回差值
  • num_month_name - 月份数字到月份名称
  • num_month_name_abr - 月份数字到月份缩写
  • name_month_num - 月份名称到数字
  • abr_month_num - 月份缩写到数字
  • num_dow_name - 星期几数字到名称
  • num_dow_name_abr - 星期几数字到缩写
  • name_dow_num - 星期几全名到数字
  • abr_dow_num - 星期几缩写到数字
  • what_tz - 检查盒子设置的时区;/etc/TZ
  • change_tz - 更改时区
    • 此信息包含表格
      • 时区
      • 星期几
      • 月份

format.lua

用于格式化表格和字符串

  • dostounix - 将 DOS 行尾符转换为 Unix
  • escapemagiccharacters - 转义 Lua 魔术字符
  • escapespecialcharacters - 转义 shell 特殊字符
  • parse_lines - 去除空白行和注释行
  • parse_linesandwords - 删除空白和注释,并解析每行的单词
  • parse_configfile - 解析配置文件的名称/值对
  • search_replace - 遍历行表以搜索和替换
  • search_for_lines - 遍历文件或行表并返回匹配行的表
  • cap_begin_word - 将单词的首字母大写
  • string_to_table - 将分隔字符串转换为表格
  • expand_bash_syntax_vars - 接收字符串并使用 Lua 变量扩展任何 ${...} 结构
  • replace_line - 从字符串中删除指示的行并替换它
  • insert_line - 在字符串中指示的位置插入新行
  • get_line - 按编号返回指定的行
  • opts_to_table - 在选项字符串中搜索单独的选项并将它们放入表格中
  • table_to_opts - 遍历选项表并创建选项字符串
  • update_ini_file - 在特定的 ini 部分中设置值
  • parse_ini_file - 从 ini 文件读取值/多个值
  • get_ini_section - 从 ini 文件读取整个部分
  • set_ini_section - 在 ini 文件中设置整个部分
  • get_ini_entry - 从 ini 文件中获取条目值,考虑父部分和变量

fs.lua

用于各种文件系统特定功能

  • is_dir - 测试路径是否为目录
  • is_file - 测试路径是否为文件
  • is_link - 测试路径是否为链接
  • create_directory - 创建目录(如果目录不存在),包括父目录
  • remove_directory - 删除目录及其内容
  • create_file - 创建空白文件(并在必要时创建目录)
  • copy_properties - 将一个文件的权限和所有权复制到另一个文件
  • copy_file - 将文件复制到目录或新文件名(并在必要时创建目录)
  • move_file - 将文件移动到目录或新文件名(并在必要时创建目录)
  • read_file / read_file_as_array - 将文件读取为字符串/数组
  • write_file - 替换文件内容
  • write_line_file - 将行附加到文件
  • find_files_as_array - 返回 "where" 下与 "what"(Lua 模式)匹配的文件数组
  • find - 提供路径和搜索字符串,并迭代匹配的文件
  • stat - 几乎与 posix.stat 相同,但它以人类可读的方式写入输出

html.lua

用于生成 HTML 代码。

  • cookie.set - 创建 cookie
  • cookie.unset - 清除 cookie
  • html_escape - 转义 HTML 编码的字符串
  • entity - 输出标签,例如 h1、h2、p 等。
  • link - 创建链接标签
  • 表单设置函数 - 创建表单标签
    • form.text
    • form.longtext
    • form.password
    • form.hidden
    • form.submit
    • form.action
    • form.file
    • form.image
    • form.select
    • form.checkbox
    • form.start
    • form.stop

processinfo.lua

管理进程

  • package_version - 返回 apk 软件包的版本
  • process_autostart - 返回描述进程运行级别的字符串
  • read_initrunlevels - 返回所有运行级别中的所有进程
  • add_runlevels - 将进程添加到运行级别列表
  • delete_runlevels - 从运行级别列表中删除进程
  • daemoncontrol - 启动/停止/重启/... 进程(调用 /etc/init.d/service)
  • pidof - 查找正在运行的程序的进程 ID

validator.lua

这包含多个不同的函数,每个函数都将以自己的方式验证输入。

  • is_string - 测试变量是否为字符串类型
  • is_boolean - 测试变量是否为布尔类型
  • is_number - 测试变量是否为数字类型
  • is_ipv4 - 测试是否为有效的 ipv4 地址
  • is_partial_ipv4 - 测试是否为部分有效的 ipv4 地址
  • is_mac - 测试是否为有效的 mac 地址
  • is_integer - 测试字符串是否包含整数
  • is_integer_in_range - 测试字符串是否包含给定范围内的整数
  • is_port - 测试字符串是否包含 IP 端口范围内的整数
  • is_valid_filename - 测试字符串是否为有效的文件名,以及(可选)是否位于指定的路径中

ACF 特定库 (acf-core)

authenticator.lua

身份验证模块。此模块加载一个子身份验证器模块,并通过 auth 表公开其功能。

  • authenticate
  • get_userinfo
  • get_userinfo_roles
  • list_users
  • change_settings
  • new_settings
  • delete_user

authenticator-plaintext.lua

用于纯文本数据库的身份验证子模块

  • list_fields
  • read_field
  • delete_field
  • write_entry
  • read_entry
  • delete_entry

controllerfunctions.lua

控制器辅助函数

  • handle_clientdata
  • handle_form
  • handle_startstop

menubuilder.lua

由 nangel 为 ACF 编写

  • get_menuitems

modelfunctions.lua

  • getenabled
  • startstop_service
  • getstatus
  • getfiledetails
  • setfiledetails
  • validateselect
  • validatemulti
  • write_file_with_audit

roles.lua

  • list_controllers
  • get_controllers
  • get_controllers_func
  • get_controllers_view
  • list_default_roles
  • list_roles
  • list_all_roles
  • get_roles_perm
  • get_role_perm
  • delete_role
  • set_role_perm

session.lua

由 nangel 为 ACF 编写。

  • random_hash - 将从 /dev/urandom 创建类似 bash64 的哈希
  • hash_ip_addr - 创建哈希编码的 ip 地址
  • ip_addr_from_hash - 获取哈希编码的 ip 并给我 ip
  • serialize - 遍历表格或表格集合并序列化
  • save_session - 保存会话表
  • load_session - 加载保存的会话表
  • unlink_session - 删除保存的会话表
  • record_event - 记录无效的登录尝试
  • count_events - 检查是否存在过多的无效尝试
  • expired_events - 删除过期的无效尝试和保存的会话

viewfunctions.lua

displayinfo - 已过时 displaymanagement - 已过时

  • displayitem
  • displayformitem
  • displayform
  • displaycommandresults