flammarion-utils 0.2.1 → 0.3.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.
@@ -1,22 +1,22 @@
1
- #!/usr/bin/env ruby
2
-
3
- # Emoji Keyboard Example
4
- #
5
- # A simple example that will output the selected emoji to STDOUT and a also to
6
- # a seperate pane.
7
-
8
- require 'flammarion'
9
-
10
- f = Flammarion::Engraving.new
11
- f.style "font-size", "200%"
12
- f.pane("output", weight: 0.1).send("> ")
13
- f.emoji.keys.each do |emoji|
14
- f.button(emoji, escape_icons: true, inline: true) do
15
- unicode_char = f.emoji[emoji]['unicode'].last.split("-").map(&:hex).pack("U")
16
- f.pane("output").send unicode_char
17
- f.status(f.emoji[emoji]['unicode'].last)
18
- print unicode_char
19
- end
20
- end
21
-
22
- f.wait_until_closed
1
+ #!/usr/bin/env ruby
2
+
3
+ # Emoji Keyboard Example
4
+ #
5
+ # A simple example that will output the selected emoji to STDOUT and a also to
6
+ # a seperate pane.
7
+
8
+ require 'flammarion'
9
+
10
+ f = Flammarion::Engraving.new
11
+ f.style "font-size", "200%"
12
+ f.pane("output", weight: 0.1).send("> ")
13
+ f.emoji.keys.each do |emoji|
14
+ f.button(emoji, escape_icons: true, inline: true) do
15
+ unicode_char = f.emoji[emoji]['unicode'].last.split("-").map(&:hex).pack("U")
16
+ f.pane("output").send unicode_char
17
+ f.status(f.emoji[emoji]['unicode'].last)
18
+ print unicode_char
19
+ end
20
+ end
21
+
22
+ f.wait_until_closed
@@ -1,16 +1,16 @@
1
- #!/usr/bin/env ruby
2
-
3
- # Engrave Example
4
- #
5
- # A simple example that will print ARGF to a flammarion engraving
6
-
7
- require 'flammarion'
8
-
9
- f = Flammarion::Engraving.new(title:ARGF.filename, exit_on_disconnect:true)
10
- f.status("Flammarion version: #{Flammarion::VERSION.green}", :right)
11
-
12
- ARGF.each_line do |l|
13
- f.print l
14
- end
15
-
16
- f.wait_until_closed
1
+ #!/usr/bin/env ruby
2
+
3
+ # Engrave Example
4
+ #
5
+ # A simple example that will print ARGF to a flammarion engraving
6
+
7
+ require 'flammarion'
8
+
9
+ f = Flammarion::Engraving.new(title:ARGF.filename, exit_on_disconnect:true)
10
+ f.status("Flammarion version: #{Flammarion::VERSION.green}", :right)
11
+
12
+ ARGF.each_line do |l|
13
+ f.print l
14
+ end
15
+
16
+ f.wait_until_closed
@@ -1,40 +1,40 @@
1
- #!/usr/bin/env ruby
2
-
3
- # Repl Example
4
- #
5
- # A simple interactive example for running a repl in flammarion
6
- require 'flammarion'
7
-
8
- class FlammarionRepl
9
- def initialize
10
- @f = Flammarion::Engraving.new(exit_on_disconnect:true)
11
- @f.subpane("output")
12
- @f.input("> ", autoclear:true, history:true) {|msg| repl(msg['text']) }
13
- end
14
-
15
- def repl(str)
16
- @f.subpane("output").puts "> #{str}"
17
- result =
18
- begin
19
- eval(str).to_s.green
20
- rescue Exception => e
21
- "#{e}".red
22
- end
23
- @f.subpane("output").puts result
24
- end
25
-
26
- def puts(str)
27
- @f.subpane("output").puts "#{str}"
28
- end
29
- end
30
-
31
- module Kernel
32
- def puts(str)
33
- $repl.puts(str)
34
- end
35
- end
36
-
37
- if __FILE__ == $0 then
38
- $repl = FlammarionRepl.new
39
- $repl.wait_until_closed
40
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ # Repl Example
4
+ #
5
+ # A simple interactive example for running a repl in flammarion
6
+ require 'flammarion'
7
+
8
+ class FlammarionRepl
9
+ def initialize
10
+ @f = Flammarion::Engraving.new(exit_on_disconnect:true)
11
+ @f.subpane("output")
12
+ @f.input("> ", autoclear:true, history:true) {|msg| repl(msg['text']) }
13
+ end
14
+
15
+ def repl(str)
16
+ @f.subpane("output").puts "> #{str}"
17
+ result =
18
+ begin
19
+ eval(str).to_s.green
20
+ rescue Exception => e
21
+ "#{e}".red
22
+ end
23
+ @f.subpane("output").puts result
24
+ end
25
+
26
+ def puts(str)
27
+ @f.subpane("output").puts "#{str}"
28
+ end
29
+ end
30
+
31
+ module Kernel
32
+ def puts(str)
33
+ $repl.puts(str)
34
+ end
35
+ end
36
+
37
+ if __FILE__ == $0 then
38
+ $repl = FlammarionRepl.new
39
+ $repl.wait_until_closed
40
+ end
@@ -1,31 +1,31 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # Service Example
4
- #
5
- # A simple example that lists the services on the system with buttons to start
6
- # and stop them. Uses the `service` command to interace with services.
7
- require 'flammarion'
8
- require 'colorize'
9
- require 'ostruct'
10
-
11
- # First a list of all the services running on the system
12
- services = `service --status-all`.split("\n").map{|l| m = l.match(/ \[ (.) \]\s*(\w+)/); o = OpenStruct.new; o.status = m[1]; o.name = m[2]; o }
13
-
14
- # Now create a new engraving to display all this
15
- f = Flammarion::Engraving.new(exit_on_disconnect:true)
16
-
17
- # Now show everything in a table:
18
- f.table(
19
-
20
- # Headers for readability. Flammarion can handle standard ANSI colors just fine.
21
- [["Status", "Service"].map{|h|h.light_magenta}] +
22
- services.collect do |service|
23
-
24
- # Create buttons which we can embed in the text. When they are clicked, the
25
- # blocks will be called.
26
- start_button = f.embedded_button("Start") { f.status "Starting #{service.name}"; system("service start #{service.name}"); f.status "Started #{service.name}".green}
27
- stop_button = f.embedded_button("Stop") { f.status "Stopping #{service.name}"; system("service stop #{service.name}"); f.status "Stopped #{service.name}".green}
28
- [service.status, service.name, start_button, stop_button]
29
- end, escape_html:false)
30
-
31
- f.wait_until_closed
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Service Example
4
+ #
5
+ # A simple example that lists the services on the system with buttons to start
6
+ # and stop them. Uses the `service` command to interace with services.
7
+ require 'flammarion'
8
+ require 'colorize'
9
+ require 'ostruct'
10
+
11
+ # First a list of all the services running on the system
12
+ services = `service --status-all`.split("\n").map{|l| m = l.match(/ \[ (.) \]\s*(\w+)/); o = OpenStruct.new; o.status = m[1]; o.name = m[2]; o }
13
+
14
+ # Now create a new engraving to display all this
15
+ f = Flammarion::Engraving.new(exit_on_disconnect:true)
16
+
17
+ # Now show everything in a table:
18
+ f.table(
19
+
20
+ # Headers for readability. Flammarion can handle standard ANSI colors just fine.
21
+ [["Status", "Service"].map{|h|h.light_magenta}] +
22
+ services.collect do |service|
23
+
24
+ # Create buttons which we can embed in the text. When they are clicked, the
25
+ # blocks will be called.
26
+ start_button = f.embedded_button("Start") { f.status "Starting #{service.name}"; system("service start #{service.name}"); f.status "Started #{service.name}".green}
27
+ stop_button = f.embedded_button("Stop") { f.status "Stopping #{service.name}"; system("service stop #{service.name}"); f.status "Stopped #{service.name}".green}
28
+ [service.status, service.name, start_button, stop_button]
29
+ end, escape_html:false)
30
+
31
+ f.wait_until_closed
data/bin/frake CHANGED
@@ -1,34 +1,34 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # frake.rb: Wraps a little gui around rake tasks
4
-
5
- require 'flammarion'
6
- require 'open3'
7
-
8
- f = Flammarion::Engraving.new(exit_on_disconnect:true)
9
- f.title "frake #{Dir.pwd}"
10
-
11
- def run(task)
12
- f2 = Flammarion::Engraving.new
13
- f2.title task
14
- f2.puts "Running #{task.light_magenta}"
15
- Open3.popen3(task) do |i,o,e,t|
16
- Thread.new {e.each_line{|l| f2.print l.red}}
17
- o.each_line {|l| f2.print l}
18
- f2.status t.value.success? ? "Done!".light_green : "Failed!".light_red
19
- end
20
- end
21
-
22
- f.markdown "# Rake Tasks: "
23
- `rake -T`.each_line do |l|
24
- f.break
25
- parts = l.split("#")
26
- task = parts[0]
27
- desc = parts[1]
28
- f.puts desc
29
- f.button(task) do
30
- run(task)
31
- end
32
- end
33
-
34
- f.wait_until_closed
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # frake.rb: Wraps a little gui around rake tasks
4
+
5
+ require 'flammarion'
6
+ require 'open3'
7
+
8
+ f = Flammarion::Engraving.new(exit_on_disconnect:true)
9
+ f.title "frake #{Dir.pwd}"
10
+
11
+ def run(task)
12
+ f2 = Flammarion::Engraving.new
13
+ f2.title task
14
+ f2.puts "Running #{task.light_magenta}"
15
+ Open3.popen3(task) do |i,o,e,t|
16
+ Thread.new {e.each_line{|l| f2.print l.red}}
17
+ o.each_line {|l| f2.print l}
18
+ f2.status t.value.success? ? "Done!".light_green : "Failed!".light_red
19
+ end
20
+ end
21
+
22
+ f.markdown "# Rake Tasks: "
23
+ `rake -T`.each_line do |l|
24
+ f.break
25
+ parts = l.split("#")
26
+ task = parts[0]
27
+ desc = parts[1]
28
+ f.puts desc
29
+ f.button(task) do
30
+ run(task)
31
+ end
32
+ end
33
+
34
+ f.wait_until_closed
data/bin/fwrap CHANGED
@@ -1,37 +1,37 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # A simple example that will wrap any command into a flammarion window.
4
- require 'open3'
5
- require 'flammarion'
6
-
7
- f = Flammarion::Engraving.new(exit_on_disconnect:true)
8
- i, o, e, t = Open3.popen3(*ARGV.to_a)
9
-
10
- f.subpane("out").print("")
11
-
12
- f.subpane("in").input("> ", autoclear:true, history:true) do |msg|
13
- i.puts msg['text']
14
- end
15
-
16
- f.subpane("in").button("Close (Ctrl+D)") do
17
- f.subpane("in").clear
18
- i.close
19
- t.value.success? ? f.status("Exit Success".light_green) : f.status("Exit code: #{t.value}".light_red)
20
- end
21
-
22
- Thread.new do
23
- while l = e.readpartial(4096)
24
- f.subpane("out").print l.red
25
- end
26
- end
27
-
28
- begin
29
- while l = o.readpartial(4096)
30
- f.subpane("out").print l
31
- end
32
- rescue EOFError
33
- f.subpane("in").clear
34
- t.value.success? ? f.status("Exit Success".light_green) : f.status("Exit code: #{t.value}".light_red)
35
- end
36
-
37
- f.wait_until_closed
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # A simple example that will wrap any command into a flammarion window.
4
+ require 'open3'
5
+ require 'flammarion'
6
+
7
+ f = Flammarion::Engraving.new(exit_on_disconnect:true)
8
+ i, o, e, t = Open3.popen3(*ARGV.to_a)
9
+
10
+ f.subpane("out").print("")
11
+
12
+ f.subpane("in").input("> ", autoclear:true, history:true) do |msg|
13
+ i.puts msg['text']
14
+ end
15
+
16
+ f.subpane("in").button("Close (Ctrl+D)") do
17
+ f.subpane("in").clear
18
+ i.close
19
+ t.value.success? ? f.status("Exit Success".light_green) : f.status("Exit code: #{t.value}".light_red)
20
+ end
21
+
22
+ Thread.new do
23
+ while l = e.readpartial(4096)
24
+ f.subpane("out").print l.red
25
+ end
26
+ end
27
+
28
+ begin
29
+ while l = o.readpartial(4096)
30
+ f.subpane("out").print l
31
+ end
32
+ rescue EOFError
33
+ f.subpane("in").clear
34
+ t.value.success? ? f.status("Exit Success".light_green) : f.status("Exit code: #{t.value}".light_red)
35
+ end
36
+
37
+ f.wait_until_closed
@@ -1,16 +1,16 @@
1
- #!/usr/bin/env ruby
2
- require 'flammarion'
3
-
4
- pwd = Dir.pwd
5
- f = Flammarion::Engraving.new(title:pwd)
6
- f.orientation = :horizontal
7
- f.markdown("Choose a file ->")
8
- f.pane("files", weight:0.3)
9
-
10
- (Dir["**/*.md"] + Dir["**/*.markdown"]).each do |file|
11
- f.pane("files", weight:0.3).button(file) do
12
- f.markdown(File.read(file), replace:true)
13
- end
14
- end
15
-
16
- f.wait_until_closed
1
+ #!/usr/bin/env ruby
2
+ require 'flammarion'
3
+
4
+ pwd = Dir.pwd
5
+ f = Flammarion::Engraving.new(title:pwd)
6
+ f.orientation = :horizontal
7
+ f.markdown("Choose a file ->")
8
+ f.pane("files", weight:0.3)
9
+
10
+ (Dir["**/*.md"] + Dir["**/*.markdown"]).each do |file|
11
+ f.pane("files", weight:0.3).button(file) do
12
+ f.markdown(File.read(file), replace:true)
13
+ end
14
+ end
15
+
16
+ f.wait_until_closed
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Repl Example
4
+ #
5
+ # A simple interactive example for running a repl in flammarion
6
+ require 'flammarion'
7
+
8
+ class FlammarionRepl
9
+ def initialize
10
+ @f = Flammarion::Engraving.new(exit_on_disconnect:true)
11
+ @f.subpane("output")
12
+ @f.input("> ", autoclear:true, history:true) {|msg| repl(msg['text']) }
13
+ end
14
+
15
+ def repl(str)
16
+ @f.subpane("output").puts "> #{str}"
17
+ result =
18
+ begin
19
+ eval(str).to_s.green
20
+ rescue Exception => e
21
+ "#{e}".red
22
+ end
23
+ @f.subpane("output").puts result
24
+ end
25
+
26
+ def puts(str)
27
+ @f.subpane("output").puts "#{str}"
28
+ end
29
+ end
30
+
31
+ module Kernel
32
+ def puts(str)
33
+ $repl.puts(str)
34
+ end
35
+ end
36
+
37
+ if __FILE__ == $0 then
38
+ $repl = FlammarionRepl.new
39
+ $repl.wait_until_closed
40
+ end
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Service Example
4
+ #
5
+ # A simple example that lists the services on the system with buttons to start
6
+ # and stop them. Uses the `service` command to interace with services.
7
+ require 'flammarion'
8
+ require 'colorize'
9
+ require 'ostruct'
10
+
11
+ # First a list of all the services running on the system
12
+ services = `service --status-all`.split("\n").map{|l| m = l.match(/ \[ (.) \]\s*(\w+)/); o = OpenStruct.new; o.status = m[1]; o.name = m[2]; o }
13
+
14
+ # Now create a new engraving to display all this
15
+ f = Flammarion::Engraving.new(exit_on_disconnect:true)
16
+
17
+ # Now show everything in a table:
18
+ f.table(
19
+
20
+ # Headers for readability. Flammarion can handle standard ANSI colors just fine.
21
+ [["Status", "Service"].map{|h|h.light_magenta}] +
22
+ services.collect do |service|
23
+
24
+ # Create buttons which we can embed in the text. When they are clicked, the
25
+ # blocks will be called.
26
+ start_button = f.embedded_button("Start") { f.status "Starting #{service.name}"; system("service start #{service.name}"); f.status "Started #{service.name}".green}
27
+ stop_button = f.embedded_button("Stop") { f.status "Stopping #{service.name}"; system("service stop #{service.name}"); f.status "Stopped #{service.name}".green}
28
+ [service.status, service.name, start_button, stop_button]
29
+ end, escape_html:false)
30
+
31
+ f.wait_until_closed