cmd_tools 0.2.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +21 -13
- data/bin/emacs_launcher_cui +4 -0
- data/bin/emacs_launcher_gui +4 -0
- data/cmd_tools.gemspec +15 -2
- data/lib/cmd_tools/bin/emacs_launcher.rb +41 -0
- data/lib/cmd_tools/config.rb +33 -0
- data/lib/cmd_tools/version.rb +1 -1
- metadata +23 -9
- data/bin/cmd_tools_emacs_launcher_for_alternate_editor_of_emacsclient +0 -7
data/README.rdoc
CHANGED
@@ -1,14 +1,22 @@
|
|
1
|
-
=
|
2
|
-
==
|
1
|
+
= CmdTools
|
2
|
+
== What is this?
|
3
|
+
Simple small command line utilities.
|
4
|
+
== Executables
|
5
|
+
=== +tsh+
|
3
6
|
*rm* alternative. Move files and directories into ~/.myTrash with +TIME_NOW+. prefix.
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
Back up files and directories
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
===
|
13
|
-
|
14
|
-
|
7
|
+
==== Usage
|
8
|
+
tsh file1 file2 *~ dir1 dir2 1206??_photo
|
9
|
+
=== +bak+
|
10
|
+
Back up files and directories within current directory into ./bak_since_SOME_NUMBERES directory with bak.+TIME_NOW+. prefix.
|
11
|
+
==== Usage
|
12
|
+
bak file1 file2 *~ dir1 dir2 1206??_photo
|
13
|
+
=== +cmd_tools_emacs_launcher_for_alternate_editor_of_emacsclient+
|
14
|
+
Deleted: please use +emacs_launcher_(g|c)ui+.
|
15
|
+
=== +emacs_launcher_(g|c)ui+
|
16
|
+
Launch emacs in (G|C)UI mode.
|
17
|
+
1. If emacs daemon is not running, start a new daemon.
|
18
|
+
2. If GUI mode and no frame exist, create a new frame.
|
19
|
+
3. Open +files+ by emacsclient in (G|C)UI mode.
|
20
|
+
==== Usage
|
21
|
+
alias em='emacs_launcher_gui'
|
22
|
+
alias e='emacs_launcher_cui'
|
data/cmd_tools.gemspec
CHANGED
@@ -11,9 +11,22 @@ Gem::Specification.new do |s|
|
|
11
11
|
|
12
12
|
s.add_development_dependency 'ruby_patch', '~> 0.3'
|
13
13
|
s.author = 'kshramt'
|
14
|
-
s.description =
|
14
|
+
s.description = <<-EOS
|
15
|
+
Command line tools:
|
16
|
+
tsh: mv files to ~/.myTrash.
|
17
|
+
bak: backup files.
|
18
|
+
emacs_daemon: launch `emacs --daemon'.
|
19
|
+
EOS
|
15
20
|
s.executables << 'bak'
|
16
21
|
s.executables << 'tsh'
|
17
|
-
s.executables << '
|
22
|
+
s.executables << 'emacs_launcher_gui'
|
23
|
+
s.executables << 'emacs_launcher_cui'
|
24
|
+
s.post_install_message = <<-EOS
|
25
|
+
|
26
|
+
# CmdTools.
|
27
|
+
alias em='emacs_launcher_gui'
|
28
|
+
alias e='emacs_launcher_cui'
|
29
|
+
|
30
|
+
EOS
|
18
31
|
s.required_ruby_version = '~> 1.9'
|
19
32
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module CmdTools
|
2
|
+
module Bin
|
3
|
+
module EmacsLauncher
|
4
|
+
require 'ruby_patch'
|
5
|
+
extend ::RubyPatch::AutoLoad
|
6
|
+
|
7
|
+
# Open +files+ by +mode+ (:gui/:cui) mode.
|
8
|
+
# Launch emacs daemon if necessary.
|
9
|
+
# Create new frame if necessary.
|
10
|
+
# You can edit ~/.config/cmd_tools/config.yaml to specify an emacs executable.
|
11
|
+
# For example, if you are a Mac user who uses MacPorts, following modification will be useful.
|
12
|
+
# - :emacs: emacs
|
13
|
+
# + :emacs: /Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs
|
14
|
+
def self.run(mode, *files)
|
15
|
+
system "#{::CmdTools::Config.emacs} --daemon" unless self.daemon_running?
|
16
|
+
|
17
|
+
files = files.flatten.join(' ')
|
18
|
+
case mode
|
19
|
+
when :gui
|
20
|
+
if self.number_of_frames <= 1 # emacs daemon has one (invisible) frame.
|
21
|
+
system "emacsclient -c -n #{files}"
|
22
|
+
else
|
23
|
+
system "emacsclient -n #{files}"
|
24
|
+
end
|
25
|
+
when :cui
|
26
|
+
system "emacsclient -t #{files}"
|
27
|
+
else
|
28
|
+
raise ArgumentError, "Unknown mode: #{mode}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.daemon_running?
|
33
|
+
system "emacsclient -e '()' >& /dev/null"
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.number_of_frames
|
37
|
+
`emacsclient -e "(length (visible-frame-list))" >& /dev/null`.to_i
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module CmdTools
|
2
|
+
module Config
|
3
|
+
require 'yaml'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'ruby_patch'
|
6
|
+
extend ::RubyPatch::AutoLoad
|
7
|
+
|
8
|
+
CONFIG_DIR = File.join(ENV['HOME'], '.config/cmd_tools')
|
9
|
+
CONFIG_FILE = File.join(CONFIG_DIR, 'config.yaml')
|
10
|
+
CONFIG_DEFAULT = {
|
11
|
+
emacs: ENV['ALTERNATE_EDITOR'] || 'emacs',
|
12
|
+
}
|
13
|
+
|
14
|
+
# (Re)load config file.
|
15
|
+
def self.load
|
16
|
+
@config = if File.readable?(CONFIG_FILE)
|
17
|
+
CONFIG_DEFAULT.merge(YAML.load_file(CONFIG_FILE))
|
18
|
+
else
|
19
|
+
FileUtils.mkdir_p(CONFIG_DIR)
|
20
|
+
open(CONFIG_FILE, 'w').write(CONFIG_DEFAULT.to_yaml)
|
21
|
+
CONFIG_DEFAULT
|
22
|
+
end
|
23
|
+
|
24
|
+
self
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.emacs
|
28
|
+
@config[:emacs]
|
29
|
+
end
|
30
|
+
|
31
|
+
self.load
|
32
|
+
end
|
33
|
+
end
|
data/lib/cmd_tools/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cmd_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ruby_patch
|
16
|
-
requirement: &
|
16
|
+
requirement: &2156832100 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,29 +21,43 @@ dependencies:
|
|
21
21
|
version: '0.3'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
-
description: !
|
24
|
+
version_requirements: *2156832100
|
25
|
+
description: ! "Command line tools:\n tsh: mv files to ~/.myTrash.\n bak: backup
|
26
|
+
files.\n emacs_daemon: launch `emacs --daemon'.\n"
|
26
27
|
email:
|
27
28
|
executables:
|
28
29
|
- bak
|
29
30
|
- tsh
|
30
|
-
-
|
31
|
+
- emacs_launcher_gui
|
32
|
+
- emacs_launcher_cui
|
31
33
|
extensions: []
|
32
34
|
extra_rdoc_files: []
|
33
35
|
files:
|
34
36
|
- README.rdoc
|
35
37
|
- bin/bak
|
36
|
-
- bin/
|
38
|
+
- bin/emacs_launcher_cui
|
39
|
+
- bin/emacs_launcher_gui
|
37
40
|
- bin/tsh
|
38
41
|
- cmd_tools.gemspec
|
39
42
|
- lib/cmd_tools.rb
|
40
43
|
- lib/cmd_tools/bin.rb
|
41
44
|
- lib/cmd_tools/bin/bak.rb
|
45
|
+
- lib/cmd_tools/bin/emacs_launcher.rb
|
42
46
|
- lib/cmd_tools/bin/tsh.rb
|
47
|
+
- lib/cmd_tools/config.rb
|
43
48
|
- lib/cmd_tools/version.rb
|
44
49
|
homepage:
|
45
50
|
licenses: []
|
46
|
-
post_install_message:
|
51
|
+
post_install_message: ! '
|
52
|
+
|
53
|
+
# CmdTools.
|
54
|
+
|
55
|
+
alias em=''emacs_launcher_gui''
|
56
|
+
|
57
|
+
alias e=''emacs_launcher_cui''
|
58
|
+
|
59
|
+
|
60
|
+
'
|
47
61
|
rdoc_options: []
|
48
62
|
require_paths:
|
49
63
|
- lib
|
@@ -61,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
75
|
version: '0'
|
62
76
|
requirements: []
|
63
77
|
rubyforge_project:
|
64
|
-
rubygems_version: 1.8.
|
78
|
+
rubygems_version: 1.8.15
|
65
79
|
signing_key:
|
66
80
|
specification_version: 3
|
67
81
|
summary: Command line tools.
|
@@ -1,7 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
# cmd_tools_emacs_opener_for_alternate_editor_of_emacsclient can be used as:
|
4
|
-
# alias e='emacsclient -a cmd_tools_emacs_opener_for_alternate_editor_of_emacsclient -t'
|
5
|
-
# alias em='emacsclient -a cmd_tools_emacs_opener_for_alternate_editor_of_emacsclient -n'
|
6
|
-
|
7
|
-
spawn("emacs #{ARGV.join(' ')}")
|