| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  | module Hbc | 
					
						
							|  |  |  |   module Caskroom | 
					
						
							|  |  |  |     module_function | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |     def migrate_caskroom_from_repo_to_prefix | 
					
						
							| 
									
										
										
										
											2016-11-10 14:48:53 +01:00
										 |  |  |       repo_caskroom = HOMEBREW_REPOSITORY.join("Caskroom") | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |       return if Hbc.caskroom.exist? | 
					
						
							|  |  |  |       return unless repo_caskroom.directory? | 
					
						
							| 
									
										
										
										
											2016-09-21 17:34:15 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |       ohai "Moving Caskroom from HOMEBREW_REPOSITORY to HOMEBREW_PREFIX" | 
					
						
							| 
									
										
										
										
											2016-09-20 15:11:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |       if Hbc.caskroom.parent.writable? | 
					
						
							|  |  |  |         FileUtils.mv repo_caskroom, Hbc.caskroom | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         opoo "#{Hbc.caskroom.parent} is not writable, sudo is needed to move the Caskroom." | 
					
						
							| 
									
										
										
										
											2016-10-19 11:14:30 -07:00
										 |  |  |         SystemCommand.run("/bin/mv", args: [repo_caskroom, Hbc.caskroom.parent], sudo: true) | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-09-19 15:15:04 +02:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |     def ensure_caskroom_exists | 
					
						
							|  |  |  |       return if Hbc.caskroom.exist? | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |       ohai "Creating Caskroom at #{Hbc.caskroom}" | 
					
						
							| 
									
										
										
										
											2016-10-09 13:27:31 -07:00
										 |  |  |       ohai "We'll set permissions properly so we won't need sudo in the future" | 
					
						
							| 
									
										
										
										
											2016-10-15 15:18:51 -07:00
										 |  |  |       sudo = !Hbc.caskroom.parent.writable? | 
					
						
							| 
									
										
										
										
											2016-10-09 13:27:31 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-19 11:14:30 -07:00
										 |  |  |       SystemCommand.run("/bin/mkdir", args: ["-p", Hbc.caskroom], sudo: sudo) | 
					
						
							|  |  |  |       SystemCommand.run("/bin/chmod", args: ["g+rwx", Hbc.caskroom], sudo: sudo) | 
					
						
							|  |  |  |       SystemCommand.run("/usr/sbin/chown", args: [Utils.current_user, Hbc.caskroom], sudo: sudo) | 
					
						
							|  |  |  |       SystemCommand.run("/usr/bin/chgrp", args: ["admin", Hbc.caskroom], sudo: sudo) | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |