File functions.lua of Package tree-sitter

--[[
   SPDX-License-Identifier: GPL-2.0
   SPDX-FileCopyrightText: 2024 Björn Bidar

   partly based of functions.lua from python-rpm-macros
--]]

-- declare common functions
function string.startswith(str, prefix)
   return str:sub(1, prefix:len()) == prefix
end

function string.endswith(str, suffix)
   return str:sub(-suffix:len()) == suffix
end

function string.dirname(str)
   if str:match("(.*)/") == "" then
      return nil
   else
      return str:match("(.*)/")
   end
end

function string.basename(str)
   while true do
      local idx = str:find("/")
      if not idx then return str end
      str = str:sub(idx + 1)
   end
end

function string.split(str, sep)
   if sep == nil then
      sep = '%s'
   end

   local res = {}
   local func = function(w)
      table.insert(res, w)
   end

   string.gsub(str, '[^'..sep..']+', func)
   return res
end

function arg_compat()
   --[[
      Compat macro as workaround for older rpm not having function
      arguments available as table arg(uments)
   --]]
   local arg_count = rpm.expand("%#")
   local arg = {}

   for arg_num = 1,arg_count do
      arg[arg_num] = rpm.expand(("%" .. arg_num))
   end

   return arg
end
openSUSE Build Service is sponsored by