From 00cd7e605400a459822294f3ceff5194cf9b56d5 Mon Sep 17 00:00:00 2001 From: ruki Date: Mon, 4 May 2015 22:05:39 +0800 Subject: add some path and string interfaces --- xmake/scripts/base/path.lua | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 xmake/scripts/base/path.lua (limited to 'xmake/scripts/base/path.lua') diff --git a/xmake/scripts/base/path.lua b/xmake/scripts/base/path.lua new file mode 100644 index 000000000..eb35283b2 --- /dev/null +++ b/xmake/scripts/base/path.lua @@ -0,0 +1,72 @@ +--!The Automatic Cross-platform Build Tool +-- +-- XMake is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Lesser General Public License as published by +-- the Free Software Foundation; either version 2.1 of the License, or +-- (at your option) any later version. +-- +-- XMake is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public License +-- along with XMake; +-- If not, see http://www.gnu.org/licenses/ +-- +-- Copyright (C) 2009 - 2015, ruki All rights reserved. +-- +-- @author ruki +-- @file path.lua +-- + +-- define module: path +local path = path or {} + +-- load modules +local string = require("base/string") + +-- get the directory of the path +function path.directory(p) + local i = p:find_last("[/\\]") + if i then + if i > 1 then i = i - 1 end + return p:sub(1, i) + else + return "." + end +end + +-- get the filename of the path +function path.filename(p) + local i = p:find_last("[/\\]") + if i then + return p:sub(i + 1) + else + return p + end +end + +-- get the basename of the path +function path.basename(p) + local name = path.filename(p) + local i = name:find_last(".", true) + if i then + return name:sub(1, i - 1) + else + return name + end +end + +-- get the file extension of the path: .xxx +function path.extension(p) + local i = p:find_last(".", true) + if i then + return p:sub(i) + else + return "" + end +end + +-- return module: path +return path -- cgit v1.3.1