diff options
author | William Wilgus <me.theuser@yahoo.com> | 2019-09-27 20:08:58 -0500 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2019-09-28 03:15:15 +0200 |
commit | 01cccaf2d27dcd92a7a6d4b7f5658e780a6da68c (patch) | |
tree | 85e766c94edfb2a055a78c7a2d6750a0d1b46be1 /apps/plugins/lua/include_lua | |
parent | 4fb783582fa6d961160fea940ad417d099ec0732 (diff) | |
download | rockbox-01cccaf2d27dcd92a7a6d4b7f5658e780a6da68c.tar.gz rockbox-01cccaf2d27dcd92a7a6d4b7f5658e780a6da68c.zip |
lua move strip_extension and create_numbered_filename out of main binary
rb.strip_extension and rb.create_numbered_filename
have been moved to include_lua/files.lua
to use simply add require('files') to your script
Change-Id: I95af7b312c8614cb10da4b71b22714b3e282e08a
Diffstat (limited to 'apps/plugins/lua/include_lua')
-rw-r--r-- | apps/plugins/lua/include_lua/files.lua | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/apps/plugins/lua/include_lua/files.lua b/apps/plugins/lua/include_lua/files.lua new file mode 100644 index 0000000000..ccb36c5157 --- /dev/null +++ b/apps/plugins/lua/include_lua/files.lua | |||
@@ -0,0 +1,42 @@ | |||
1 | rb = rb or {} | ||
2 | rb.create_numbered_filename = function (sPath, sPrefix, sSuffix, iNumLen, iNum) | ||
3 | iNum = iNum or -1 | ||
4 | local dir_iter, dir_data = luadir.dir(sPath) | ||
5 | local status = true | ||
6 | local name, isdir, num | ||
7 | local name_pat = sPrefix .. '(%d+)' .. sSuffix | ||
8 | local file_pat | ||
9 | local max_num = iNum < 0 and -1 or iNum -- Number specified | ||
10 | |||
11 | if max_num < 0 then | ||
12 | max_num = 0 -- automatic numbering | ||
13 | repeat | ||
14 | status, name, isdir = pcall(dir_iter, dir_data) | ||
15 | if status then | ||
16 | if name and not isdir then | ||
17 | num = string.match(name, name_pat) | ||
18 | if (not iNumLen) and num then -- try to match existing zero padding | ||
19 | local s, e = string.find(num, "^0+") | ||
20 | if s and e then iNumLen = (e - s) end | ||
21 | end | ||
22 | num = tonumber(num) | ||
23 | if num and (num > max_num) then | ||
24 | max_num = num | ||
25 | end | ||
26 | end | ||
27 | end | ||
28 | until not status | ||
29 | end | ||
30 | max_num = max_num + 1 | ||
31 | iNumLen = iNumLen or 0 | ||
32 | file_pat = "%s/%s%0" .. iNumLen .. "d%s" | ||
33 | return string.format(file_pat, sPath, sPrefix, max_num, sSuffix), max_num | ||
34 | end | ||
35 | |||
36 | rb.strip_extension = function (sFileName) | ||
37 | sFileName = sFileName or "" | ||
38 | local ext = rb.strrchr(sFileName, string.byte(".")); | ||
39 | local len = string.len(ext or "") | ||
40 | if len > 0 then sFileName = string.sub(sFileName, 1, -(len + 1)) end | ||
41 | return sFileName | ||
42 | end | ||