-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadd_files_to_xcode.rb
More file actions
70 lines (54 loc) · 2.2 KB
/
Copy pathadd_files_to_xcode.rb
File metadata and controls
70 lines (54 loc) · 2.2 KB
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
#!/usr/bin/env ruby
require 'securerandom'
require 'fileutils'
project_path = 'Bastion.xcodeproj/project.pbxproj'
backup_path = 'Bastion.xcodeproj/project.pbxproj.backup'
# Backup original
FileUtils.cp(project_path, backup_path)
# Read project file
content = File.read(project_path)
# New files to add
new_files = [
'Bastion/Security/ExploitModules/SMBModule.swift',
'Bastion/Security/ExploitModules/DNSModule.swift',
'Bastion/Security/ExploitModules/LDAPModule.swift',
'Bastion/Security/LateralMovementMapper.swift',
'Bastion/Security/VulnerabilityChainer.swift',
'Bastion/Security/MITREATTACKMapper.swift',
'Bastion/Security/RemediationScriptGenerator.swift',
'Bastion/Security/ContinuousMonitor.swift',
'Bastion/Security/AnomalyDetector.swift',
'Bastion/Security/TimelineReconstructor.swift'
]
file_refs = []
build_files = []
# Generate UUIDs and file references
new_files.each do |file_path|
file_ref_uuid = SecureRandom.uuid.gsub('-', '')[0..23].upcase
build_file_uuid = SecureRandom.uuid.gsub('-', '')[0..23].upcase
file_name = File.basename(file_path)
file_refs << file_ref_uuid
build_files << [build_file_uuid, file_ref_uuid]
# Add to PBXFileReference section
file_ref_entry = "\t\t#{file_ref_uuid} /* #{file_name} */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = #{file_name}; sourceTree = \"<group>\"; };\n"
# Find PBXFileReference section and add before the end
content.gsub!(/\/\* End PBXFileReference section \*\//) do
file_ref_entry + $&
end
# Add to PBXBuildFile section
build_file_entry = "\t\t#{build_file_uuid} /* #{file_name} in Sources */ = {isa = PBXBuildFile; fileRef = #{file_ref_uuid} /* #{file_name} */; };\n"
content.gsub!(/\/\* End PBXBuildFile section \*\//) do
build_file_entry + $&
end
# Add to PBXSourcesBuildPhase
build_phase_entry = "\t\t\t\t#{build_file_uuid} /* #{file_name} in Sources */,\n"
content.gsub!(/(\/\* Sources \*\/ = \{[^}]+files = \([^)]+)(\);)/) do
$1 + build_phase_entry + $2
end
puts "✓ Added: #{file_name}"
end
# Write modified project file
File.write(project_path, content)
puts ""
puts "✅ All files added to Xcode project!"
puts "Backup saved to: #{backup_path}"