notenote 0.0.1 → 0.0.4
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 +115 -8
- data/lib/note/config.json.template +5 -0
- data/lib/note/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b6879e1aa7c6522ca4115b8cc9e2bb35e5b35c56d3d844546fbf5207472bd6b
|
4
|
+
data.tar.gz: 1b88305949d1ae6d7d8b1b63a0704942f8b3bf14df7ddb47b9c976675e079b46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c710812b969e74bc21283132d006af95fa2883cbf64a510cf6bc32cf1170998ee770db5243cca139593094c1f181293781f6758e4d60734773cd6dbc5eab4c2
|
7
|
+
data.tar.gz: 582f0e27bb423fc3f54f5997c4d42d4c1ebf54f637e2a2931921ab4016af1e8f5e7ba4e5064a62ff5608d48b02dcdffc76143e81d572f6e40df400717011a786
|
data/lib/note/cli.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "optparse"
|
4
|
+
require "json"
|
4
5
|
|
5
6
|
$LOAD_PATH << File.expand_path(__dir__)
|
6
7
|
|
@@ -10,27 +11,133 @@ module Note
|
|
10
11
|
if args.first == "init"
|
11
12
|
require "fileutils"
|
12
13
|
|
13
|
-
|
14
|
+
notes_folder = args[1]
|
14
15
|
|
15
|
-
if
|
16
|
+
if notes_folder.nil?
|
16
17
|
puts "Provide a valid folder name, please. ☺️"
|
17
18
|
return
|
18
19
|
end
|
19
20
|
|
20
|
-
if Dir.exists?(
|
21
|
-
puts %(The folder named "#{
|
21
|
+
if Dir.exists?(notes_folder)
|
22
|
+
puts %(The folder named "#{notes_folder}" already exists. ☺️)
|
22
23
|
return
|
24
|
+
else
|
25
|
+
Dir.mkdir(notes_folder)
|
23
26
|
end
|
24
27
|
|
25
|
-
Dir.
|
26
|
-
|
27
|
-
|
28
|
-
|
28
|
+
notes_folder_full_path = File.join(Dir.pwd, notes_folder)
|
29
|
+
|
30
|
+
create_config_file(notes_folder: notes_folder_full_path)
|
31
|
+
create_readme_file
|
32
|
+
create_note_file
|
33
|
+
|
34
|
+
|
35
|
+
puts %(Your note folder "#{notes_folder}" and the first log file are created. You're ready to go! 🚀)
|
36
|
+
|
37
|
+
0
|
38
|
+
elsif args.first == "on"
|
39
|
+
note_name = args[1..-1].join(" ") # "tax return" for `note on tax return``
|
40
|
+
file_name = note_name.gsub(/[^a-z0-9\-]+/, "_")
|
41
|
+
|
42
|
+
create_note_file(file_name: "#{file_name}.md")
|
43
|
+
|
44
|
+
0
|
45
|
+
elsif args.first == "all"
|
46
|
+
notes_folder = notenote_config["notes_folder"]
|
47
|
+
|
48
|
+
open_editor(path: notes_folder)
|
49
|
+
|
50
|
+
0
|
51
|
+
elsif args.first == "folder"
|
52
|
+
unless mac?
|
53
|
+
puts "Unfortunately, this command works only on Mac devices atm. Please, make a PR to support your OS. 🙏"
|
54
|
+
end
|
55
|
+
|
56
|
+
notes_folder = notenote_config["notes_folder"]
|
57
|
+
|
58
|
+
osascript <<-END
|
59
|
+
tell application "Terminal"
|
60
|
+
activate
|
61
|
+
tell application "System Events" to keystroke "t" using command down
|
62
|
+
do script "cd #{notes_folder}" in front window
|
63
|
+
do script "clear" in front window
|
64
|
+
end tell
|
65
|
+
END
|
29
66
|
|
30
67
|
0
|
31
68
|
else
|
32
69
|
puts "Hm, I don't know this command 🤔"
|
70
|
+
|
71
|
+
0
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def create_readme_file
|
78
|
+
notes_folder = notenote_config["notes_folder"]
|
79
|
+
|
80
|
+
readme_file = File.join(notes_folder, "README.md")
|
81
|
+
|
82
|
+
File.open(readme_file, "w") do |file|
|
83
|
+
file.puts unindent <<-TEXT
|
84
|
+
# Daily notes
|
85
|
+
|
86
|
+
|
87
|
+
TEXT
|
33
88
|
end
|
34
89
|
end
|
90
|
+
|
91
|
+
def create_config_file(notes_folder:)
|
92
|
+
config_template = File.read(File.join(File.dirname(__FILE__), "config.json.template"))
|
93
|
+
|
94
|
+
config = config_template % {
|
95
|
+
notes_folder: notes_folder
|
96
|
+
}
|
97
|
+
|
98
|
+
config_file = File.join(Dir.home, ".notenote")
|
99
|
+
|
100
|
+
File.open(config_file, "w") do |f|
|
101
|
+
f.puts(config)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def create_note_file(file_name: "notes.md")
|
106
|
+
notes_folder = notenote_config["notes_folder"]
|
107
|
+
|
108
|
+
today_folder = File.join(notes_folder, Time.now.strftime("%d-%m-%Y"))
|
109
|
+
|
110
|
+
Dir.mkdir(today_folder) unless Dir.exist?(today_folder)
|
111
|
+
|
112
|
+
note_file = File.join(today_folder, file_name)
|
113
|
+
|
114
|
+
FileUtils.touch(note_file)
|
115
|
+
|
116
|
+
open_editor(path: note_file)
|
117
|
+
end
|
118
|
+
|
119
|
+
def notenote_config
|
120
|
+
config_file = File.join(Dir.home, ".notenote")
|
121
|
+
|
122
|
+
JSON.parse(File.read(config_file))
|
123
|
+
end
|
124
|
+
|
125
|
+
def open_editor(path:)
|
126
|
+
editor_command = notenote_config["editor_command"]
|
127
|
+
|
128
|
+
system("#{editor_command} #{path}")
|
129
|
+
end
|
130
|
+
|
131
|
+
def mac?
|
132
|
+
RbConfig::CONFIG["host_os"] =~ /darwin/
|
133
|
+
end
|
134
|
+
|
135
|
+
def osascript(script)
|
136
|
+
system "osascript", *unindent(script).split(/\n/).map { |line| ['-e', line] }.flatten
|
137
|
+
end
|
138
|
+
|
139
|
+
def unindent(str)
|
140
|
+
str.gsub(/^#{str.scan(/^[ \t]+(?=\S)/).min}/, "")
|
141
|
+
end
|
35
142
|
end
|
36
143
|
end
|
data/lib/note/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: notenote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anatoli Makarevich
|
@@ -78,6 +78,7 @@ files:
|
|
78
78
|
- bin/note
|
79
79
|
- lib/note.rb
|
80
80
|
- lib/note/cli.rb
|
81
|
+
- lib/note/config.json.template
|
81
82
|
- lib/note/version.rb
|
82
83
|
homepage: https://github.com/makaroni4/note
|
83
84
|
licenses:
|