termory 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.
- checksums.yaml +7 -0
- data/bin/termory +12 -0
- data/lib/termory/config.rb +5 -0
- data/lib/termory/db.rb +20 -0
- data/lib/termory/main.rb +0 -0
- data/lib/termory/migrate.rb +13 -0
- data/lib/termory/model.rb +12 -0
- data/lib/termory/optpare.rb +83 -0
- data/lib/termory/optparsr_options/config.rb +25 -0
- data/lib/termory/optparsr_options/database.rb +14 -0
- data/lib/termory/optparsr_options/execute.rb +9 -0
- data/lib/termory.rb +53 -0
- metadata +82 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8d8bbd6e53c1967f571b43197505ea87902fe6238e89067a44ec215822c0bda6
|
4
|
+
data.tar.gz: 3ecadc6d187637f8f92cecd004068e718c0b2ad2db92987748b772592bf6e633
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 140914033b2784660076c272589eb1fd6f50b6ec1b0fea2e57b929e8d4e9230157f03f02d0561bcf9f6813d7c4080374dbcb58756098778b336cd192d428b6a8
|
7
|
+
data.tar.gz: 208dffa2cef3f4c200f5f58c7da56664f0479a954d7c487d3b45f9e3540e215d34c2dfa22b66ed728c7b01bd3a65bc1559687a35a94afc89352ed18929a9b93c
|
data/bin/termory
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift File.dirname(__FILE__) + "/../lib"
|
3
|
+
require 'optparse'
|
4
|
+
require 'termory'
|
5
|
+
|
6
|
+
begin
|
7
|
+
Termory::Console.new.start
|
8
|
+
rescue OptionParser::ParseError => ex
|
9
|
+
STDERR.puts "!! #{ex.message}"
|
10
|
+
puts "** use `#{File.basename($0)} --help` for more details..."
|
11
|
+
exit 1
|
12
|
+
end
|
data/lib/termory/db.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Termory
|
2
|
+
require 'active_record'
|
3
|
+
require 'sqlite3'
|
4
|
+
require 'termory/config'
|
5
|
+
|
6
|
+
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: Termory::Config::DATABASE_HOST)
|
7
|
+
class Database
|
8
|
+
class << self
|
9
|
+
def create
|
10
|
+
ENV["mode"] = 'create'
|
11
|
+
require 'termory/migrate'
|
12
|
+
end
|
13
|
+
|
14
|
+
def drop
|
15
|
+
ENV["mode"] = 'drop'
|
16
|
+
require 'termory/migrate'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/termory/main.rb
ADDED
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
mode = ENV.fetch("mode")
|
2
|
+
|
3
|
+
class CommandTable < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
create_table :commands do |table|
|
6
|
+
table.string :key
|
7
|
+
table.string :command
|
8
|
+
table.timestamps
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
CommandTable.migrate(:up) if mode == "create"
|
13
|
+
CommandTable.migrate(:down) if mode == "drop"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Termory
|
2
|
+
module Model
|
3
|
+
require 'active_record'
|
4
|
+
require 'sqlite3'
|
5
|
+
require 'termory/config'
|
6
|
+
|
7
|
+
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: Termory::Config::DATABASE_HOST)
|
8
|
+
class Command < ActiveRecord::Base
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
|
2
|
+
require 'optparse'
|
3
|
+
require 'optparse/time'
|
4
|
+
require 'ostruct'
|
5
|
+
require 'pp'
|
6
|
+
require 'termory/optparsr_options/config'
|
7
|
+
require 'termory/optparsr_options/execute'
|
8
|
+
require 'termory/optparsr_options/database'
|
9
|
+
|
10
|
+
module Termory
|
11
|
+
class OptparsrTermory
|
12
|
+
Version = '1.0.0'
|
13
|
+
|
14
|
+
CODES = %w[iso-2022-jp shift_jis euc-jp utf8 binary]
|
15
|
+
CODE_ALIASES = { "jis" => "iso-2022-jp", "sjis" => "shift_jis" }
|
16
|
+
|
17
|
+
class ScriptOptions
|
18
|
+
attr_accessor :config, :config_type, :config_message, :database, :execute
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
self.config = false
|
22
|
+
self.execute = false
|
23
|
+
end
|
24
|
+
|
25
|
+
def define_options(parser)
|
26
|
+
init_config parser
|
27
|
+
# add additional options
|
28
|
+
Termory::OptpareOptions::Configs.define(parser, self)
|
29
|
+
Termory::OptpareOptions::Executes.define(parser, self)
|
30
|
+
Termory::OptpareOptions::Databases.define(parser, self)
|
31
|
+
end_config parser
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def init_config parser
|
37
|
+
parser.banner = "Usage: example.rb [options]"
|
38
|
+
parser.separator ""
|
39
|
+
parser.separator "Specific options:"
|
40
|
+
|
41
|
+
case ARGV.first
|
42
|
+
when "config"
|
43
|
+
self.config = true
|
44
|
+
when "exec"
|
45
|
+
self.execute = true
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def end_config parser
|
50
|
+
parser.separator ""
|
51
|
+
parser.separator "Common options:"
|
52
|
+
# No argument, shows at tail. This will print an options summary.
|
53
|
+
# Try it and see!
|
54
|
+
parser.on_tail("-h", "--help", "Show this message") do
|
55
|
+
puts parser
|
56
|
+
exit
|
57
|
+
end
|
58
|
+
# Another typical switch to print the version.
|
59
|
+
parser.on_tail("--version", "Show version") do
|
60
|
+
puts Version
|
61
|
+
exit
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
#
|
67
|
+
# Return a structure describing the options.
|
68
|
+
#
|
69
|
+
def parse(args)
|
70
|
+
# The options specified on the command line will be collected in
|
71
|
+
# *options*.
|
72
|
+
|
73
|
+
@options = ScriptOptions.new
|
74
|
+
@args = OptionParser.new do |parser|
|
75
|
+
@options.define_options(parser)
|
76
|
+
parser.parse!(args)
|
77
|
+
end
|
78
|
+
@options
|
79
|
+
end
|
80
|
+
|
81
|
+
attr_reader :parser, :options
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Termory
|
2
|
+
module OptpareOptions
|
3
|
+
class Executes
|
4
|
+
def self.define(parser, script_options)
|
5
|
+
# return unless script_options.config
|
6
|
+
|
7
|
+
# Specifies an optional option argument
|
8
|
+
parser.on("-c", "--create [COMMAND]", "alias.key 'your short command'", "Your config alias") do |message|
|
9
|
+
script_options.config_message = message || ''
|
10
|
+
script_options.config_type = 'create'
|
11
|
+
end
|
12
|
+
|
13
|
+
parser.on("-d", "--delete [COMMAND]", "alias.[key of command] eg: alias.ssh_10.10.10.10", "your key you want remove") do |message|
|
14
|
+
script_options.config_message = message || ''
|
15
|
+
script_options.config_type = 'delete'
|
16
|
+
end
|
17
|
+
|
18
|
+
parser.on("-l", "--list [COMMAND]", "alias.[key of command] eg: alias.ssh_10.10.10.10", "your key you want remove") do |message|
|
19
|
+
script_options.config_message = message || ''
|
20
|
+
script_options.config_type = 'list'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Termory
|
2
|
+
module OptpareOptions
|
3
|
+
class Databases
|
4
|
+
def self.define(parser, script_options)
|
5
|
+
# return unless script_options.execute
|
6
|
+
|
7
|
+
options = [:create, :drop, :upall, :downall ]
|
8
|
+
parser.on("--db [TYPE]", options, options, "Select transfer type (create, :drop, :upall, :downall)") do |db|
|
9
|
+
script_options.database = db
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/termory.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'termory/db'
|
2
|
+
require 'termory/optpare'
|
3
|
+
require 'termory/model'
|
4
|
+
|
5
|
+
module Termory
|
6
|
+
class Console
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
termory = Termory::OptparsrTermory.new
|
10
|
+
@options = termory.parse(ARGV)
|
11
|
+
end
|
12
|
+
|
13
|
+
def start
|
14
|
+
configs if @options.config
|
15
|
+
executes if @options.execute
|
16
|
+
Termory::Database.create if @options.database == :create
|
17
|
+
Termory::Database.drop if @options.database == :drop
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def configs
|
23
|
+
alias_key = @options.config_message
|
24
|
+
key = alias_key.gsub "alias.", ''
|
25
|
+
|
26
|
+
case @options.config_type
|
27
|
+
when 'create'
|
28
|
+
command = ARGV[1]
|
29
|
+
Termory::Model::Command.create key: key, command: command
|
30
|
+
puts "Done!"
|
31
|
+
when 'delete'
|
32
|
+
command = Termory::Model::Command.find_by(key: key)
|
33
|
+
return puts 'Not thing unset' if command.blank?
|
34
|
+
|
35
|
+
command.destroy
|
36
|
+
when 'list'
|
37
|
+
puts "num | id | key | command"
|
38
|
+
Termory::Model::Command.all.each_with_index do |command, num|
|
39
|
+
puts "#{num + 1}. | #{command.id} | #{command.key} | #{command.command}"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def executes
|
45
|
+
# alias_key = @options.config_message
|
46
|
+
# puts alias_key
|
47
|
+
# key = alias_key.gsub "alias.", ''
|
48
|
+
# puts ARGV
|
49
|
+
command = Termory::Model::Command.find_by(key: ARGV[1])
|
50
|
+
exec command.command
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: termory
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.0'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dang Thanh Tung
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-06-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activerecord
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sqlite3
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: A magic for life developer.
|
42
|
+
email: dangthanhtung.open@gmail.com
|
43
|
+
executables:
|
44
|
+
- termory
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- bin/termory
|
49
|
+
- lib/termory.rb
|
50
|
+
- lib/termory/config.rb
|
51
|
+
- lib/termory/db.rb
|
52
|
+
- lib/termory/main.rb
|
53
|
+
- lib/termory/migrate.rb
|
54
|
+
- lib/termory/model.rb
|
55
|
+
- lib/termory/optpare.rb
|
56
|
+
- lib/termory/optparsr_options/config.rb
|
57
|
+
- lib/termory/optparsr_options/database.rb
|
58
|
+
- lib/termory/optparsr_options/execute.rb
|
59
|
+
homepage: https://github.com/lupca/termory
|
60
|
+
licenses:
|
61
|
+
- MIT
|
62
|
+
metadata: {}
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options: []
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
requirements: []
|
78
|
+
rubygems_version: 3.2.3
|
79
|
+
signing_key:
|
80
|
+
specification_version: 4
|
81
|
+
summary: Termory, this is magic!
|
82
|
+
test_files: []
|