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 +7 -0
- data/bin/fw +8 -0
- data/lib/fw/core.rb +95 -0
- data/lib/fw/help.rb +28 -0
- data/lib/fw/version.rb +3 -0
- data/readme.md +23 -0
- metadata +157 -0
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
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
data/readme.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
fw
|
|
2
|
+
==
|
|
3
|
+
|
|
4
|
+
[](https://badge.fury.io/rb/fw)
|
|
5
|
+
[](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: []
|