寻观「标准库」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「子进程」之书。
寻观「标准库」之「操作系统」之「环境变量」之书。
寻观「标准库」之「操作系统」之「进程」之书。
寻观「构建基础」之「包定位」之书。
寻观「包配置」之「配置解析」之书。
寻观「包配置」之「配置数据」之书。
寻观「包配置」之「包依赖」之书。
寻观「癸象工具」之「癸象解析」之书。
寻观「癸象工具」之「癸象数据结构」之书。
寻观「批量发布」之「发布工具」之书。
寻观「批量发布」之「发行材料」之书。

「帮助」者『yy批量发布：扫描当前 Git 工作目录中的所有 。包。豫
默认只列出计划，不构建、不联网、不上传。
  --打包                 生成源码、标准文档、独立构建包及当前平台运行包
  --发布                 生成或复用 ZIP，然后上传；必须指定 --所有者
  --重新打包             重新生成当前版本 ZIP，成档后备份旧 ZIP；上传新增修订
  --所有者 名称          只选择该所有者；服务器最终核对令牌身份
  --包 名称              只处理指定包（默认全部）
  --输出 目录            默认 .yybuild/发布；保留 ZIP 与逐包结果
  --工具链 目录          默认本工具所在目录，需 yy4_bs.wasm、yy豫构.wasm 与 Node 宿主
  --服务 HTTPS地址       默认 https://packages.yuyan-lang.org
  -h, --help             显示帮助

示例：
  ./yy批量发布
  ./yy批量发布 --打包 --所有者 豫言
  ./yy批量发布 --发布 --所有者 豫言

发布读取 YY_UPLOAD_TOKEN；请在 shell 安全设置，不要把令牌写进参数。
失败包不阻止后续包；有任一失败时退出码为 1。再次运行复用已有 ZIP，
默认不重建已有 ZIP；加 --重新打包 后按工作树生成，服务器为不同 ZIP 分配同版本的新上传序数。
需 Git、curl、zip、tar、clang 和包声明的 C 系统库。
当前仅支持 macOS/Linux；独立构建与运行材料只针对当前平台。
』也。

「选项」即
  「字符串」
  合「字符串」
  合「字符串」
  合「字符串」
  合「字符串」
  合「字符串」
也。

「读选项」乃化（「列」于「字符串」）而化「选项」而「选项」也。
「读选项」者会「参数」而会「值」而
  鉴「参数」而
    有「罄」则「值」
    或有（「缀」于『--重新打包』于「尾」）则
      「读选项」于「尾」于「值」
    或有（「缀」于『--打包』于「尾」）则
      「读选项」
        于「尾」
        于（『打包』与（「值」中「一」）与（「值」中「二」）与（「值」中「三」）与（「值」中「四」）与（「值」中「五」））
    或有（「缀」于『--发布』于「尾」）则
      「读选项」
        于「尾」
        于（『发布』与（「值」中「一」）与（「值」中「二」）与（「值」中「三」）与（「值」中「四」）与（「值」中「五」））
    或有（「缀」于『--所有者』于（「缀」于「名」于「尾」））则
      「读选项」
        于「尾」
        于（（「值」中「零」）与「名」与（「值」中「二」）与（「值」中「三」）与（「值」中「四」）与（「值」中「五」））
    或有（「缀」于『--包』于（「缀」于「名」于「尾」））则
      「读选项」
        于「尾」
        于（（「值」中「零」）与（「值」中「一」）与「名」与（「值」中「三」）与（「值」中「四」）与（「值」中「五」））
    或有（「缀」于『--输出』于（「缀」于「名」于「尾」））则
      「读选项」
        于「尾」
        于（（「值」中「零」）与（「值」中「一」）与（「值」中「二」）与「名」与（「值」中「四」）与（「值」中「五」））
    或有（「缀」于『--工具链』于（「缀」于「名」于「尾」））则
      「读选项」
        于「尾」
        于（（「值」中「零」）与（「值」中「一」）与（「值」中「二」）与（「值」中「三」）与「名」与（「值」中「五」））
    或有（「缀」于『--服务』于（「缀」于「名」于「尾」））则
      「读选项」
        于「尾」
        于（（「值」中「零」）与（「值」中「一」）与（「值」中「二」）与（「值」中「三」）与（「值」中「四」）与「名」）
    或有「其他」则
      「发生事故」授以「选项」于『未知选项或缺少参数，请运行 -h』
也。

「绝对径」乃化「字符串」而「字符串」也。
「绝对径」者会「径」而
  若「路径名是绝对路径」于「径」则
    「径」
  否则
    「路径合并」于（「获取当前路径」于「元」）于「径」
也。

「上传归档」乃化「字符串」而化「字符串」而化「字符串」而「有」也。
「上传归档」者会「服务」而会「令牌」而会「归档」而
  虑「凭据」者
    「求输出」于『mktemp』于（「列」【『/tmp/yy上传凭据.XXXXXX』】）而
    虑「无」者
      「写文件」于「凭据」于（『header = "Authorization: Bearer 』附「令牌」附『"
』）而
  虑「结果」者
    「尝试运行」授以「字符串」
    于（会「无」而
      「求输出」
        于『env』
        于（「列」【
          『-u』，
          『YY_UPLOAD_TOKEN』，
          『curl』，
          『-q』，
          『--config』，
          「凭据」，
          『--silent』，
          『--show-error』，
          『--fail-with-body』，
          『--connect-timeout』，
          『30』，
          『--max-time』，
          『1800』，
          『--header』，
          『Content-Type: application/zip』，
          『--data-binary』，
          （『@』附「归档」），
          （「服务」附『/api/releases/zip』）
        】））
        于（会「错」而（「删文件」于「凭据」；
            （「发生事故」授以「字符串」于「错」）））而
            虑「无」者「删文件」于「凭据」而
            虑「无」者「写文件」于（「归档」附『.回应.json』）于「结果」而
            鉴「癸象解析」于「结果」而
              有（「癸象对象」于「字段」）则
                虑「完成」者
                  「滤」授以（「字符串」合「癸象」）
                  于（会「项」而「串相等」于（「项」中「零」）于『incomplete』）
                  于「字段」而
                鉴「完成」而
                  有（「列」【（「忽略」与（「癸象爻」于「未完」））】）则
                    若「未完」则
                      「发生事故」授以「有」
                      于『版本已建立，但材料尚未全部展开；重传同一 ZIP 可补齐』
                    否则
                      「打印行」于（『发布成功：』附「结果」）
                  或有「其他」则
                    「发生事故」授以「有」
                    于『版本已建立，但材料尚未全部展开；重传同一 ZIP 可补齐』
                  或有「其他」则
                    「发生事故」授以「有」于『服务未返回有效发布结果』
也。

「执行批次」乃化「选项」而「有」也。
「执行批次」者会「选」而
  虑「根」者「真实路径」于（「获取当前路径」于「元」）而
  虑「索引」者「发现具名包」于「根」于『』而
  虑「包们」者
    「滤」授以「包记录」
    于（会「记」而
      「且」
        于（「或者」于（「串相等」于（「选」中「一」）于『』）于（「串相等」于（「选」中「一」）于（「记」中「零」）））
        于（「或者」于（「串相等」于（「选」中「二」）于『』）于（「串相等」于（「选」中「二」）于（「记」中「一」））））
        于「索引」而
        虑「无」者
          「须」
            于（「非」于（「等于」于（「长度」授以「包记录」于「包们」）于「零」））
            于『没有匹配的包』而
            虑「无」者
              「态射」授以「包记录」授以「有」
              于「包们」
              于（会「记」而「打印行」
                于（（「包全名」于「记」）附『  版本：』附（「包版本」于（「解析包文件」于（「记」中「二」）））））而
            若「串相等」于（「选」中「零」）于『计划』则
              「打印行」于『以上仅为计划；加 --打包 或 --发布 执行。』
            否则
              虑「工具链」者
                「真实路径」于（「绝对径」于（「选」中「四」））
              而
              虑「系统」者「求输出」于『uname』于（「列」【『-s』】）
              而
              虑「架构」者「求输出」于『uname』于（「列」【『-m』】）
              而
              虑「无」者
                「须」
                  于（「包内含名」于（「列」【『Darwin』，『Linux』】）于「系统」）
                  于『当前只支持 macOS/Linux』
              而
              虑「令牌」者
                （「获取环境变量」于『YY_UPLOAD_TOKEN』）中「一」
              而
              虑「无」者
                若「串相等」于（「选」中「零」）于『发布』则
                  「须」
                    于（「且」
                      于（「非」于（「串相等」于（「选」中「一」）于『』））
                      于（「且」
                        于（「等于」于（「字节长度」于「令牌」）于「六四」）
                        于（「全部符合」授以「字符串」
                          于（会「字」而「是子字符串吗」于「字」于『0123456789abcdef』）
                          于（「获取字符」于「令牌」））））
                          于『发布需要 --所有者 和有效的 YY_UPLOAD_TOKEN』
                否则
                  「元」
              而
              虑「服务」者「选」中「五」
              而
              虑「无」者
                「须」
                  于（「或者」
                    于（「串开头是它吗」于『https://』于「服务」）
                    于（「串开头是它吗」于『http://127.0.0.1:』于「服务」））
                    于『服务必须为 HTTPS（测试仅允许 127.0.0.1）』
              而
              虑「输出」者「绝对径」于（「选」中「三」）
              而
              虑「无」者「建目录」于「输出」
              而
              虑「输出」者「真实路径」于「输出」
              而
              虑「无」者
                「须」
                  于（「或者」
                    于（「非」于（「路径位于目录」于「输出」于「根」））
                    于（「路径位于目录」于「输出」于（「路径合并」于「根」于『.yybuild』）））
                    于『输出须在扫描目录之外或 .yybuild 内，避免将发行材料再次收进源码』
              而
              虑「无」者
                「态射」授以「字符串」授以「有」
                于（「列」【『文档网站生成器』，『源码树浏览器』】）
                于（会「名」
  而
  若「路径可执行」于（「路径合并」于「工具链」于（『yy』附「名」））则
    「元」
  否则
    虑「无」者「换目录」于「工具链」
    而
    虑「无」者
      「尝试运行」授以「有」
      于（会「无」而「行步骤」
        于『./yy豫构.wasm』
        于（「列」【『构建』，「名」，『--编译器』，『./yy4_bs.wasm』，『--输出』，（『yy』附「名」）】））
        于（会「错」而（「换目录」于「根」；
            （「发生事故」授以「有」于「错」）））
    而
    「换目录」于「根」）
              而
              虑「锁」者「路径合并」于「输出」于『.发布锁』
              而
              虑「无」者
                「须」
                  于（「运行」于『mkdir』于（「列」【「锁」】））
                  于『输出目录正被占用；若上次异常退出，请确认无运行任务后移除 .发布锁』
              而
              虑「状态们」者
                「态射」授以「包记录」授以「爻」
                于「包们」
                于（会「记」而
                  「尝试运行」授以「爻」
                  于（会「无」
                    而
  虑「无」者「打印行」于（『处理：』附（「包全名」于「记」））而
  虑「档」者
    「制作归档」于「索引」于「记」于「工具链」于「输出」于「系统」于「架构」而
    虑「无」者
      若「串相等」于（「选」中「零」）于『发布』则
        「上传归档」于「服务」于「令牌」于「档」
      否则
        「打印行」于（『已打包：』附「档」）
    而
    「阳」）
    于（会「错」而（「打印行」
      于（『失败：』附（「包全名」于「记」）附『：』附「错」）；
      「阴」）））
              而
              虑「无」者「行步骤」于『rmdir』于（「列」【「锁」】）
              而
              虑「失败数」者
                「长度」授以「爻」于（「滤」授以「爻」于（会「值」而「非」于「值」）于「状态们」）
              而
              虑「无」者
                「打印行」于（『批次结束，总数：』附（「整数表示」于（「长度」授以「包记录」于「包们」））附『，失败：』
                  附（「整数表示」于「失败数」））
              而
              若「等于」于「失败数」于「零」则「元」否则「退出」于「一」
也。

虑「参数」者
  「获取参数」于「元」而
若「或者」于（「包内含名」于「参数」于『-h』）于（「包内含名」于「参数」于『--help』）则
  「打印行」于「帮助」
否则
  「执行批次」于（「读选项」
    于「参数」
    于（『计划』与『』与『』与『.yybuild/发布』与（「获取文件夹名」于（「真实路径」于（「获取程序名」于「元」）））
      与『https://packages.yuyan-lang.org』））。
