manager = {} manager.base_path = Path:new(os.getenv('HOME')) / '.local/share/blueprint' manager.install_path = manager.base_path / 'templates' manager.base_path:make_directory { create_parents = true } manager.install_path:make_directory { create_parents = true } function manager.list() return manager.install_path:entries() end function manager.install(path, name) if not (path / 'build.lua'):exists() then error('build.lua does not exist.') end local target = (manager.install_path / (name or path:name())) if target:exists() then error('template already installed.') end path:copy_to(target) end function manager.remove(name) if name == nil or not (manager.install_path / name):exists() then error('template does not exist.') end (manager.install_path / name):remove { recursive = true, force = true } end function manager.get(name) if (manager.install_path / name):exists() then return manager.install_path / name / 'build.lua' end return nil end