iniquity 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/iniquity +5 -5
  3. data/bin/ipm +63 -18
  4. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e63fce9eab662f58f524d3ff682798833b1febd4978b0f9f01a5ddbcb6e5ff74
4
- data.tar.gz: c581da51911119662d9f60fbe64677d0b6259671364b65faf7338aa88e2ca3dd
3
+ metadata.gz: 237ae3f5509308968278b3ffd3771ca323882eb5d874f3cd79e5ce167c0070fb
4
+ data.tar.gz: 541843f9fcd074224f85e4b25f0ea6cd675791c4dee0ccc7b36e4094b7eb2562
5
5
  SHA512:
6
- metadata.gz: 502a77652db94aa21b29f02506ec00cd0d0a94d3a1fef7b8898eab780a466eb1d66233088e4a3f7d076996c4b13547de83537d2017f63ef8b49d0262a2859b5d
7
- data.tar.gz: 8c9c30b023a5f4f097e76d97481f0af9b70da73cdbb0a745bf79e45acda4b5d5320892a7c5e7969ab4884eacb1f2ea7585601fdcd25dfd7546d3e959ada78666
6
+ metadata.gz: e5dbc92156a2a3a1e6d93a2b8cb2d8ac50b3eb6ab55347454e7bf6d650cd16595afb8068062fd0976d0ba1d3dc52dfce1a172639e65787b8fcd0168ef4c8ac9f
7
+ data.tar.gz: 3bf9c1af730875f6bfb4bfac1d47e571fc04de29080197fabe67239b7bf3a7f7f992039de290efc3b387ef06f8d08427e00983e801b7bbc271a534adf3fd7fab
data/bin/iniquity CHANGED
@@ -19,6 +19,8 @@
19
19
  # t h e i n i q u i t y b u l l e t i n b o a r d s y s t e m
20
20
  #==============================================================================
21
21
 
22
+ trap("INT") {exit}
23
+
22
24
  SYSTEM = ENV["INIQUITY_SYSTEM"] || Dir.pwd
23
25
  ENV["INIQUITY_SYSTEM"] = SYSTEM
24
26
 
@@ -30,12 +32,12 @@ class Telnet < EM::Connection
30
32
 
31
33
  def initialize
32
34
  super
33
- send_data "\nIniquity BBS 0.0.9 - Telnet/UTF_8\n"
35
+ send_data "\nIniquity BBS 0.0.10 - Telnet/UTF_8\n"
34
36
  end
35
37
 
36
38
  def post_init
37
39
 
38
- puts "-- Someone connected to Iniquity..."
40
+ puts "iniquity - Someone connected to Iniquity..."
39
41
 
40
42
  #IO.readlines("./modules/welcome.ans").each do |line|
41
43
  # send_data line.force_encoding(Encoding::IBM437).encode(Encoding::UTF_8)
@@ -54,7 +56,7 @@ class Telnet < EM::Connection
54
56
  end
55
57
 
56
58
  def unbind
57
- puts "-- Someone disconnected from Iniquity..."
59
+ puts "iniquity - Someone disconnected from Iniquity..."
58
60
  end
59
61
  end
60
62
 
@@ -137,5 +139,3 @@ EM.run do
137
139
  end
138
140
  end
139
141
  end
140
-
141
- trap("INT") {exit}
data/bin/ipm CHANGED
@@ -19,18 +19,20 @@
19
19
  # t h e i n i q u i t y p a c k a g e m a n a g e r
20
20
  #==============================================================================
21
21
 
22
+ trap("INT") {exit}
23
+
22
24
  SYSTEM = ENV["INIQUITY_SYSTEM"] || Dir.pwd
23
25
  ENV["INIQUITY_SYSTEM"] = SYSTEM
24
26
 
25
27
  require "inifile"
26
28
  require "github_api"
27
29
  require "highline"
28
- require 'net/http'
30
+ require "open-uri"
29
31
  require "zip"
30
32
 
31
33
  puts "\nipm - The Iniquity Package Manager.\n\n"
32
34
 
33
- # If "init" passed...
35
+ # If "init" passed.
34
36
  if ARGV[0] && ARGV[0] == "init"
35
37
  new_system_file = File.new(SYSTEM + "/iniquity.ini", "w")
36
38
  new_system_file.puts "[profile]\nname=NewBBS\n"
@@ -46,7 +48,7 @@ else
46
48
  end
47
49
 
48
50
  # Find all available ipm packages across all sources...
49
- packages = []
51
+ available_packages = []
50
52
 
51
53
  if CONFIG["ipm"]["sources"]
52
54
  CONFIG["ipm"]["sources"].split(",").each do |source|
@@ -55,28 +57,46 @@ if CONFIG["ipm"]["sources"]
55
57
 
56
58
  repositories.each do |pkg|
57
59
  if pkg.name.match(/^ip/)
58
- packages.push(pkg)
60
+ available_packages.push(pkg)
59
61
  end
60
62
  end
61
63
  end
62
64
  end
63
65
 
64
- # If "install" passed
66
+ installed_packages = []
67
+
68
+ Dir.chdir SYSTEM
69
+ Dir.glob('*').select { |pkg|
70
+ if File.directory? pkg
71
+ installed_packages.push pkg
72
+ end
73
+ }
74
+
75
+ # If "install" passed.
65
76
  if ARGV[0] && ARGV[0] == "install"
66
77
 
67
78
  ARGV.shift
68
79
 
69
80
  if ARGV[0]
70
81
  ARGV.each do |install|
71
- packages.each do |ipm|
82
+ available_packages.each do |ipm|
72
83
 
73
84
  if install == ipm.name
74
- Net::HTTP.start("github.com") do |http|
75
- response = http.get("/#{ipm.full_name}/archive/master.zip")
76
- installed = File.new("#{ipm.name}.zip", "w")
77
- installed.print(response.body)
78
- installed.close
85
+ next if Dir.exists? SYSTEM + "/#{ipm.name}"
86
+
87
+ # Need to wrap this sequence in a try/catch of some kind...
88
+
89
+ download = open("https://github.com/#{ipm.full_name}/archive/master.zip")
90
+ IO.copy_stream(download, SYSTEM + "/#{ipm.name}.zip")
91
+
92
+ Zip::File.open(SYSTEM + "/#{ipm.name}.zip") do |zip_file|
93
+ zip_file.each do |entry|
94
+ entry.extract(SYSTEM + "/#{entry.name}")
95
+ end
79
96
  end
97
+
98
+ FileUtils.mv SYSTEM + "/#{ipm.name}-master", SYSTEM + "/#{ipm.name}"
99
+ FileUtils.rm SYSTEM + "/#{ipm.name}.zip"
80
100
  puts "ipm - Installed #{ipm.name}\n\n"
81
101
  end
82
102
  end
@@ -86,12 +106,37 @@ if ARGV[0] && ARGV[0] == "install"
86
106
  end
87
107
  end
88
108
 
89
- # If no options dipslay the list of packages...
109
+ # If "uninstall" passed.
110
+ if ARGV[0] && ARGV[0] == "uninstall"
111
+
112
+ #ARGV.shift
113
+
114
+ if ARGV[0]
115
+ ARGV.each do |uninstall|
116
+ abort "ipm - Sorry, uninstall doesn't work yet.\n\n"
117
+ end
118
+ end
119
+ end
120
+
121
+ # If no options passed.
90
122
  unless ARGV[0]
91
- packages.each do |ipm|
92
- puts ipm.name
93
- puts ipm.description
94
- puts "https://github.com/#{ipm.full_name}/archive/master.zip"
95
- puts ""
123
+
124
+ if available_packages.length > 0
125
+ puts "ipm - Packages available for installation.\n\n"
126
+
127
+ available_packages.each do |ipm|
128
+ puts ipm.name
129
+ puts ipm.description
130
+ #puts "https://github.com/#{ipm.full_name}/archive/master.zip"
131
+ puts ""
132
+ end
96
133
  end
97
- end
134
+
135
+ if installed_packages.length > 0
136
+ puts "ipm - Packages currently installed.\n\n"
137
+
138
+ installed_packages.each do |ipm|
139
+ puts ipm
140
+ end
141
+ end
142
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iniquity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Stephenson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-05 00:00:00.000000000 Z
11
+ date: 2017-11-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A re-imagining of the iconic BBS software.
14
14
  email: ispyhumanfly@gmail.com
@@ -28,8 +28,7 @@ metadata:
28
28
  post_install_message:
29
29
  rdoc_options: []
30
30
  require_paths:
31
- - "./examples"
32
- - "./docs"
31
+ - "./doc"
33
32
  required_ruby_version: !ruby/object:Gem::Requirement
34
33
  requirements:
35
34
  - - ">="