Welcome to mirror list, hosted at ThFree Co, Russian Federation.

init.lua.in - github.com/torch/paths.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 197ca42c8fdc966186b7aed61d1434d3bbde0be6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# -*- lua -*-

require 'libpaths'

local assert = assert
local debug = debug
local pcall = pcall
local type = type
local os = os
local g = _G

module('paths')

install_prefix = [[@Torch_INSTALL_PREFIX@]]
install_bin_subdir = [[@Torch_INSTALL_BIN_SUBDIR@]]
install_man_subdir = [[@Torch_INSTALL_MAN_SUBDIR@]]
install_lib_subdir = [[@Torch_INSTALL_LIB_SUBDIR@]]
install_share_subdir = [[@Torch_INSTALL_SHARE_SUBDIR@]]
install_include_subdir = [[@Torch_INSTALL_INCLUDE_SUBDIR@]]
install_hlp_subdir = [[@Torch_INSTALL_HLP_SUBDIR@]]
install_html_subdir = [[@Torch_INSTALL_HTML_SUBDIR@]]
install_cmake_subdir = [[@Torch_INSTALL_CMAKE_SUBDIR@]]
install_lua_path_subdir = [[@Torch_INSTALL_LUA_PATH_SUBDIR@]]
install_lua_cpath_subdir = [[@Torch_INSTALL_LUA_CPATH_SUBDIR@]]
install_bin_ridbus = [[@Torch_INSTALL_BIN_RIDBUS@]]
install_cmake_ridbus = [[@Torch_INSTALL_CMAKE_RIDBUS@]]

local e = execdir()
if e ~= nil then
   install_prefix = concat(e,install_bin_ridbus)
end

install_bin = concat(install_prefix, install_bin_subdir)
install_man = concat(install_prefix, install_man_subdir)
install_lib = concat(install_prefix, install_lib_subdir)
install_share = concat(install_prefix, install_share_subdir)
install_include = concat(install_prefix, install_include_subdir)
install_hlp = concat(install_prefix, install_hlp_subdir)
install_html = concat(install_prefix, install_html_subdir)
install_cmake = concat(install_prefix, install_cmake_subdir)
install_lua_path = concat(install_prefix, install_lua_path_subdir)
install_lua_cpath = concat(install_prefix, install_lua_cpath_subdir)

assert(concat(install_bin,install_bin_ridbus) == install_prefix:gsub('/$',''))
assert(concat(install_cmake,install_cmake_ridbus) == install_prefix:gsub('/$',''))

function is_win()
   return uname():match('Windows')
end

function is_mac()
   return uname():match('Darwin')
end

if is_win() then
   home = os.getenv('HOMEDRIVE') or 'C:'
   home = home .. ( os.getenv('HOMEPATH') or '\\' )
else
   home = os.getenv('HOME') or '.'
end

function files(s)
   local d = dir(s)
   local n = 0
   return function()
             n = n + 1
             if (d and n <= #d) then
                return d[n]
             else
                return nil
             end
          end
end

function thisfile(arg, depth)
   local s = debug.getinfo(depth or 2).source
   if type(s) ~= "string" then
      s = nil
   elseif s:match("^@") then     -- when called from a file
      s = concat(s:sub(2))
   elseif s:match("^qt[.]") then -- when called from a qtide editor
      local function z(s) return g.qt[s].fileName:tostring() end 
      local b, f = pcall(z, s:sub(4));
      if b and f and f ~= "" then s = f else s = nil end
   end
   if type(arg) == "string" then
      if s then s = concat(dirname(s), arg) else s = arg end
   end 
   return s
end

function dofile(f, depth)
   local s = thisfile(nil, 1 + (depth or 2))
   if s and s ~= "" then
      f = concat(dirname(s),f)
   end
   return g.dofile(f)
end

function rmall(d, more)
   if more ~= 'yes' then
      return nil, "missing second argument ('yes')"
   elseif filep(d) then
      return os.remove(d)
   elseif dirp(d) then
      for f in files(d) do
         if f ~= '.' and f ~= '..' then
            local ff = concat(d, f)
            local r0,r1,r2 = rmall(ff, more)
            if not r0 then
               return r0,r1,ff
            end
        end
     end
     return rmdir(d)
   else
     return nil, "not a file or directory", d
   end
end

function findprogram(exe)
   if is_win() then
      local k = 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\' .. exe;
      local x = getregistryvalue('HKEY_LOCAL_MACHINE', k, '')
      if type(x) == 'string' then return x end
      x = getregistryvalue('HKEY_LOCAL_MACHINE', k .. '.exe', '')
      if type(x) == 'string' then return x end
      local path = os.getenv("PATH") or "."
      for dir in path:gmatch('[^;]+') do
         x = concat(dir, exe)
         if filep(x) then return x end
         x = x .. '.exe'
         if filep(x) then return x end
      end        
   else
      local path = os.getenv("PATH") or "."
      for dir in path:gmatch('[^:]+') do
         local x = concat(dir, exe)
         if filep(x) then return x end
      end
   end
   return nil
end