mirror of
https://github.com/cheat/cheat.git
synced 2025-09-04 11:08:29 +02:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
e7a1a296e3 | |||
f7c093bec0 | |||
c47b7f81aa | |||
52081b97ac | |||
1dda796e7c | |||
67469b0afa | |||
4f8431a600 | |||
5301442f7c | |||
cd45efcdec | |||
c31786fc5b | |||
934c36ad77 | |||
2c0099c28a | |||
749173f1f6 | |||
33e33dc7b7 | |||
201cd1d629 |
23
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
23
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Submit a bug report
|
||||||
|
title: ''
|
||||||
|
labels: 'bug'
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Thanks for submitting a bug report. Please provide the following information:
|
||||||
|
|
||||||
|
**A description of the problem**
|
||||||
|
Describe the problem here.
|
||||||
|
|
||||||
|
**cheat version info**
|
||||||
|
Please paste the output of `cheat -v` here.
|
||||||
|
|
||||||
|
**cheat configuration info**
|
||||||
|
If your bug pertains to how cheatsheets are loaded and/or displayed, please
|
||||||
|
paste here the following information:
|
||||||
|
|
||||||
|
1. The output of `cheat -d`
|
||||||
|
2. The contents of your `conf.yml` file
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ''
|
||||||
|
labels: 'enhancement'
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
@ -178,11 +178,11 @@ To search (by regex) for cheatsheets that contain an IP address:
|
|||||||
cheat -r -s '(?:[0-9]{1,3}\.){3}[0-9]{1,3}'
|
cheat -r -s '(?:[0-9]{1,3}\.){3}[0-9]{1,3}'
|
||||||
```
|
```
|
||||||
|
|
||||||
Flags may be combined in inuitive ways. Example: to search sheets on the
|
Flags may be combined in intuitive ways. Example: to search sheets on the
|
||||||
"personal" cheatpath that are tagged with "networking" and match a regex:
|
"personal" cheatpath that are tagged with "networking" and match a regex:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cheat -p personal -t networking -s --regex '(?:[0-9]{1,3}\.){3}[0-9]{1,3}'
|
cheat -p personal -t networking --regex -s '(?:[0-9]{1,3}\.){3}[0-9]{1,3}'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ import (
|
|||||||
"github.com/cheat/cheat/internal/config"
|
"github.com/cheat/cheat/internal/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const version = "3.0.3"
|
const version = "3.0.4"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
|
@ -32,9 +32,9 @@ formatter: terminal16m
|
|||||||
# "upstream" cheatsheets.
|
# "upstream" cheatsheets.
|
||||||
#
|
#
|
||||||
# But what if you want to view the "upstream" cheatsheets instead of your own?
|
# But what if you want to view the "upstream" cheatsheets instead of your own?
|
||||||
# Cheatsheets may be filtered via 'cheat -f <tag>' in combination with other
|
# Cheatsheets may be filtered via 'cheat -t <tag>' in combination with other
|
||||||
# commands. So, if you want to view the 'tar' cheatsheet that is tagged as
|
# commands. So, if you want to view the 'tar' cheatsheet that is tagged as
|
||||||
# 'community' rather than your own, you can use: cheat tar -f community
|
# 'community' rather than your own, you can use: cheat tar -t community
|
||||||
cheatpaths:
|
cheatpaths:
|
||||||
|
|
||||||
# Paths that come earlier are considered to be the most "global", and will
|
# Paths that come earlier are considered to be the most "global", and will
|
||||||
|
@ -23,9 +23,9 @@ formatter: terminal16m
|
|||||||
# "upstream" cheatsheets.
|
# "upstream" cheatsheets.
|
||||||
#
|
#
|
||||||
# But what if you want to view the "upstream" cheatsheets instead of your own?
|
# But what if you want to view the "upstream" cheatsheets instead of your own?
|
||||||
# Cheatsheets may be filtered via 'cheat -f <tag>' in combination with other
|
# Cheatsheets may be filtered via 'cheat -t <tag>' in combination with other
|
||||||
# commands. So, if you want to view the 'tar' cheatsheet that is tagged as
|
# commands. So, if you want to view the 'tar' cheatsheet that is tagged as
|
||||||
# 'community' rather than your own, you can use: cheat tar -f community
|
# 'community' rather than your own, you can use: cheat tar -t community
|
||||||
cheatpaths:
|
cheatpaths:
|
||||||
|
|
||||||
# Paths that come earlier are considered to be the most "global", and will
|
# Paths that come earlier are considered to be the most "global", and will
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
cp "github.com/cheat/cheat/internal/cheatpath"
|
cp "github.com/cheat/cheat/internal/cheatpath"
|
||||||
|
|
||||||
@ -38,14 +39,25 @@ func New(opts map[string]interface{}, confPath string) (Config, error) {
|
|||||||
return Config{}, fmt.Errorf("could not unmarshal yaml: %v", err)
|
return Config{}, fmt.Errorf("could not unmarshal yaml: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// expand ~ in config paths
|
// process cheatpaths
|
||||||
for i, cheatpath := range conf.Cheatpaths {
|
for i, cheatpath := range conf.Cheatpaths {
|
||||||
|
|
||||||
|
// expand ~ in config paths
|
||||||
expanded, err := homedir.Expand(cheatpath.Path)
|
expanded, err := homedir.Expand(cheatpath.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Config{}, fmt.Errorf("failed to expand ~: %v", err)
|
return Config{}, fmt.Errorf("failed to expand ~: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// follow symlinks
|
||||||
|
expanded, err = filepath.EvalSymlinks(expanded)
|
||||||
|
if err != nil {
|
||||||
|
return Config{}, fmt.Errorf(
|
||||||
|
"failed to resolve symlink: %s, %v",
|
||||||
|
expanded,
|
||||||
|
err,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
conf.Cheatpaths[i].Path = expanded
|
conf.Cheatpaths[i].Path = expanded
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,8 +48,13 @@ func Load(cheatpaths []cp.Cheatpath) ([]map[string]sheet.Sheet, error) {
|
|||||||
"/",
|
"/",
|
||||||
)
|
)
|
||||||
|
|
||||||
// ignore dotfiles. Otherwise, we'll likely load .git/*
|
// ignore hidden files and directories. Otherwise, we'll likely load
|
||||||
if strings.HasPrefix(title, ".") {
|
// .git/* and .DS_Store.
|
||||||
|
//
|
||||||
|
// NB: this is still somewhat brittle in that it will miss files
|
||||||
|
// contained within hidden directories in the middle of a path, though
|
||||||
|
// that should not realistically occur.
|
||||||
|
if strings.HasPrefix(title, ".") || strings.HasPrefix(info.Name(), ".") {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
9
scripts/cheat-autocompletion.bash
Executable file
9
scripts/cheat-autocompletion.bash
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
function _cheat_autocomplete {
|
||||||
|
sheets=$(cheat -l | sed -n '2,$p'|cut -d' ' -f1)
|
||||||
|
COMPREPLY=()
|
||||||
|
if [ $COMP_CWORD = 1 ]; then
|
||||||
|
COMPREPLY=(`compgen -W "$sheets" -- $2`)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -F _cheat_autocomplete cheat
|
11
scripts/cheat-autocompletion.fish
Executable file
11
scripts/cheat-autocompletion.fish
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
complete -c cheat -f -a "(cheat -l | tail -n +2 | cut -d ' ' -f 1)"
|
||||||
|
complete -c cheat -l init -d "Write a default config file to stdout"
|
||||||
|
complete -c cheat -s c -l colorize -d "Colorize output"
|
||||||
|
complete -c cheat -s d -l directories -d "List cheatsheet directories"
|
||||||
|
complete -c cheat -s e -l edit -x -a "(cheat -l | tail -n +2 | cut -d ' ' -f 1)" -d "Edit cheatsheet"
|
||||||
|
complete -c cheat -s l -l list -d "List cheatsheets"
|
||||||
|
complete -c cheat -s p -l path -x -a "(cheat -d | cut -d ':' -f 1)" -d "Return only sheets found on given path"
|
||||||
|
complete -c cheat -s r -l regex -d "Treat search phrase as a regex"
|
||||||
|
complete -c cheat -s s -l search -x -d "Search cheatsheets for given phrase"
|
||||||
|
complete -c cheat -s t -l tag -x -a "(cheat -l | tail -n +2 | rev | cut -d ' ' -f 1 | rev | sed 's/,/\n/g;/^\$/d' | sort -u)" -d "Return only sheets matching the given tag"
|
||||||
|
complete -c cheat -s v -l version -d "Print the version number"
|
Reference in New Issue
Block a user