入口。豫
yuyan · 295 行 · 15684 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295
寻观「标准库」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「子进程」之书。
寻观「标准库」之「操作系统」之「环境变量」之书。
寻观「标准库」之「操作系统」之「进程」之书。
寻观「构建基础」之「包定位」之书。
寻观「包配置」之「配置解析」之书。
寻观「包配置」之「配置数据」之书。
寻观「包配置」之「包依赖」之书。
寻观「癸象工具」之「癸象解析」之书。
寻观「癸象工具」之「癸象数据结构」之书。
寻观「批量发布」之「发布工具」之书。
寻观「批量发布」之「发行材料」之书。
「帮助」者『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』))。