notenote 0.0.4 → 0.0.6
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 +4 -4
- data/lib/note/cli.rb +59 -1
- data/lib/note/config.json.template +1 -0
- data/lib/note/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f78d842dc42121cfc84e9610b0b7869b6c968f0dcaa4874dda75d618de9bfa81
|
4
|
+
data.tar.gz: 7b2efa649831bb0ce998974cfab33879864486118fab60baaa4ea313f4bf0509
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e3962ada9564374f722f51ce976e99934c7d3bdda17a165f0c7f856a4b88d3ea53d588d4c0a916b77c8f20250cd01e2c75b06644e1ba3d3cdbe4c40118c878d
|
7
|
+
data.tar.gz: 7937389c96e845c4f96e70dcc005ae272be582fe0068c83deff63fb773a713a215c4b196853c1e4c5cc0e40e282b5f3b47749a4c65ca4be6a6e4de8d0da97fef
|
data/lib/note/cli.rb
CHANGED
@@ -64,6 +64,14 @@ module Note
|
|
64
64
|
end tell
|
65
65
|
END
|
66
66
|
|
67
|
+
0
|
68
|
+
elsif args.first == "push"
|
69
|
+
push_notes
|
70
|
+
|
71
|
+
0
|
72
|
+
elsif args.first == "push!"
|
73
|
+
push_notes(force: true)
|
74
|
+
|
67
75
|
0
|
68
76
|
else
|
69
77
|
puts "Hm, I don't know this command 🤔"
|
@@ -104,8 +112,9 @@ module Note
|
|
104
112
|
|
105
113
|
def create_note_file(file_name: "notes.md")
|
106
114
|
notes_folder = notenote_config["notes_folder"]
|
115
|
+
date_format = notenote_config["date_format"]
|
107
116
|
|
108
|
-
today_folder = File.join(notes_folder, Time.now.strftime(
|
117
|
+
today_folder = File.join(notes_folder, Time.now.strftime(date_format))
|
109
118
|
|
110
119
|
Dir.mkdir(today_folder) unless Dir.exist?(today_folder)
|
111
120
|
|
@@ -139,5 +148,54 @@ module Note
|
|
139
148
|
def unindent(str)
|
140
149
|
str.gsub(/^#{str.scan(/^[ \t]+(?=\S)/).min}/, "")
|
141
150
|
end
|
151
|
+
|
152
|
+
# This function parses the output of diffstat:
|
153
|
+
#
|
154
|
+
# git diff HEAD | diffstat -Cm
|
155
|
+
#
|
156
|
+
# notes.md | 2 ++
|
157
|
+
# testing.md | 5 ----!
|
158
|
+
# 2 files changed, 2 insertions(+), 4 deletions(-), 1 modification(!)
|
159
|
+
#
|
160
|
+
# { "+" => 2, "-" => 4, "!" => 1}
|
161
|
+
def git_diff_stat
|
162
|
+
Dir.chdir(notenote_config["notes_folder"])
|
163
|
+
|
164
|
+
raw_diffstat = `git diff HEAD | diffstat -Cm`
|
165
|
+
|
166
|
+
raw_changes = raw_diffstat.split("\n").last.split(",").map(&:strip)
|
167
|
+
|
168
|
+
raw_changes.each_with_object({}) do |change, o|
|
169
|
+
next unless change =~ /[\+\-\!]/
|
170
|
+
|
171
|
+
type = change.scan(/([\+\-\!])/)[0][0]
|
172
|
+
num = change.scan(/\A(\d+)\s/)[0][0]
|
173
|
+
|
174
|
+
o[type] = num
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
def notes_changed_or_deleted?
|
179
|
+
diff_stat = git_diff_stat
|
180
|
+
|
181
|
+
diff_stat.member?("-") || diff_stat.member?("!")
|
182
|
+
end
|
183
|
+
|
184
|
+
def push_notes(force: false)
|
185
|
+
if !force && notes_changed_or_deleted?
|
186
|
+
puts "Some of the notes were mofified or deleted. Please, check them up and push manually."
|
187
|
+
return
|
188
|
+
end
|
189
|
+
|
190
|
+
Dir.chdir(notenote_config["notes_folder"])
|
191
|
+
|
192
|
+
system "git add ."
|
193
|
+
|
194
|
+
system %(git commit -m "#{notenote_config["commit_message"]}")
|
195
|
+
|
196
|
+
system "git push"
|
197
|
+
|
198
|
+
puts "Pushed. ✅"
|
199
|
+
end
|
142
200
|
end
|
143
201
|
end
|
data/lib/note/version.rb
CHANGED