From 0df815e307216175599cfb1a44842266ba752beb Mon Sep 17 00:00:00 2001 From: V1K1NGbg Date: Thu, 22 Aug 2024 17:48:56 -0300 Subject: Teal: convert luarocks.repo_writer --- src/luarocks/repo_writer.tl | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/luarocks/repo_writer.tl (limited to 'src') diff --git a/src/luarocks/repo_writer.tl b/src/luarocks/repo_writer.tl new file mode 100644 index 00000000..22fbbfce --- /dev/null +++ b/src/luarocks/repo_writer.tl @@ -0,0 +1,53 @@ +local record repo_writer +end + +local fs = require("luarocks.fs") +local path = require("luarocks.path") +local repos = require("luarocks.repos") +local writer = require("luarocks.manif.writer") + +function repo_writer.deploy_files(name: string, version: string, wrap_bin_scripts: boolean, deps_mode: string, namespace: string): boolean, string + local ok, err: boolean, string + + if not fs.exists(path.rock_manifest_file(name, version)) then + ok, err = writer.make_rock_manifest(name, version) + if err then + return nil, err + end + end + + if namespace then + ok, err = writer.make_namespace_file(name, version, namespace) + if not ok then + return nil, err + end + end + + ok, err = repos.deploy_local_files(name, version, wrap_bin_scripts, deps_mode) + if not ok then + return nil, err + end + + ok, err = writer.add_to_manifest(name, version, nil, deps_mode) + return ok, err +end + +function repo_writer.delete_version(name: string, version: string, deps_mode: string, quick?: boolean): boolean, string + local ok, err, op = repos.delete_local_version(name, version, deps_mode, quick) + + if op == "remove" then + local rok, rerr = writer.remove_from_manifest(name, version, nil, deps_mode) + if ok and not rok then + ok, err = rok, rerr + end + end + + return ok, err +end + +function repo_writer.refresh_manifest(rocks_dir: string): boolean, string + return writer.make_manifest(rocks_dir, "one") +end + +return repo_writer + -- cgit v1.2.3-55-g6feb