[前][次][番号順一覧][スレッド一覧]

ruby-changes:57831

From: Hiroshi <ko1@a...>
Date: Fri, 20 Sep 2019 12:58:42 +0900 (JST)
Subject: [ruby-changes:57831] 3b56a0934f (master): Removed Shell from the ruby repository.

https://git.ruby-lang.org/ruby.git/commit/?id=3b56a0934f

From 3b56a0934fa503b518e8302ed32f9124740d896b Mon Sep 17 00:00:00 2001
From: Hiroshi SHIBATA <hsbt@r...>
Date: Fri, 20 Sep 2019 12:56:18 +0900
Subject: Removed Shell from the ruby repository.


diff --git a/NEWS b/NEWS
index 459d205..7099bf0 100644
--- a/NEWS
+++ b/NEWS
@@ -330,6 +330,7 @@ RubyGems:: https://github.com/ruby/ruby/blob/trunk/NEWS#L330
 * Removed unmaintained libraries.
   * CMath
   * Scanf
+  * Shell
 
 === Stdlib compatibility issues (excluding feature bug fixes)
 
diff --git a/doc/maintainers.rdoc b/doc/maintainers.rdoc
index c2e3600..921f9ad 100644
--- a/doc/maintainers.rdoc
+++ b/doc/maintainers.rdoc
@@ -220,9 +220,6 @@ Zachary Scott (zzak) https://github.com/ruby/ruby/blob/trunk/doc/maintainers.rdoc#L220
 [lib/rss.rb, lib/rss/*]
   Kouhei Sutou (kou)
   https://github.com/ruby/rss
-[lib/shell.rb, lib/shell/*]
-  Keiju ISHITSUKA (keiju)
-  https://github.com/ruby/shell
 [lib/sync.rb]
   Keiju ISHITSUKA (keiju)
   https://github.com/ruby/sync
diff --git a/doc/standard_library.rdoc b/doc/standard_library.rdoc
index 3edfa8a..658ccb5 100644
--- a/doc/standard_library.rdoc
+++ b/doc/standard_library.rdoc
@@ -87,7 +87,6 @@ Racc:: A LALR(1) parser generator written in Ruby. https://github.com/ruby/ruby/blob/trunk/doc/standard_library.rdoc#L87
 RDoc:: Produces HTML and command-line documentation for Ruby
 REXML:: An XML toolkit for Ruby
 RSS:: Family of libraries that support various formats of XML "feeds"
-Shell:: An idiomatic Ruby interface for common UNIX shell commands
 Synchronizer:: A module that provides a two-phase lock with a counter
 ThreadsWait:: Watches for termination of multiple threads
 Tracer:: Outputs a source level execution trace of a Ruby program
diff --git a/lib/shell.rb b/lib/shell.rb
deleted file mode 100644
index 0958896..0000000
--- a/lib/shell.rb
+++ /dev/null
@@ -1,462 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/doc/standard_library.rdoc#L0
-# frozen_string_literal: false
-#
-#   shell.rb -
-#       $Release Version: 0.7 $
-#       $Revision: 1.9 $
-#       by Keiju ISHITSUKA(keiju@r...)
-#
-# --
-#
-#
-#
-
-require "e2mmap"
-
-require "forwardable"
-
-require "shell/error"
-require "shell/command-processor"
-require "shell/process-controller"
-require "shell/version"
-
-# Shell implements an idiomatic Ruby interface for common UNIX shell commands.
-#
-# It provides users the ability to execute commands with filters and pipes,
-# like +sh+/+csh+ by using native facilities of Ruby.
-#
-# == Examples
-#
-# === Temp file creation
-#
-# In this example we will create three +tmpFile+'s in three different folders
-# under the +/tmp+ directory.
-#
-#   sh = Shell.cd("/tmp") # Change to the /tmp directory
-#   sh.mkdir "shell-test-1" unless sh.exists?("shell-test-1")
-#   # make the 'shell-test-1' directory if it doesn't already exist
-#   sh.cd("shell-test-1") # Change to the /tmp/shell-test-1 directory
-#   for dir in ["dir1", "dir3", "dir5"]
-#     if !sh.exists?(dir)
-#       sh.mkdir dir # make dir if it doesn't already exist
-#       sh.cd(dir) do
-#         # change to the `dir` directory
-# 	  f = sh.open("tmpFile", "w") # open a new file in write mode
-# 	  f.print "TEST\n"            # write to the file
-# 	  f.close                     # close the file handler
-#       end
-#       print sh.pwd                  # output the process working directory
-#     end
-#   end
-#
-# === Temp file creation with self
-#
-# This example is identical to the first, except we're using
-# CommandProcessor#transact.
-#
-# CommandProcessor#transact executes the given block against self, in this case
-# +sh+; our Shell object. Within the block we can substitute +sh.cd+ to +cd+,
-# because the scope within the block uses +sh+ already.
-#
-#   sh = Shell.cd("/tmp")
-#   sh.transact do
-#     mkdir "shell-test-1" unless exists?("shell-test-1")
-#     cd("shell-test-1")
-#     for dir in ["dir1", "dir3", "dir5"]
-#       if !exists?(dir)
-# 	  mkdir dir
-# 	  cd(dir) do
-# 	    f = open("tmpFile", "w")
-# 	    f.print "TEST\n"
-# 	    f.close
-# 	  end
-# 	  print pwd
-#       end
-#     end
-#   end
-#
-# === Pipe /etc/printcap into a file
-#
-# In this example we will read the operating system file +/etc/printcap+,
-# generated by +cupsd+, and then output it to a new file relative to the +pwd+
-# of +sh+.
-#
-#   sh = Shell.new
-#   sh.cat("/etc/printcap") | sh.tee("tee1") > "tee2"
-#   (sh.cat < "/etc/printcap") | sh.tee("tee11") > "tee12"
-#   sh.cat("/etc/printcap") | sh.tee("tee1") >> "tee2"
-#   (sh.cat < "/etc/printcap") | sh.tee("tee11") >> "tee12"
-#
-class Shell
-
-  include Error
-  extend Exception2MessageMapper
-
-  # debug: true -> normal debug
-  # debug: 1    -> eval definition debug
-  # debug: 2    -> detail inspect debug
-  @debug = false
-  @verbose = true
-
-  @debug_display_process_id = false
-  @debug_display_thread_id = true
-  @debug_output_mutex = Thread::Mutex.new
-  @default_system_path = nil
-  @default_record_separator = nil
-
-  class << Shell
-    extend Forwardable
-
-    attr_accessor :cascade, :verbose
-    attr_reader :debug
-
-    alias debug? debug
-    alias verbose? verbose
-    @verbose = true
-
-    def debug=(val)
-      @debug = val
-      @verbose = val if val
-    end
-
-
-    # call-seq:
-    #   Shell.cd(path)
-    #
-    # Creates a new Shell instance with the current working directory
-    # set to +path+.
-    def cd(path)
-      new(path)
-    end
-
-    # Returns the directories in the current shell's PATH environment variable
-    # as an array of directory names. This sets the system_path for all
-    # instances of Shell.
-    #
-    # Example: If in your current shell, you did:
-    #
-    #   $ echo $PATH
-    #   /usr/bin:/bin:/usr/local/bin
-    #
-    # Running this method in the above shell would then return:
-    #
-    #   ["/usr/bin", "/bin", "/usr/local/bin"]
-    #
-    def default_system_path
-      if @default_system_path
-        @default_system_path
-      else
-        ENV["PATH"].split(":")
-      end
-    end
-
-    # Sets the system_path that new instances of Shell should have as their
-    # initial system_path.
-    #
-    # +path+ should be an array of directory name strings.
-    def default_system_path=(path)
-      @default_system_path = path
-    end
-
-    def default_record_separator
-      if @default_record_separator
-        @default_record_separator
-      else
-        $/
-      end
-    end
-
-    def default_record_separator=(rs)
-      @default_record_separator = rs
-    end
-
-    # os resource mutex
-    mutex_methods = ["unlock", "lock", "locked?", "synchronize", "try_lock"]
-    for m in mutex_methods
-      def_delegator("@debug_output_mutex", m, "debug_output_"+m.to_s)
-    end
-
-  end
-
-  # call-seq:
-  #   Shell.new(pwd, umask) -> obj
-  #
-  # Creates a Shell object which current directory is set to the process
-  # current directory, unless otherwise specified by the +pwd+ argument.
-  def initialize(pwd = Dir.pwd, umask = nil)
-    @cwd = File.expand_path(pwd)
-    @dir_stack = []
-    @umask = umask
-
-    @system_path = Shell.default_system_path
-    @record_separator = Shell.default_record_separator
-
-    @command_processor = CommandProcessor.new(self)
-    @process_controller = ProcessController.new(self)
-
-    @verbose = Shell.verbose
-    @debug = Shell.debug
-  end
-
-  # Returns the command search path in an array
-  attr_reader :system_path
-
-  # Sets the system path (the Shell instance's PATH environment variable).
-  #
-  # +path+ should be an array of directory name strings.
-  def system_path=(path)
-    @system_path = path
-    rehash
-  end
-
-
-  # Returns the umask
-  attr_accessor :umask
-  attr_accessor :record_separator
-  attr_accessor :verbose
-  attr_reader :debug
-
-  def debug=(val)
-    @debug = val
-    @verbose = val if val
-  end
-
-  alias verbose? verbose
-  alias debug? debug
-
-  attr_reader :command_processor
-  attr_reader :process_controller
-
-  def expand_path(path)
-    File.expand_path(path, @cwd)
-  end
-
-  # Most Shell commands are defined via CommandProcessor
-
-  #
-  # Dir related methods
-  #
-  # Shell#cwd/dir/getwd/pwd
-  # Shell#chdir/cd
-  # Shell#pushdir/pushd
-  # Shell#popdir/popd
-  # Shell#mkdir
-  # Shell#rmdir
-
-  # Returns the current working directory.
-  attr_reader :cwd
-  alias dir cwd
-  alias getwd cwd
-  alias pwd cwd
-
-  attr_reader :dir_stack
-  alias dirs dir_stack
-
-  # call-seq:
-  #   Shell.chdir(path)
-  #
-  # Creates a Shell object which current directory is set to +path+.
-  #
-  # If a block is given, it restores the current directory when the block ends.
-  #
-  # If called as iterator, it restores the current directory when the
-  # block ends.
-  def chdir(path = nil, verbose = @verbose)
-    check_point
-
-    if block_given?
-      notify("chdir(with block) #{path}") if verbose
-      cwd_old = @cwd
-      begin
-        chdir(path, nil)
-        yield
-      ensure
-        chdir(cwd_old, nil)
-      end
-    else
-      notify("chdir #{path}") if verbose
-      path = "~" unless path
-      @cwd = expand_path(path)
-      notify "current dir: #{@cwd}"
-      rehash
-      Void.new(self)
-    end
-  end
-  alias cd chdir
-
-  # call-seq:
-  #   pushdir(path)
-  #   pushdir(path) { &block }
-  #
-  # Pushes the current directory to the directory stack, changing the current
-  # directory to +path+.
-  #
-  # If +path+ is omitted, it exchanges its current directory and the top of its
-  # directory stack.
-  #
-  # If a block is given, it restores the current directory when the block ends.
-  def pushdir(path = nil, verbose = @verbose)
-    check_point
-
-    if block_given?
-      notify("pushdir(with block) #{path}") if verbose
-      pushdir(path, nil)
-      begin
-        yield
-      ensure
-        popdir
-      end
-    elsif path
-      notify("pushdir #{path}") if verbose
-      @dir_stack.push @cwd
-      chdir(path, nil)
-      notify "dir stack: [#{@dir_stack.join ' (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]