am 0.0.7 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -0
- data/lib/am/cli.rb +11 -11
- data/lib/am/version.rb +1 -1
- data/lib/config.rb +23 -6
- data/lib/tail.rb +7 -6
- data/lib/ui.rb +5 -5
- data/spec/lib/config_spec.rb +27 -14
- data/spec/lib/tail_spec.rb +25 -9
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 852969fa27d5ac381cfbf936cdfa4fb066e65991
|
4
|
+
data.tar.gz: 9ec05aebec06d777801b59c495b72a91cf967cce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a0275bb79a92fd03a219804b70c8f5326f42a7449617517fb71f9a39aa17d96f782f57cba55e66039beb6fb5df9037f4c4c34a5aace52d5ebc0743f63835bde
|
7
|
+
data.tar.gz: bab4c2b8d9af19f0ea0c112d5df871d019850a6d3bccbde1287cef0e18525177794c76a2ed55f7385bc73c08931efda3a414f170b35993ff63c8c62a3e7fbaf2
|
data/README.md
CHANGED
@@ -51,6 +51,17 @@ echo 'source ~/.am_config' >> ~/.bash_profile
|
|
51
51
|
|
52
52
|
$ am del -l(list)
|
53
53
|
delete alias select from current config
|
54
|
+
|
55
|
+
### configure
|
56
|
+
|
57
|
+
* history file location(optional)
|
58
|
+
|
59
|
+
```
|
60
|
+
# ~/.am_config
|
61
|
+
history_file=~/.custom_history
|
62
|
+
```
|
63
|
+
|
64
|
+
|
54
65
|
## License
|
55
66
|
* MIT
|
56
67
|
|
data/lib/am/cli.rb
CHANGED
@@ -9,14 +9,13 @@ module AM
|
|
9
9
|
default_command :show
|
10
10
|
def initialize(*args)
|
11
11
|
super
|
12
|
-
config = Config.new
|
13
|
-
@config = config.current
|
12
|
+
@config = Config.new
|
14
13
|
@ui = Ui.new
|
15
14
|
end
|
16
15
|
|
17
16
|
desc "show", "show current alias"
|
18
17
|
def show
|
19
|
-
if @config.empty?
|
18
|
+
if @config.al.empty?
|
20
19
|
puts 'a blank config'
|
21
20
|
else
|
22
21
|
@ui.print_current_config(@config)
|
@@ -26,7 +25,8 @@ module AM
|
|
26
25
|
desc "add", "add alias"
|
27
26
|
option :list, :type => :boolean, :aliases => '-l'
|
28
27
|
def add
|
29
|
-
tail = Tail.new
|
28
|
+
tail = Tail.new(@config)
|
29
|
+
|
30
30
|
# registeration from history choice
|
31
31
|
if options[:list]
|
32
32
|
commands = tail.get_last_five_command
|
@@ -40,7 +40,7 @@ module AM
|
|
40
40
|
end
|
41
41
|
|
42
42
|
if uniq?(add_record) && valid?(add_record)
|
43
|
-
@config << add_record
|
43
|
+
@config.al << add_record
|
44
44
|
add_config(add_record)
|
45
45
|
else
|
46
46
|
AM.p1("")
|
@@ -52,7 +52,7 @@ module AM
|
|
52
52
|
option :list, :type => :boolean, :aliases => '-l'
|
53
53
|
|
54
54
|
def del(delete_alias=nil)
|
55
|
-
if @config.empty?
|
55
|
+
if @config.al.empty?
|
56
56
|
puts 'a blank config'
|
57
57
|
exit
|
58
58
|
end
|
@@ -67,27 +67,27 @@ module AM
|
|
67
67
|
no_commands do
|
68
68
|
|
69
69
|
def add_config(add_record)
|
70
|
-
config
|
71
|
-
if config.save_config(@config)
|
70
|
+
if @config.save_config()
|
72
71
|
AM.p1("[success] #{add_record[ALIAS]} / #{add_record[COMMAND]} added command")
|
73
72
|
AM.p2("please run: [ source #{CONFIG_FILE} ]")
|
73
|
+
|
74
74
|
else
|
75
75
|
puts "[error] #{add_record[ALIAS]} / #{add_record[COMMAND]} couldn't add command"
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
79
|
def delete_config(exclude)
|
80
|
-
config
|
81
|
-
if config.save_config(@config, exclude)
|
80
|
+
if @config.save_config(exclude)
|
82
81
|
AM.p1("[success] delete alias #{exclude}")
|
83
82
|
AM.p2("please run: [ source #{CONFIG_FILE} ]")
|
83
|
+
|
84
84
|
else
|
85
85
|
AM.p2("[error] failue delete alias #{exclude}}")
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
89
|
def uniq?(add_record)
|
90
|
-
@config.each do |a,c|
|
90
|
+
@config.al.each do |a,c|
|
91
91
|
if add_record[ALIAS] == a
|
92
92
|
AM.p1("[error] not written as duplecate alias is '#{add_record[ALIAS]}'")
|
93
93
|
return false
|
data/lib/am/version.rb
CHANGED
data/lib/config.rb
CHANGED
@@ -2,27 +2,44 @@ require 'am'
|
|
2
2
|
|
3
3
|
module AM
|
4
4
|
class Config
|
5
|
-
|
6
|
-
|
5
|
+
attr_accessor :al, :pg
|
6
|
+
def initialize
|
7
|
+
file_load
|
8
|
+
end
|
9
|
+
|
10
|
+
def file_load
|
11
|
+
@al = []
|
12
|
+
@pg = {}
|
7
13
|
File.open(CONFIG_FILE, 'r') do |file|
|
14
|
+
|
8
15
|
file.each_line do |line|
|
9
|
-
|
16
|
+
@al << line.gsub(/^alias /, '').strip.split('=', 2) if(line =~ /^alias/)
|
17
|
+
@pg = Hash[*line.strip.split('=', 2)] if line =~ /^[^alias]/ && line =~ /^[^#.*]/
|
10
18
|
end
|
19
|
+
|
11
20
|
end if File.exists?(CONFIG_FILE)
|
12
|
-
config
|
13
21
|
end
|
14
22
|
|
15
|
-
def save_config(
|
23
|
+
def save_config(exclude=nil)
|
16
24
|
tmp_file = CONFIG_FILE + '.tmp'
|
17
25
|
file = File.open(tmp_file, "w")
|
26
|
+
new_al = []
|
18
27
|
|
19
|
-
|
28
|
+
file.puts("# alias config")
|
29
|
+
@al.each do |a,c|
|
20
30
|
r = "alias #{a.to_s}=#{c.to_s}"
|
21
31
|
if a.to_s != exclude
|
22
32
|
file.puts(r)
|
33
|
+
new_al << [a, c]
|
23
34
|
end
|
24
35
|
end
|
36
|
+
@al = new_al
|
25
37
|
|
38
|
+
file.puts("\n# pg config")
|
39
|
+
@pg.each do |p,v|
|
40
|
+
r = "#{p.to_s}=#{v.to_s}"
|
41
|
+
file.puts(r)
|
42
|
+
end
|
26
43
|
file.close
|
27
44
|
File.rename(tmp_file, CONFIG_FILE)
|
28
45
|
end
|
data/lib/tail.rb
CHANGED
@@ -2,32 +2,33 @@ require 'am'
|
|
2
2
|
|
3
3
|
module AM
|
4
4
|
class Tail
|
5
|
-
def initialize(
|
6
|
-
set_profile
|
5
|
+
def initialize(config)
|
6
|
+
set_profile(config)
|
7
7
|
end
|
8
8
|
|
9
|
-
def set_profile
|
10
|
-
shell =
|
9
|
+
def set_profile(config)
|
10
|
+
shell = ENV['SHELL']
|
11
11
|
@profile = {}
|
12
12
|
|
13
13
|
if shell =~ /zsh/
|
14
14
|
@profile = {
|
15
15
|
pattern: '.*;(.*)',
|
16
|
-
file: File.expand_path('~/.zsh_history'),
|
17
16
|
margin: 0,
|
18
17
|
max_line: 5,
|
18
|
+
file: '~/.zsh_history'
|
19
19
|
}
|
20
20
|
elsif shell =~ /bash/
|
21
21
|
@profile = {
|
22
22
|
pattern: '(.*)',
|
23
|
-
file: File.expand_path('~/.bash_history'),
|
24
23
|
margin: 1,
|
25
24
|
max_line: 5,
|
25
|
+
file: '~/.bash_history'
|
26
26
|
}
|
27
27
|
else
|
28
28
|
puts "does not support is #{shell}"
|
29
29
|
exit
|
30
30
|
end
|
31
|
+
@profile[:file] = config.pg['history_file'] unless config.pg['history_file'].nil?
|
31
32
|
end
|
32
33
|
|
33
34
|
def get_last_five_command
|
data/lib/ui.rb
CHANGED
@@ -3,14 +3,14 @@ require 'am'
|
|
3
3
|
module AM
|
4
4
|
class Ui
|
5
5
|
def print_current_config(config)
|
6
|
-
aml = config.max_by{|c| c[0].length }[0].length #alias max length
|
7
|
-
iml = config.length.to_s.length #index max length
|
6
|
+
aml = config.al.max_by{|c| c[0].length }[0].length #alias max length
|
7
|
+
iml = config.al.length.to_s.length #index max length
|
8
8
|
|
9
9
|
AM::p1("current commands of the config")
|
10
|
-
config.each_with_index do|r,i|
|
10
|
+
config.al.each_with_index do|r,i|
|
11
11
|
# 1: name=command
|
12
12
|
puts " #{' '*(iml - (i+1).to_s.length)}#{(i+1).to_s} : #{r[ALIAS].to_s}#{' '*(aml-r[ALIAS].length)} = #{r[COMMAND].to_s}"
|
13
|
-
end unless config.empty?
|
13
|
+
end unless config.al.empty?
|
14
14
|
AM::p1
|
15
15
|
end
|
16
16
|
|
@@ -38,7 +38,7 @@ module AM
|
|
38
38
|
print 'please input delete command number: '
|
39
39
|
number = please_input
|
40
40
|
valid?(number, '^[^0-9]', '[error] input using number!')
|
41
|
-
delete_alias = config[number.to_i-1][ALIAS] if config.length >= number.to_i
|
41
|
+
delete_alias = config.al[number.to_i-1][ALIAS] if config.al.length >= number.to_i
|
42
42
|
end
|
43
43
|
|
44
44
|
def get_alias
|
data/spec/lib/config_spec.rb
CHANGED
@@ -1,29 +1,42 @@
|
|
1
1
|
require 'spec_helper.rb'
|
2
2
|
|
3
3
|
describe AM::Config do
|
4
|
-
|
5
|
-
before
|
6
|
-
@config= AM::Config.new
|
4
|
+
context 'zsh' do
|
5
|
+
before do
|
7
6
|
`echo "alias test1='test az - AZ 09 _'" > #{AM::CONFIG_FILE}`
|
7
|
+
`echo "history_file=~/.zsh_history" >> #{AM::CONFIG_FILE}`
|
8
|
+
@config= AM::Config.new
|
8
9
|
end
|
10
|
+
|
9
11
|
it 'load config' do
|
10
|
-
@config.
|
11
|
-
expect(@config.
|
12
|
-
expect(@config.
|
12
|
+
expect(@config.al[0][0]).to eq 'test1'
|
13
|
+
expect(@config.al[0][1]).to eq "'test az - AZ 09 _'"
|
14
|
+
expect(@config.pg['history_file']).to eq "~/.zsh_history"
|
13
15
|
end
|
16
|
+
|
14
17
|
it 'save config'do
|
15
18
|
# add
|
16
|
-
config = @config.
|
17
|
-
expect(@config.save_config
|
18
|
-
expect(@config.
|
19
|
+
config = @config.al << ['test2', "'abcdefgeijklmn'"]
|
20
|
+
expect(@config.save_config).to eql(0)
|
21
|
+
expect(@config.al.length).to eql(2)
|
19
22
|
|
20
23
|
# delete
|
21
|
-
expect(@config.save_config(
|
22
|
-
expect(@config.
|
24
|
+
expect(@config.save_config('test1')).to eql(0)
|
25
|
+
expect(@config.al.length).to eql(1)
|
26
|
+
|
27
|
+
# valu check
|
28
|
+
expect(@config.al[0][0]).to eq 'test2'
|
29
|
+
expect(@config.al[0][1]).to eq "'abcdefgeijklmn'"
|
30
|
+
expect(@config.pg['history_file']).to eq "~/.zsh_history"
|
31
|
+
|
32
|
+
end
|
23
33
|
|
24
|
-
|
25
|
-
|
26
|
-
|
34
|
+
it 'pg config' do
|
35
|
+
# @config.pg_check
|
36
|
+
`echo "history_file=~/.csh_history" >> #{AM::CONFIG_FILE}`
|
37
|
+
config= AM::Config.new
|
38
|
+
expect(config.pg['history_file']).to eq "~/.csh_history"
|
39
|
+
`echo "" > #{AM::CONFIG_FILE}`
|
27
40
|
end
|
28
41
|
end
|
29
42
|
end
|
data/spec/lib/tail_spec.rb
CHANGED
@@ -1,20 +1,36 @@
|
|
1
1
|
require 'spec_helper.rb'
|
2
2
|
|
3
3
|
describe AM::Tail do
|
4
|
-
|
4
|
+
context 'tail commands tests' do
|
5
|
+
shared_examples_for "shell test" do
|
6
|
+
before do
|
7
|
+
config= AM::Config.new
|
8
|
+
config.pg['history_file'] = hist_file
|
9
|
+
ENV['SHELL'] = shell
|
10
|
+
@tail = AM::Tail.new(config)
|
11
|
+
end
|
5
12
|
|
6
|
-
|
7
|
-
|
13
|
+
it 'get_last_five_commands' do
|
14
|
+
expect(@tail.get_last_five_command.length).to eq 5
|
15
|
+
expect(@tail.get_last_five_command[0]).to match(/[a-z]+/)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'get_last_command' do
|
19
|
+
expect(@tail.get_last_command.length).to be >= 1
|
20
|
+
expect(@tail.get_last_command[0]).to match(/[a-z]+/)
|
21
|
+
end
|
8
22
|
end
|
9
23
|
|
10
|
-
|
11
|
-
|
12
|
-
|
24
|
+
describe 'zsh' do
|
25
|
+
let(:hist_file) { '~/.zsh_history' }
|
26
|
+
let(:shell) {'/bin/zsh' }
|
27
|
+
it_should_behave_like 'shell test'
|
13
28
|
end
|
14
29
|
|
15
|
-
|
16
|
-
|
17
|
-
|
30
|
+
describe 'bash' do
|
31
|
+
let(:hist_file) { '~/.bash_history' }
|
32
|
+
let(:shell) {'/bin/bash' }
|
33
|
+
it_should_behave_like 'shell test'
|
18
34
|
end
|
19
35
|
end
|
20
36
|
end
|