Module: PodBuilder
- Defined in:
- lib/pod_builder/core.rb,
lib/pod_builder/info.rb,
lib/pod_builder/analyze.rb,
lib/pod_builder/podfile.rb,
lib/pod_builder/podspec.rb,
lib/pod_builder/version.rb,
lib/pod_builder/licenses.rb,
lib/pod_builder/command/info.rb,
lib/pod_builder/command/init.rb,
lib/pod_builder/command/none.rb,
lib/pod_builder/podfile_item.rb,
lib/pod_builder/command/build.rb,
lib/pod_builder/command/clean.rb,
lib/pod_builder/configuration.rb,
lib/pod_builder/command/switch.rb,
lib/pod_builder/command/update.rb,
lib/pod_builder/command/build_all.rb,
lib/pod_builder/command/deintegrate.rb,
lib/pod_builder/command/restore_all.rb,
lib/pod_builder/command/generate_lfs.rb,
lib/pod_builder/command/sync_podfile.rb,
lib/pod_builder/podfile/post_actions.rb,
lib/pod_builder/command/install_sources.rb,
lib/pod_builder/command/generate_podspec.rb,
lib/pod_builder/install.rb
Defined Under Namespace
Modules: Command
Classes: Analyze, Configuration, Info, Install, Licenses, Podfile, PodfileItem, Podspec
Constant Summary
collapse
- VERSION =
"0.7.1"
Class Method Summary
collapse
Class Method Details
.add_lock_file ⇒ Object
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/pod_builder/core.rb', line 94
def self.add_lock_file
lockfile_path = File.join(home, Configuration.lock_filename)
if File.exist?(lockfile_path)
if pid = File.read(lockfile_path)
begin
if Process.getpgid(pid)
raise "\n\nAnother PodBuilder pending task is running on this project\n".red
end
rescue
end
end
end
File.write(lockfile_path, Process.pid, mode: "w")
end
|
.basepath(child = "") ⇒ Object
38
39
40
|
# File 'lib/pod_builder/core.rb', line 38
def self.basepath(child = "")
return "#{Configuration.base_path}/#{child}".gsub("//", "/").gsub(/\/$/, '')
end
|
.clean_basepath ⇒ Object
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/pod_builder/core.rb', line 77
def self.clean_basepath
if path = PodBuilder::find_xcodeproj
PodBuilder::safe_rm_rf(basepath(File.basename(path)))
end
if path = PodBuilder::find_xcodeworkspace
PodBuilder::safe_rm_rf(basepath(File.basename(path)))
end
PodBuilder::safe_rm_rf(basepath("Pods"))
end
|
.find_xcodeproj ⇒ Object
48
49
50
51
52
53
54
55
56
|
# File 'lib/pod_builder/core.rb', line 48
def self.find_xcodeproj
project_name = File.basename(find_xcodeworkspace, ".*")
xcodeprojects = Dir.glob("#{home}/**/#{project_name}.xcodeproj").select { |x| !x.include?("/Pods/") && !x.include?("/Sources/") && !x.include?(basepath) }
raise "xcodeproj not found!".red if xcodeprojects.count == 0
raise "Found multiple xcodeproj:\n#{xcodeprojects.join("\n")}".red if xcodeprojects.count > 1
return xcodeprojects.first
end
|
.find_xcodeworkspace ⇒ Object
58
59
60
61
62
63
64
|
# File 'lib/pod_builder/core.rb', line 58
def self.find_xcodeworkspace
xcworkspaces = Dir.glob("#{home}/**/#{Configuration.project_name}*.xcworkspace").select { |x| !x.include?("/Pods/") && !x.include?("/Sources/") && !x.include?(basepath) && !x.include?(".xcodeproj/") }
raise "xcworkspace not found!".red if xcworkspaces.count == 0
raise "Found multiple xcworkspaces:\n#{xcworkspaces.join("\n")}".red if xcworkspaces.count > 1
return xcworkspaces.first
end
|
.prepare_basepath ⇒ Object
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/pod_builder/core.rb', line 66
def self.prepare_basepath
workspace_path = PodBuilder::find_xcodeworkspace
project_path = PodBuilder::find_xcodeproj
if workspace_path && project_path
FileUtils.mkdir_p(basepath("Pods/Target Support Files"))
FileUtils.cp_r(workspace_path, basepath)
FileUtils.cp_r(project_path, basepath)
FileUtils.rm_f(basepath("Podfile.lock"))
end
end
|
.project_path(child = "") ⇒ Object
42
43
44
45
46
|
# File 'lib/pod_builder/core.rb', line 42
def self.project_path(child = "")
project = PodBuilder::find_xcodeworkspace
return project ? "#{File.dirname(project)}/#{child}".gsub("//", "/").gsub(/\/$/, '') : nil
end
|
.remove_lock_file ⇒ Object
111
112
113
114
115
116
|
# File 'lib/pod_builder/core.rb', line 111
def self.remove_lock_file
lockfile_path = File.join(home, Configuration.lock_filename)
if File.exist?(lockfile_path)
FileUtils.rm(lockfile_path)
end
end
|
.safe_rm_rf(path) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/pod_builder/core.rb', line 17
def self.safe_rm_rf(path)
unless File.exist?(path)
return
end
current_dir = Dir.pwd
Dir.chdir(path)
h = `git rev-parse --show-toplevel`.strip()
raise "\n\nNo git repository found, can't delete files!\n".red if h.empty?
FileUtils.rm_rf(path)
if File.exist?(current_dir)
Dir.chdir(current_dir)
else
Dir.chdir(basepath)
end
end
|
.system_swift_version ⇒ Object
88
89
90
91
92
|
# File 'lib/pod_builder/core.rb', line 88
def self.system_swift_version
swift_version = `swiftc --version | grep -o 'swiftlang-.*\s'`.strip()
raise "Unsupported swift compiler version, expecting `swiftlang` keyword in `swiftc --version`" if swift_version.length == 0
return swift_version
end
|