Sha256: da85bdd9bc955c6cd1c0c7a9f4437ecf65ae2850e2a48ce4231fb6dbcb593bd8

Contents?: true

Size: 1.78 KB

Versions: 3

Compression:

Stored size: 1.78 KB

Contents

#
# trema kill command.
#
# Author: Yasuhito Takamiya <yasuhito@gmail.com>
#
# Copyright (C) 2008-2012 NEC Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#


require "optparse"
require "trema/dsl"
require "trema/util"


module Trema
  module Command
    include Trema::Util


    def kill
      options = OptionParser.new
      options.banner = "Usage: #{ $PROGRAM_NAME } kill NAME [OPTIONS ...]"

      options.on( "-h", "--help" ) do
        puts options.to_s
        exit 0
      end
      options.on( "-v", "--verbose" ) do
        $verbose = true
      end

      options.parse! ARGV

      context = Trema::DSL::Context.load_current

      # [FIXME] Trema apps does not appear in context.apps. why?
      pid_file = File.join( Trema.pid_directory, "#{ ARGV[ 0 ] }.pid" )
      if FileTest.exist?( pid_file )
        Trema::Process.read( pid_file ).kill!
      end

      host = context.hosts[ ARGV[ 0 ] ]
      host.shutdown! if host

      switch = context.switches[ ARGV[ 0 ] ]
      switch.shutdown! if switch

      # [TODO] kill a link by its name. Needs a good naming convension for link.
    end
  end
end


### Local variables:
### mode: Ruby
### coding: utf-8
### indent-tabs-mode: nil
### End:

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trema-0.1.3.2 ruby/trema/command/kill.rb
trema-0.1.3.1 ruby/trema/command/kill.rb
trema-0.1.3 ruby/trema/command/kill.rb