fw 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7bb148004e801584801bb8c0fed6a22985f47526f66f386dfe0a7801de6dff14
4
+ data.tar.gz: aab35707c900293574644a9841d9fb24d42a0a05f00b2a2015c9fdbb6c881d42
5
+ SHA512:
6
+ metadata.gz: 8b1ae885df31bbe13f3be6a61338c3f18ae66ea2ffd06c8f702d74a77797c9cc5e5526f76e30f1db8093da62da5270d335973d39ed42ddb3dfcc9b83b2c57ef9
7
+ data.tar.gz: ddf8d7d6bea8283043b2ca158d8ae1bd000f81b376072309a80627a3d49cdc0e3b8c72a2e272601ab619c9b73b1c7458afaf41eafebf312ebd8542d75b5c0153
data/bin/fw ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # fw - filewatcher gem helper
4
+ # simplified filewatcher cli
5
+
6
+ require_relative '../lib/fw/core'
7
+
8
+ FWCLI.new.run(ARGV)
data/lib/fw/core.rb ADDED
@@ -0,0 +1,95 @@
1
+ require "yaml"
2
+ require "colored"
3
+ require "filewatcher"
4
+
5
+ require "fw/help"
6
+ require "fw/version"
7
+
8
+ class FWCLI
9
+ def initialize
10
+ @counter = 0
11
+ @home_dir = ENV["HOME"] || ENV["USERPROFILE"] || File.expand_path("~")
12
+ @fw_conf = File.join(@home_dir, ".fw.defaults.yml")
13
+ end
14
+
15
+ def puts_sep
16
+ width = begin
17
+ `stty size`.split.last.to_i
18
+ rescue
19
+ 80
20
+ end
21
+ puts "-" * width
22
+ end
23
+
24
+ def puts_banner
25
+ @counter += 1
26
+ puts "executing (#{@counter}): ".green << @cmd << "\non saving: ".green << @files.join(" ")
27
+ end
28
+
29
+ def set_default(files)
30
+ if files.nil? || files.empty?
31
+ puts "No default files specified. Use -d <files> to set default files."
32
+ exit 1
33
+ end
34
+ conf = {default_files: files.join(" ")}.to_yaml
35
+ puts conf
36
+ File.write(@fw_conf, conf)
37
+ end
38
+
39
+ def get_default
40
+ if File.exist?(@fw_conf)
41
+ YAML.load_file(@fw_conf)[:default_files].split(" ")
42
+ else
43
+ ["**/*.rb"] # Default
44
+ end
45
+ end
46
+
47
+ def parse_args(args)
48
+ # parse args, generate list of files and command (@cmd / @files).
49
+ fileset = false
50
+ cmdset = true
51
+ files = []
52
+ cmds = []
53
+ args.each do |a|
54
+ if a == "-f"
55
+ fileset = true
56
+ cmdset = false
57
+ elsif a == "-c"
58
+ fileset = false
59
+ cmdset = true
60
+ elsif fileset
61
+ files << a
62
+ elsif cmdset
63
+ cmds << a
64
+ end
65
+ end
66
+
67
+ if cmds.empty?
68
+ puts "Enter a command or show help (-h)"
69
+ exit 1
70
+ elsif cmds.first == "-v" || cmds.first == "--version"
71
+ puts FW::VERSION
72
+ exit 0
73
+ elsif cmds.first == "-h" || cmds.first == "--help"
74
+ puts FW::HELP
75
+ exit 0
76
+ elsif cmds.first == "-d" || cmds.first == "--default-files"
77
+ set_default(cmds[1..])
78
+ exit 0
79
+ else # Set needed values.
80
+ @files = files.empty? ? get_default : files
81
+ @cmd = cmds.join " "
82
+ end
83
+ end
84
+
85
+ def run(args)
86
+ parse_args(args)
87
+ puts_sep
88
+ puts_banner
89
+ Filewatcher.new(@files).watch do
90
+ system(@cmd)
91
+ puts_sep
92
+ puts_banner
93
+ end
94
+ end
95
+ end
data/lib/fw/help.rb ADDED
@@ -0,0 +1,28 @@
1
+ module FW
2
+ HELP = <<-FWHELP
3
+ fw is an helper tool for the ruby gem filewatcher.
4
+
5
+ FEATURES
6
+ - no need to quote argmuments by default
7
+ - clears screen of output after each run
8
+ - easier ruby development (**/*rb)
9
+
10
+ USAGE
11
+ (fw rake) - watch all ruby files, run rake when saved
12
+ (fw -f "**/*.c" -c make) - watch all c, recompile c
13
+ (fw -f test.js -c node test.js) - watch test.js, rerun
14
+
15
+ NOTES
16
+ if you are using the default file matcher, you don't have to use the -c flag.
17
+ also, all the arguments will be parsed and joined, so you dont have to quote
18
+ them. by default it listens for saves in all ruby files. you can specify a list
19
+ files with the -f flag:
20
+
21
+ -f '**/*.c'
22
+
23
+ then, specify which command to do with the -c flag:
24
+
25
+ -c make
26
+
27
+ FWHELP
28
+ end
data/lib/fw/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module FW
2
+ VERSION = "0.1.0"
3
+ end
data/readme.md ADDED
@@ -0,0 +1,23 @@
1
+ fw
2
+ ==
3
+
4
+ [![Gem Version](https://badge.fury.io/rb/fw.svg)](https://badge.fury.io/rb/fw)
5
+ [![MIT](https://img.shields.io/npm/l/alt.svg?style=flat)](http://jeremywrnr.com/mit-license)
6
+
7
+ fw - a simple file watcher utility.
8
+
9
+ ## setup
10
+
11
+ [sudo] gem install fw
12
+
13
+ ## usage
14
+
15
+ run rake when some rb file is saved (in this folder/subfolders):
16
+
17
+ fw rake
18
+
19
+ ## about
20
+
21
+ it's nice to have an automatic trigger for running tests.
22
+ this is a simple, non-IDE dependent way to get that.
23
+
metadata ADDED
@@ -0,0 +1,157 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fw
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Warner
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: 'true'
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: filewatcher
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: yaml
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rake
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rspec
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: gemspec
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: simplecov
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: standard
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ description: Simplified filewatcher CLI interface (command launcher).
125
+ email: jwrnr@berkeley.edu
126
+ executables:
127
+ - fw
128
+ extensions: []
129
+ extra_rdoc_files: []
130
+ files:
131
+ - bin/fw
132
+ - lib/fw/core.rb
133
+ - lib/fw/help.rb
134
+ - lib/fw/version.rb
135
+ - readme.md
136
+ homepage: http://github.com/jeremywrnr/fw-cli
137
+ licenses:
138
+ - MIT
139
+ metadata: {}
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 2.7.0
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubygems_version: 3.6.9
155
+ specification_version: 4
156
+ summary: Simplified filewatcher CLI interface.
157
+ test_files: []