Add local webserver start-script
This commit is contained in:
		
							parent
							
								
									dfa65196da
								
							
						
					
					
						commit
						a0baf14ac2
					
				
							
								
								
									
										95
									
								
								bin/web
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										95
									
								
								bin/web
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,95 @@ | |||
| #!/usr/bin/env ruby | ||||
| 
 | ||||
| # A start-script for my local webserver. Mac-only and requires Homebrew | ||||
| 
 | ||||
| PREFIX = `brew --prefix`.strip | ||||
| 
 | ||||
| CONF = "#{PREFIX}/dev/conf" | ||||
| PID  = "#{PREFIX}/var/run" | ||||
| WWW  = "#{PREFIX}/dev/www" | ||||
| SERVICES = { | ||||
|     :php => { | ||||
|         :bin  => `which php-fpm`.strip, | ||||
|         :opts => "-D -c '#{CONF}/php/php.ini' --fpm-config '#{CONF}/php/php-fpm.conf' --pid = '#{PID}/php-fpm-pid'", | ||||
|         :pid  => "#{PID}/php-fpm.pid" | ||||
|     }, | ||||
|     :nginx => { | ||||
|         :bin  => `which nginx`.strip, | ||||
|         :opts => "-c '#{CONF}/nginx/nginx.conf'", | ||||
|         :pid  => "#{PID}/nginx.pid" | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| ## Functions ## | ||||
| 
 | ||||
| def start | ||||
|     SERVICES.each_pair do |key,opts| | ||||
|         if File.exist?(opts[:pid]) | ||||
|             puts "[NOTICE] Stopping #{key} ..." | ||||
|             `kill #{`cat #{opts[:pid]}`.strip}` | ||||
|             `rm #{opts[:pid]} >/dev/null 2>&1` | ||||
|         else | ||||
|             puts "[WARNING] #{key} is not running." | ||||
|         end | ||||
|     end | ||||
| end | ||||
| 
 | ||||
| def stop | ||||
|     SERVICES.each_pair do |key,opts| | ||||
|         if File.exist?(opts[:pid]) | ||||
|             puts "[NOTICE] Stopping #{serv} ..." | ||||
|             `kill #{`cat #{opts[:pid]}`.strip}` | ||||
|             `rm #{opts[:pid]} >/dev/null 2>&1` | ||||
|         else | ||||
|             puts "[WARNING] #{key} is not running." | ||||
|         end | ||||
|     end | ||||
| end | ||||
| 
 | ||||
| def restart | ||||
|     stop | ||||
|     start | ||||
| end | ||||
| 
 | ||||
| # Change the local webserver's root to the current directory | ||||
| def chdir | ||||
|     if File.directory?(WWW) | ||||
|         `rm -r #{WWW}` | ||||
|     end | ||||
|     `ln -s "#{`pwd`.strip}" "#{WWW}"` | ||||
|      | ||||
|     restart | ||||
| end | ||||
| 
 | ||||
| def help | ||||
|     puts "Usage: www (start|stop|restart)" | ||||
|     exit | ||||
| end | ||||
| 
 | ||||
| 
 | ||||
| ## Bootstrap ## | ||||
| 
 | ||||
| if `id -u` != "0\n" | ||||
|     puts "Must be run as root!" | ||||
|     exit | ||||
| end | ||||
| 
 | ||||
| if ARGV.length == 0 | ||||
|     help | ||||
| else | ||||
|     case ARGV[0] | ||||
|     when "start" | ||||
|         puts "Starting web services" | ||||
|         start | ||||
|     when "stop" | ||||
|         puts "Stopping web services" | ||||
|         stop | ||||
|     when "restart" | ||||
|         restart | ||||
|     when "chdir" | ||||
|         chdir | ||||
|     else | ||||
|         help | ||||
|     end | ||||
| end | ||||
		Loading…
	
		Reference in a new issue