class Launchy::Detect::Runner::Windows - launchy-2.4.3 Documentation

# class Launchy::Detect::Runner::Windows

### Public Instance Methods

all_args( cmd, *args ) click to toggle source

    # File lib/launchy/detect/runner.rb, line 73
    def all_args( cmd, *args )
      args = [ 'cmd', '/c', *shell_commands( cmd, *args ) ]
      Launchy.log "Windows: all_args => #{args.inspect}"
      return args
    end

dry_run( cmd, *args ) click to toggle source

    # File lib/launchy/detect/runner.rb, line 79
    def dry_run( cmd, *args )
      all_args( cmd, *args ).join(" ")
    end

shell_commands( cmd, *args ) click to toggle source

escape the reserved shell characters in windows command shell technet.microsoft.com/en-us/library/cc723564.aspx

Also make sure that the item after ‘start’ is guaranteed to be quoted. github.com/copiousfreetime/launchy/issues/62

    # File lib/launchy/detect/runner.rb, line 88
    def shell_commands( cmd, *args )
      parts = cmd.shellsplit

      if start_idx = parts.index('start') then
        title_idx = start_idx + 1
        title     = parts[title_idx]
        title     = title.sub(/^/,'"') unless title[0] == '"'
        title     = title.sub(/$/,'"') unless title[-1] == '"'
        parts[title_idx] = title
      end

      cmdline = [ parts ]
      cmdline << args.flatten.collect { |a| a.to_s.gsub(/([&|()<>^])/, "^\\1") }
      return commandline_normalize( cmdline )
    end

wet_run( cmd, *args ) click to toggle source

    # File lib/launchy/detect/runner.rb, line 104
    def wet_run( cmd, *args )
      system( *all_args( cmd, *args ) )
    end