From 6cb1c960b0af2bc392952f82c0f46ba63c09b6c1 Mon Sep 17 00:00:00 2001 From: "Matthieu C." <886074+teto@users.noreply.github.com> Date: Mon, 8 Jul 2024 15:12:03 +0200 Subject: [PATCH] wip WIP jq '.plugins[] | select(.name == nvim-telescope/telescope-fzf-native.nvim)' plugins.json > ~/luarocks-tag-release/test.json --- bin/rockspec-generator-cli.lua | 23 ++++++++++ bin/rockspec-generator-json.lua | 69 +++++++++++++++++++++++++++++ lua/ltr/rockspec_generator.lua | 22 +++++++++ luarocks-tag-release-scm-1.rockspec | 1 + 4 files changed, 115 insertions(+) create mode 100644 bin/rockspec-generator-cli.lua create mode 100755 bin/rockspec-generator-json.lua create mode 100644 lua/ltr/rockspec_generator.lua diff --git a/bin/rockspec-generator-cli.lua b/bin/rockspec-generator-cli.lua new file mode 100644 index 0000000..3e91e48 --- /dev/null +++ b/bin/rockspec-generator-cli.lua @@ -0,0 +1,23 @@ +local json = require('dkjson') + +json.decode(github_event_data) + +package_name = arg[0] +dependencies = arg[1] +rockspect_template = arg[1] + +local rockspec = require('ltr.rockspec').generate(package_name, modrev, specrev, rockspec_template, { + ref_type = args.ref_type, + git_server_url = args.git_server_url, + github_repo = args.github_repo, + license = args.license, + git_ref = args.git_ref, + summary = args.summary, + detailed_description_lines = args.detailed_description_lines, + dependencies = args.dependencies, + test_dependencies = args.test_dependencies, + labels = args.labels, + copy_directories = args.copy_directories, + repo_name = args.repo_name, + github_event_tbl = github_event_tbl, +}) diff --git a/bin/rockspec-generator-json.lua b/bin/rockspec-generator-json.lua new file mode 100755 index 0000000..e6bd40a --- /dev/null +++ b/bin/rockspec-generator-json.lua @@ -0,0 +1,69 @@ +#!/usr/bin/env lua +local json = require('dkjson') + +local input = io.stdin:read('*all') +-- print('You entered: ' .. input) + +meta = json.decode(input) + +-- split after the +package_name = meta.shorthand +dependencies = meta.dependencies +license = meta.license +summary = meta.summary +-- server_url = +meta.repo_name = package_name +meta.github_repo = meta.name +meta.git_ref = 'main' -- TODO adjust +meta.detailed_description_lines = '' +meta.copy_directories = meta.extra_directories +meta.labels = { 'neovim' } +meta.test_dependencies = {} + +-- TODO split +-- meta.dependencies = meta.dependencies +meta.git_server_url = 'https://github.com' +-- meta["github_repo"] = "lol" +-- print(meta.github_repo) + +local result = {} +-- if dependencies is empty then we +-- for line in string.gmatch(meta.dependencies .. "\n", "(.-)\n") do +-- table.insert(result, line); +-- end + +meta.dependencies = result +-- print(meta.dependencies) + +local rockspec_template_file_path = './resources/rockspec.template' +-- rockspec_template_file_path +local rockspec_template_fd = + assert(io.open(rockspec_template_file_path, 'r'), 'Could not open ' .. rockspec_template_file_path) +local rockspec_template = rockspec_template_fd:read('*a') + +local specrev = 1 +local modrev = 1 +local rockspec = require('ltr.rockspec').generate( + package_name, + modrev, + specrev, + rockspec_template, + meta + -- { + -- -- ref_type = args.ref_type, + -- -- git_server_url = args.git_server_url, + -- -- github_repo = args.github_repo, + -- license = license, + -- -- git_ref = args.git_ref, + -- summary = summary, + -- -- detailed_description_lines = args.detailed_description_lines, + -- -- dependencies = args.dependencies, + -- -- test_dependencies = args.test_dependencies, + -- -- labels = args.labels, + -- -- copy_directories = args.copy_directories, + -- -- repo_name = args.repo_name, + -- github_event_tbl = meta, + -- } +) + +print(rockspec) diff --git a/lua/ltr/rockspec_generator.lua b/lua/ltr/rockspec_generator.lua new file mode 100644 index 0000000..2fd4e7c --- /dev/null +++ b/lua/ltr/rockspec_generator.lua @@ -0,0 +1,22 @@ +local M = {} + +function M.generate_rockspec() + local rockspec = rockspec_template + :gsub('$git_ref', meta.git_ref) + :gsub('$modrev', modrev) + :gsub('$specrev', specrev) + :gsub('$repo_url', repo_url) + :gsub('$archive_dir_suffix', archive_dir_suffix) + :gsub('$package', package_name) + :gsub('$summary', escape_quotes(meta.summary)) + :gsub('$detailed_description', mk_lua_multiline_str(meta.detailed_description_lines)) + :gsub('$dependencies', mk_lua_list_string(meta.dependencies)) + :gsub('$test_dependencies', mk_lua_list_string(meta.test_dependencies)) + :gsub('$labels', mk_lua_list_string(meta.labels)) + :gsub('$homepage', homepage) + :gsub('$license', license) + :gsub('$copy_directories', mk_lua_list_string(meta.copy_directories)) + :gsub('$repo_name', meta.repo_name) +end + +return M diff --git a/luarocks-tag-release-scm-1.rockspec b/luarocks-tag-release-scm-1.rockspec index fae82a1..27d27e1 100755 --- a/luarocks-tag-release-scm-1.rockspec +++ b/luarocks-tag-release-scm-1.rockspec @@ -11,6 +11,7 @@ description = { dependencies = { 'lua >= 5.1', + 'argparse', 'dkjson', 'luafilesystem', }