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