All Projects → dborzov → Lsp

dborzov / Lsp

Licence: mit
lsp is like ls command but more human-friendly

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Lsp

Kcfinder
KCFinder web file manager
Stars: ✭ 399 (-19.88%)
Mutual labels:  filemanager
Lodestone
Personal Document Archiving (DMS, EDMS for Personal/Home Office use)
Stars: ✭ 426 (-14.46%)
Mutual labels:  filemanager
Sloth
Mac app that shows all open files, directories, sockets, pipes and devices in use by all running processes. Nice GUI for lsof.
Stars: ✭ 4,549 (+813.45%)
Mutual labels:  unix
Yaspin
A lightweight terminal spinner for Python with safe pipes and redirects 🎁
Stars: ✭ 413 (-17.07%)
Mutual labels:  unix
Jtc
JSON processing utility
Stars: ✭ 425 (-14.66%)
Mutual labels:  unix
Bash Boilerplate
A collection of Bash scripts for creating safe and useful command line programs.
Stars: ✭ 447 (-10.24%)
Mutual labels:  unix
Miktex
the MiKTeX source code
Stars: ✭ 385 (-22.69%)
Mutual labels:  unix
Sysinfo
A system handler to get information and interact with processes written in Rust
Stars: ✭ 479 (-3.82%)
Mutual labels:  unix
Elfinder
📁 Open-source file manager for web, written in JavaScript using jQuery and jQuery UI
Stars: ✭ 4,189 (+741.16%)
Mutual labels:  filemanager
Filestash
🦄 A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ...
Stars: ✭ 5,231 (+950.4%)
Mutual labels:  filemanager
Aquila
AquilaOS: UNIX-like Operating System
Stars: ✭ 413 (-17.07%)
Mutual labels:  unix
Kirc
A tiny IRC client written in POSIX C99.
Stars: ✭ 416 (-16.47%)
Mutual labels:  unix
Elvish
Elvish = Expressive Programming Language + Versatile Interactive Shell
Stars: ✭ 4,568 (+817.27%)
Mutual labels:  unix
Dotfiles
My macOS environment: zsh, Git, Visual Studio Code, etc.
Stars: ✭ 405 (-18.67%)
Mutual labels:  unix
Mario
Powerful Python pipelines for your shell
Stars: ✭ 469 (-5.82%)
Mutual labels:  unix
Ponyos
My Little Unix: Kernels are Magic!
Stars: ✭ 392 (-21.29%)
Mutual labels:  unix
Websync
websync is intended to be an rsync manager, where rsync tasks can be added, scheduled and maintained in a sane manner.
Stars: ✭ 432 (-13.25%)
Mutual labels:  unix
Privilege Escalation Awesome Scripts Suite
PEASS - Privilege Escalation Awesome Scripts SUITE (with colors)
Stars: ✭ 7,144 (+1334.54%)
Mutual labels:  unix
Gtfobins.github.io
GTFOBins is a curated list of Unix binaries that can be used to bypass local security restrictions in misconfigured systems
Stars: ✭ 6,030 (+1110.84%)
Mutual labels:  unix
S6
The s6 supervision suite.
Stars: ✭ 452 (-9.24%)
Mutual labels:  unix

lsp: list files in a mildly human-frendlier manner

Build Status

lsp lists files, like ls command, but it does not attempt to meet that archaic POSIX specification, so instead of this:

(bash)$ ls -l

total 16
-rw-r--r--  1 peterborzov  staff  1079  9 Aug 00:22 LICENSE
-rw-r--r--  1 peterborzov  staff    60  9 Aug 00:22 README.md

you get this: screenshot

Features

File Groups

Files grouped by type (with -l key or in modes when file type not shown). lsp distinguishes binary, text and executable files, symlinks and is aware of weird types like devices and unix socket thingy: lsp can show files grouped by type

Modification time in human-friendly format

-t key for when you are interested in modification time. It turns to the mode that makes most sense to me when I want to look up modtimes, sorted within file groups from recent to latest: Sometimes relative times are not very readible as well (like when you are interested in a specific date), use two flags -sl to show the full UTC timestamp in properties.

Size in human-friendly format

-s key, similarly to modtime key, shows file sizes and sorts within file groups from largest to smallest:

Async Timeout

The file information is collected asynchronously, BFS-like, with a separate thread for each file and a timeout threshold.

That means that the execution is not going to freeze because of some low-response device driver (like external hard drive or optical drive) or collecting info about a huge directory.

Align by left

I have been playing with aligning files and descriptions by center, and I like that you can see files with the same extension right away, but there are deifinitely cases when it gets weird. For now, there is -p key to render the file table in the left-aligned columns:

Todo before v1.0

  • [ ] Rewrite outline formatting: with the current design too much space is wasted, long filenames break things
  • [x] Mark executable files as such
  • Think about how to represent file rights and ownership
  • Approach hidden and generated files as outlined in issue#3
  • Better test coverage
  • Expand in this README on philosophy of the project (tool in the unix way, minimize surprises, nothing's to be configurable)
  • Think of TODO list points

Github Issues and pull requests are very welcome, feel free to message me if you are considering contributing. See CONTRIBUTING.md for intro to the codebase

Installation

lsp is written in the go programming language. It can be installed using go get.

 $ go get github.com/dborzov/lsp

Then make sure that your $PATH includes the $GOPATH/bin directory. To do that, you can put this line your ~/.bash_profile or .zshrc:

export PATH=$PATH:$GOPATH/bin

Once it becomes more functional, lsp will be distributed in native binaries (without dependencies) for all platforms (Linux, MacOS, Windows).

Misc

MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].