 			return callback err if err
 			
 			for result in results
-				if result.node_name == node_name
-					continue
-					
+				continue if result.node_name == node_name
+				
 				if not result.address
 					logsmith.error "node #{node_name} does not expose address"
 					
 					continue
 					
-				a = shell_quote.quote([result.address])
-				f = shell_quote.quote(["/etc/vortex/nodes/#{result.node_name}"])
-				
-				roost_manifest.bootstrap.unshift "echo #{a} | sudo tee #{f}"
+				address = shell_quote.quote([result.address])
+				file = shell_quote.quote(["/etc/vortex/nodes/#{result.node_name}"])
+				
+				roost_manifest.bootstrap.unshift "echo #{address} | sudo tee #{file}"
 				
 			return callback null, node_name, roost_manifest, roost_plugins, spec
 			


exports.shellspec = (opt, manifest, provider, node_names, callback) ->
	###
	This action obtains the shell spec of nodes.
	###
	
	#
	# Call provier's shell_spec for each node.
	#
	process_node = (node_name, callback) ->
		provider.shell_spec node_name, (err, spec) ->
			return callback err if err
			

	merge_objects = (a, b) ->
		for key, value of b
			if a[key]?
				a[key] = switch
					when Array.isArray a[key] then a[key].concat b[key]
					when typeof a[key] == 'number' or a[key] instanceof Number then b[key]
					when typeof a[key] == 'string' or a[key] instanceof String then b[key]
					when typeof a[key] == 'boolean' or a[key] instanceof Boolean then b[key]
					else arguments.callee a[key], b[key]
			else
				a[key] = b[key]
				
