Skip to content

Commit

Permalink
⚑: add emoji key and fix matching (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
frissyn committed May 14, 2021
1 parent 473ff8e commit f0cf97e
Showing 1 changed file with 30 additions and 28 deletions.
58 changes: 30 additions & 28 deletions dstrap.cr
Original file line number Diff line number Diff line change
@@ -1,38 +1,40 @@
require "colorize"

targets : Array(String) = [".", ".."]
emojis : Hash(String, String) = {
"LICENSE" => "βš–οΈ",
".*\.(md|rst|txt)" => "πŸ“",
".*\.(py|js|rb|go|rs|c|cs|cpp)$" => "πŸ–₯️",
"(config.json)|(.*\.(yml|yaml|toml|ini))$" => "βš™οΈ",
"(package.json)|(package-lock.json)|(.*\.lock)$" => "πŸ“¦"
}

# Display current directory
print("pwd".colorize(:red).mode(:bold), ':')
print(" #{File.basename(Dir.current)}/\n".colorize.mode(:bold))


# List current directory children
print("\n./".colorize.mode(:bold))
Dir.children(".").each do |d|
info = File.info("./#{d}")
aft = File.directory?(d) ? "/" : ""
pre = File.directory?(d) ? " πŸ“‚ " : " πŸ“ƒ "

print(
"\n#{pre}#{d.colorize.mode(:bold)}#{aft}".ljust(30),
info.permissions.to_s.split(' ')[0].colorize(:light_cyan),
" ", "#{info.size} B".colorize(:light_yellow).mode(:underline)
)
end
print("pwd".colorize(:red).mode(:bold))
print(": #{File.basename(Dir.current)}/\n".colorize.mode(:bold))


# List contents of each target
targets.each do |dirname|
print("\n#{dirname}/".colorize.mode(:bold))

Dir.children("#{dirname}/").each do |f|
file : File = File.new("#{dirname}/#{f}")
info : File::Info = file.info

suf : String = File.directory?(file.path) ? "/" : " "
pre : String = File.directory?(file.path) ? "πŸ“‚" : "πŸ“ƒ"

# List parent directory children
print("\n../".colorize.mode(:bold))
Dir.children("..").each do |d|
info = File.info("../#{d}")
aft = File.directory?(d) ? "/" : ""
pre = File.directory?(d) ? " πŸ“‚ " : " πŸ“ƒ "
emojis.each do |key, val|
pre = /#{key}/ =~ f ? val : pre
end

print(
"\n#{pre}#{d.colorize.mode(:bold)}#{aft}".ljust(30),
info.permissions.to_s.split(' ')[0].colorize(:light_cyan),
" ", "#{info.size} B".colorize(:light_yellow).mode(:underline)
)
print(
"\n #{pre} #{f}#{suf}".ljust(26, ' ').colorize.mode(:bold),
info.permissions.to_s.split(' ')[0].colorize(:light_cyan),
" ", "#{info.size} B".colorize(:light_yellow).mode(:underline)
)
end
end


Expand Down

1 comment on commit f0cf97e

@zplusfour
Copy link

@zplusfour zplusfour commented on f0cf97e May 14, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that!

Please sign in to comment.