mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-27 23:41:05 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2b6fa42f17 | |||
| 8de487250d | |||
| e5fe49834d | |||
| edd56c80eb | |||
| eaedd40e06 | |||
| 06a53759ac | |||
| 3c98117c05 | |||
| c3aa6b77e5 | |||
| 66739fa765 | |||
| ff01a27b3c |
19
.ecrc
Normal file
19
.ecrc
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Version": "2.7.0",
|
||||
"Verbose": false,
|
||||
"Debug": false,
|
||||
"IgnoreDefaults": false,
|
||||
"SpacesAftertabs": false,
|
||||
"NoColor": false,
|
||||
"Exclude": [],
|
||||
"AllowedContentTypes": [],
|
||||
"PassedFiles": [],
|
||||
"Disable": {
|
||||
"EndOfLine": false,
|
||||
"Indentation": false,
|
||||
"InsertFinalNewline": false,
|
||||
"TrimTrailingWhitespace": false,
|
||||
"IndentSize": false,
|
||||
"MaxLineLength": false
|
||||
}
|
||||
}
|
||||
@@ -11,3 +11,12 @@ trim_trailing_whitespace = true
|
||||
[.git{ignore,modules}]
|
||||
indent_style = tab
|
||||
indent_size = 1
|
||||
|
||||
[local/bin/*]
|
||||
shell_variant = bash # --language-variant
|
||||
binary_next_line = true
|
||||
switch_case_indent = true # --case-indent
|
||||
space_redirects = true
|
||||
keep_padding = true
|
||||
function_next_line = true # --func-next-line
|
||||
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,3 +5,5 @@ Brewfile.lock.json
|
||||
.idea
|
||||
.vscode
|
||||
config/fzf
|
||||
config/cheat/cheatsheets/pure-bash-bible/*
|
||||
config/cheat/cheatsheets/tldr/*
|
||||
|
||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -19,7 +19,7 @@
|
||||
url = https://github.com/AstroNvim/AstroNvim.git
|
||||
ignore = dirty
|
||||
branch = main
|
||||
update = checkout
|
||||
shallow = true
|
||||
|
||||
[submodule "cheat-community"]
|
||||
path = config/cheat/cheatsheets/community
|
||||
@@ -29,3 +29,4 @@
|
||||
[submodule "tmux/tpm"]
|
||||
path = config/tmux/plugins/tpm
|
||||
url = https://github.com/tmux-plugins/tpm.git
|
||||
ignore = dirty
|
||||
|
||||
7
.shellcheckrc
Normal file
7
.shellcheckrc
Normal file
@@ -0,0 +1,7 @@
|
||||
# This is shellcheck configuration file.
|
||||
|
||||
# Set whether or not to follow arbitrary file
|
||||
# paths in source statements (since 0.8.0).
|
||||
external-sources=true
|
||||
includeAllWorkspaceSymbols=true
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
autoload -U colors zsh/terminfo
|
||||
colors
|
||||
setopt correct
|
||||
|
||||
# Defaults
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
|
||||
@@ -6,7 +6,7 @@ return { -- Add the community repository of plugin specific
|
||||
import = "astrocommunity.colorscheme.catppuccin",
|
||||
opts = {
|
||||
flavour = "mocha",
|
||||
transparent_background = false,
|
||||
transparent_background = true,
|
||||
dim_inactive = {
|
||||
enabled = true,
|
||||
shade = "dark",
|
||||
@@ -23,9 +23,8 @@ return { -- Add the community repository of plugin specific
|
||||
disabled_filetypes = { "help", "text", "markdown" },
|
||||
},
|
||||
},
|
||||
{ import = "astrocommunity.code-runner.overseer-nvim" },
|
||||
--- { import = "astrocommunity.diagnostics.lsp_lines-nvim" },
|
||||
--- { import = "astrocommunity.diagnostics.trouble-nvim" },
|
||||
{ import = "astrocommunity.diagnostics.lsp_lines-nvim" },
|
||||
{ import = "astrocommunity.diagnostics.trouble-nvim" },
|
||||
{ import = "astrocommunity.editing-support.refactoring-nvim" },
|
||||
{ import = "astrocommunity.editing-support.neogen" },
|
||||
{ import = "astrocommunity.editing-support.nvim-regexplainer" },
|
||||
|
||||
@@ -13,16 +13,13 @@ return { -- use mason-lspconfig to configure LSP installations
|
||||
"diagnosticls",
|
||||
"docker_compose_language_service",
|
||||
"dockerls",
|
||||
"emmet_ls",
|
||||
"eslint",
|
||||
"graphql",
|
||||
"html",
|
||||
"intelephense",
|
||||
"jsonls",
|
||||
"marksman",
|
||||
"psalm",
|
||||
"stylelint_lsp",
|
||||
"sqlls",
|
||||
"tailwindcss",
|
||||
"tsserver",
|
||||
"vuels",
|
||||
|
||||
@@ -12,7 +12,6 @@ return {
|
||||
null_ls.builtins.code_actions.eslint,
|
||||
null_ls.builtins.code_actions.refactoring,
|
||||
null_ls.builtins.code_actions.shellcheck,
|
||||
null_ls.builtins.code_actions.xo,
|
||||
null_ls.builtins.diagnostics.actionlint,
|
||||
null_ls.builtins.diagnostics.alex,
|
||||
null_ls.builtins.diagnostics.ansiblelint,
|
||||
@@ -21,13 +20,10 @@ return {
|
||||
null_ls.builtins.diagnostics.eslint,
|
||||
null_ls.builtins.diagnostics.jsonlint,
|
||||
null_ls.builtins.diagnostics.luacheck,
|
||||
null_ls.builtins.diagnostics.markdownlint,
|
||||
null_ls.builtins.diagnostics.mypy,
|
||||
null_ls.builtins.diagnostics.php,
|
||||
null_ls.builtins.diagnostics.phpcs,
|
||||
null_ls.builtins.diagnostics.phpstan,
|
||||
null_ls.builtins.diagnostics.psalm,
|
||||
null_ls.builtins.diagnostics.pydocstyle,
|
||||
null_ls.builtins.diagnostics.semgrep,
|
||||
null_ls.builtins.diagnostics.shellcheck,
|
||||
null_ls.builtins.diagnostics.standardjs,
|
||||
@@ -38,26 +34,16 @@ return {
|
||||
null_ls.builtins.diagnostics.vacuum,
|
||||
null_ls.builtins.diagnostics.vint,
|
||||
null_ls.builtins.diagnostics.vulture,
|
||||
null_ls.builtins.diagnostics.xo,
|
||||
null_ls.builtins.diagnostics.yamllint,
|
||||
null_ls.builtins.diagnostics.zsh,
|
||||
null_ls.builtins.formatting.black,
|
||||
null_ls.builtins.formatting.blade_formatter,
|
||||
null_ls.builtins.formatting.cbfmt,
|
||||
null_ls.builtins.formatting.clang_format,
|
||||
null_ls.builtins.formatting.eslint,
|
||||
null_ls.builtins.formatting.fixjson,
|
||||
null_ls.builtins.formatting.isort,
|
||||
null_ls.builtins.formatting.jq,
|
||||
null_ls.builtins.formatting.markdownlint,
|
||||
null_ls.builtins.formatting.nginx_beautifier,
|
||||
null_ls.builtins.formatting.pg_format,
|
||||
null_ls.builtins.formatting.phpcsfixer,
|
||||
null_ls.builtins.formatting.prettier_eslint,
|
||||
null_ls.builtins.formatting.prettier,
|
||||
null_ls.builtins.formatting.puppet_lint,
|
||||
null_ls.builtins.formatting.rome,
|
||||
null_ls.builtins.formatting.rustfmt,
|
||||
null_ls.builtins.formatting.prettierd,
|
||||
null_ls.builtins.formatting.shfmt.with {
|
||||
args = { "-i", "1", "-bn", "-ci", "-sr", "-kb", "-fn" },
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# The editor to use with 'cheat -e <sheet>'. Defaults to $EDITOR or $VISUAL.
|
||||
editor: $EDITOR
|
||||
# editor: $EDITOR
|
||||
|
||||
# Should 'cheat' always colorize output?
|
||||
colorize: true
|
||||
@@ -8,7 +8,7 @@ colorize: true
|
||||
# Which 'chroma' colorscheme should be applied to the output?
|
||||
# Options are available here:
|
||||
# https://github.com/alecthomas/chroma/tree/master/styles
|
||||
style: catppuccin-mocha
|
||||
style: "catppuccin"
|
||||
|
||||
# Which 'chroma' "formatter" should be applied?
|
||||
# One of: "terminal", "terminal256", "terminal16m"
|
||||
@@ -63,14 +63,22 @@ cheatpaths:
|
||||
# 'readonly': shall user-created ('cheat -e') cheatsheets be saved here?
|
||||
- name: community
|
||||
path: ~/.config/cheat/cheatsheets/community
|
||||
tags: [community]
|
||||
tags: [ community ]
|
||||
readonly: true
|
||||
# If you have personalized cheatsheets, list them last. They will take
|
||||
# precedence over the more global cheatsheets.
|
||||
- name: personal
|
||||
path: ~/.config/cheat/cheatsheets/personal
|
||||
tags: [personal]
|
||||
path: ~/.dotfiles/config/cheat/cheatsheets/personal
|
||||
tags: [ personal ]
|
||||
readonly: false
|
||||
- name: pure-bash-bible
|
||||
path: ~/.dotfiles/config/cheat/cheatsheets/pure-bash-bible
|
||||
tags: [ pure-bash-bible ]
|
||||
readonly: true
|
||||
- name: tldr
|
||||
path: ~/.dotfiles/config/cheat/cheatsheets/tldr
|
||||
tags: [ tldr ]
|
||||
readonly: true
|
||||
|
||||
# While it requires no configuration here, it's also worth noting that
|
||||
# cheat will automatically append directories named '.cheat' within the
|
||||
|
||||
@@ -109,3 +109,5 @@ export _Z_DATA="$XDG_STATE_HOME/z"
|
||||
export ANDROID_HOME="$XDG_DATA_HOME/android"
|
||||
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
|
||||
export TMUX_CONF="$DOTFILES/config/tmux/tmux.conf"
|
||||
export BAT_THEME="ansi"
|
||||
|
||||
@@ -10,16 +10,8 @@
|
||||
<true/>
|
||||
<key>AlternateMouseScroll</key>
|
||||
<true/>
|
||||
<key>AppleAntiAliasingThreshold</key>
|
||||
<integer>1</integer>
|
||||
<key>ApplePressAndHoldEnabled</key>
|
||||
<false/>
|
||||
<key>AppleScrollAnimationEnabled</key>
|
||||
<integer>0</integer>
|
||||
<key>AppleSmoothFixedFontsSizeThreshold</key>
|
||||
<integer>1</integer>
|
||||
<key>AppleWindowTabbingMode</key>
|
||||
<string>manual</string>
|
||||
<key>AutoHideTmuxClientSession</key>
|
||||
<true/>
|
||||
<key>Custom Color Presets</key>
|
||||
<dict>
|
||||
<key>catppuccin-mocha</key>
|
||||
@@ -1049,13 +1041,17 @@
|
||||
<key>Non-ASCII Anti Aliased</key>
|
||||
<true/>
|
||||
<key>Normal Font</key>
|
||||
<string>JetBrainsMonoNerdFontCompleteM-Light 15</string>
|
||||
<string>JetBrainsMonoNFM-Regular 13</string>
|
||||
<key>Only The Default BG Color Uses Transparency</key>
|
||||
<true/>
|
||||
<key>Open Password Manager Automatically</key>
|
||||
<true/>
|
||||
<key>Option Key Sends</key>
|
||||
<integer>0</integer>
|
||||
<key>Prompt Before Closing 2</key>
|
||||
<false/>
|
||||
<key>Reduce Flicker</key>
|
||||
<true/>
|
||||
<key>Right Option Key Sends</key>
|
||||
<integer>0</integer>
|
||||
<key>Rows</key>
|
||||
@@ -1092,12 +1088,77 @@
|
||||
</dict>
|
||||
<key>Send Code When Idle</key>
|
||||
<false/>
|
||||
<key>Set Local Environment Vars</key>
|
||||
<false/>
|
||||
<key>Shortcut</key>
|
||||
<string></string>
|
||||
<string>T</string>
|
||||
<key>Show Status Bar</key>
|
||||
<true/>
|
||||
<key>Show Timestamps</key>
|
||||
<integer>2</integer>
|
||||
<key>Silence Bell</key>
|
||||
<false/>
|
||||
<key>Smart Cursor Color</key>
|
||||
<true/>
|
||||
<key>Status Bar Layout</key>
|
||||
<dict>
|
||||
<key>advanced configuration</key>
|
||||
<dict>
|
||||
<key>algorithm</key>
|
||||
<integer>0</integer>
|
||||
<key>auto-rainbow style</key>
|
||||
<integer>3</integer>
|
||||
<key>font</key>
|
||||
<string>.AppleSystemUIFont 12</string>
|
||||
<key>remove empty components</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>components</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>class</key>
|
||||
<string>iTermStatusBarJobComponent</string>
|
||||
<key>configuration</key>
|
||||
<dict>
|
||||
<key>knobs</key>
|
||||
<dict>
|
||||
<key>base: compression resistance</key>
|
||||
<integer>1</integer>
|
||||
<key>base: priority</key>
|
||||
<real>5</real>
|
||||
<key>maxwidth</key>
|
||||
<real>+infinity</real>
|
||||
<key>minwidth</key>
|
||||
<integer>0</integer>
|
||||
<key>shared text color</key>
|
||||
<dict>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.63</real>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Green Component</key>
|
||||
<real>0.63</real>
|
||||
<key>Red Component</key>
|
||||
<real>0.90000000000000002</real>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>layout advanced configuration dictionary value</key>
|
||||
<dict>
|
||||
<key>algorithm</key>
|
||||
<integer>0</integer>
|
||||
<key>auto-rainbow style</key>
|
||||
<integer>3</integer>
|
||||
<key>font</key>
|
||||
<string>.AppleSystemUIFont 12</string>
|
||||
<key>remove empty components</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>Sync Title</key>
|
||||
<false/>
|
||||
<key>Tags</key>
|
||||
|
||||
Submodule config/nvim updated: 9e22e24124...148a513072
@@ -51,17 +51,35 @@ bind N new-window
|
||||
|
||||
# Plugins related configurations
|
||||
|
||||
## https://github.com/jaclu/tmux-menus
|
||||
set -g @menus_trigger 'm'
|
||||
|
||||
## https://github.com/catppuccin/tmux
|
||||
set -g @catppuccin_flavour 'mocha' # latte/frappe/macchiato/mocha
|
||||
set -g @catppuccin_window_tabs_enabled on # or off to disable window_tabs
|
||||
|
||||
## https://github.com/tmux-plugins/tmux-continuum
|
||||
set -g @continuum-restore 'on'
|
||||
set -g @continuum-boot 'on'
|
||||
set -g @continuum-boot-options 'iterm'
|
||||
|
||||
## https://github.com/tmux-plugins/tmux-resurrect
|
||||
set -g @resurrect-strategy-nvim 'session'
|
||||
|
||||
## https://github.com/sainnhe/tmux-fzf
|
||||
TMUX_FZF_LAUNCH_KEY="l"
|
||||
|
||||
## Install plugins, starting with plugin manager
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'jaclu/tmux-menus'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
set -g @plugin 'catppuccin/tmux'
|
||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
set -g @plugin 'tmux-plugins/tmux-sessionist'
|
||||
set -g @plugin 'sainnhe/tmux-fzf'
|
||||
|
||||
# set vi-mode
|
||||
set-window-option -g mode-keys vi
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
CONFIG="install.conf.yaml"
|
||||
DOTBOT_DIR="dotbot"
|
||||
|
||||
DOTBOT_BIN="bin/dotbot"
|
||||
BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
DOTBOT_HOST="$(hostname -s)" || ''
|
||||
DOTBOT_BIN_PATH="${BASEDIR}/${DOTBOT_DIR}/${DOTBOT_BIN}"
|
||||
|
||||
cd "$BASEDIR"
|
||||
git submodule sync --quiet --recursive
|
||||
git submodule update --init --recursive
|
||||
|
||||
"${DOTBOT_BIN_PATH}" \
|
||||
-d "${BASEDIR}" \
|
||||
--plugin-dir=dotbot-include \
|
||||
-c "${CONFIG}" \
|
||||
"${@}"
|
||||
|
||||
if [ "${DOTBOT_HOST}" != "" ]; then
|
||||
DOTBOT_HOST_CONFIG="${BASEDIR}/hosts/${DOTBOT_HOST}/${CONFIG}"
|
||||
echo "-> Trying if host config can be found: ${DOTBOT_HOST_CONFIG}"
|
||||
[ -r "$DOTBOT_HOST_CONFIG" ] && [ -f "$DOTBOT_HOST_CONFIG" ] \
|
||||
&& echo "(!) Found $DOTBOT_HOST_CONFIG" \
|
||||
&& "$DOTBOT_BIN_PATH" \
|
||||
-d "$BASEDIR" \
|
||||
--plugin-dir=dotbot-include \
|
||||
-c "$DOTBOT_HOST_CONFIG" \
|
||||
"${@}"
|
||||
fi
|
||||
@@ -1,4 +1,4 @@
|
||||
- include: 'hosts/defaults.yaml'
|
||||
- include: "hosts/defaults.yaml"
|
||||
- clean:
|
||||
~/:
|
||||
~/.config:
|
||||
@@ -9,6 +9,9 @@
|
||||
~/.cache:
|
||||
~/.cache/git:
|
||||
~/.config:
|
||||
~/.config/cheat/cheatsheets/personal:
|
||||
~/.config/cheat/cheatsheets/pure-bash-bible:
|
||||
~/.config/cheat/cheatsheets/tldr:
|
||||
~/.local:
|
||||
~/.local/run:
|
||||
~/.local/share:
|
||||
|
||||
@@ -61,7 +61,7 @@ function section_install
|
||||
$0 install z
|
||||
;;
|
||||
antigen)
|
||||
curl -L git.io/antigen > "$DOTFILES/local/bin/antigen.zsh" \
|
||||
curl -sSfL git.io/antigen -o "$DOTFILES/local/bin/antigen.zsh" \
|
||||
&& msg_yay "New antigen installed!"
|
||||
;;
|
||||
composer)
|
||||
@@ -92,7 +92,9 @@ function section_install
|
||||
&& msg_yay "imagick installed!"
|
||||
;;
|
||||
starship)
|
||||
curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir ~/.local/bin \
|
||||
curl -sS https://starship.rs/install.sh | sh -s -- \
|
||||
--bin-dir ~/.local/bin \
|
||||
--yes \
|
||||
&& msg_yay "starship installed!"
|
||||
;;
|
||||
macos)
|
||||
@@ -162,7 +164,9 @@ function section_brew
|
||||
menu_usage "$USAGE_PREFIX" "${MENU[@]}"
|
||||
;;
|
||||
esac
|
||||
} || menu_section "$USAGE_PREFIX" "brew not available on this system"
|
||||
}
|
||||
|
||||
! have brew && menu_section "$USAGE_PREFIX" "brew not available on this system"
|
||||
}
|
||||
|
||||
function section_dotfiles
|
||||
@@ -196,8 +200,8 @@ function section_dotfiles
|
||||
~/.config/astronvim \
|
||||
~/.config/nvim
|
||||
msg_ok "Deleted old nvim files"
|
||||
ln -s $DOTFILES/config/astronvim ~/.config/astronvim
|
||||
ln -s $DOTFILES/config/nvim ~/.config/nvim
|
||||
ln -s "$DOTFILES/config/astronvim" ~/.config/astronvim
|
||||
ln -s "$DOTFILES/config/nvim" ~/.config/nvim
|
||||
msg_ok "Linked nvim and astronvim"
|
||||
have npm && $0 install npm
|
||||
msg_ok "Installed packages"
|
||||
@@ -205,7 +209,8 @@ function section_dotfiles
|
||||
;;
|
||||
yamlfmt)
|
||||
# format yaml files
|
||||
have yamlfmt && yamlfmt -conf "$DOTFILES/.yamlfmt" || msg_err "yamlfmt not found"
|
||||
have yamlfmt && yamlfmt -conf "$DOTFILES/.yamlfmt"
|
||||
! have yamlfmt && msg_err "yamlfmt not found"
|
||||
;;
|
||||
shfmt)
|
||||
# Format shell scripts according to following rules.
|
||||
@@ -213,6 +218,7 @@ function section_dotfiles
|
||||
-type f -perm +111 \
|
||||
-not -path '*/.git/*' \
|
||||
-not -path '*dotbot*' \
|
||||
-not -path '*tmux*' \
|
||||
-not -name '*.pl' \
|
||||
-not -name '*.py' \
|
||||
-not -name '*.php' \
|
||||
|
||||
54
scripts/install-cheat-purebashbible.sh
Executable file
54
scripts/install-cheat-purebashbible.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2231,SC2034,SC2181,SC2068
|
||||
# shellcheck source=shared.sh
|
||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||
|
||||
PBB_REQUIRED_TOOLS=(basename git mkdir cheat ls grep head awk cp echo rm)
|
||||
for t in ${PBB_REQUIRED_TOOLS[@]}; do
|
||||
! have "$t" && echo "(!) $t is missing, can't continue..." && exit 1
|
||||
done
|
||||
|
||||
PBB_GIT="https://github.com/dylanaraps/pure-bash-bible.git"
|
||||
PBB_SOURCE="source: $PBB_GIT"
|
||||
PBB_SYNTAX="syntax: bash"
|
||||
PBB_TAGS="tags: [bash]"
|
||||
|
||||
PBB_TEMP_PREFIX=$(basename "$0")
|
||||
PBB_TEMP_DIR="/tmp/pbb-$(rnd)"
|
||||
|
||||
# If there's no .git, clone the folder
|
||||
if [ ! -d "$PBB_TEMP_DIR/.git" ]; then
|
||||
git clone "$PBB_GIT" "$PBB_TEMP_DIR"
|
||||
fi
|
||||
|
||||
PBB_CHAPTERS=$(ls -1v "$PBB_TEMP_DIR"/manuscript/chapter*)
|
||||
CHEAT_DEST="$(cheat -d | grep pure-bash-bible | head -1 | awk '{print $2}')"
|
||||
|
||||
if [ ! -d "$CHEAT_DEST" ]; then
|
||||
mkdir -p "$CHEAT_DEST"
|
||||
fi
|
||||
|
||||
for f in ${PBB_CHAPTERS[@]}; do
|
||||
# get all headers, take the first one, strip the # and return the first word in lowercase
|
||||
HEADER=$(grep -e '^[#] ' "$f" | head -1 | awk '{print tolower($2)}')
|
||||
CHEAT_FILE="$CHEAT_DEST/${HEADER}"
|
||||
echo "(*) $CHEAT_FILE"
|
||||
|
||||
if [ ! -f "$CHEAT_FILE" ]; then
|
||||
cp "$f" "$CHEAT_FILE"
|
||||
fi
|
||||
|
||||
LC_ALL=C perl -pi.bak -e 's/\<\!-- CHAPTER END --\>//' "$CHEAT_FILE"
|
||||
rm "$CHEAT_FILE.bak"
|
||||
|
||||
# add tags if the file doesn't have them
|
||||
if [ '---' != "$(head -1 < "$CHEAT_FILE")" ]; then
|
||||
T="$PBB_SYNTAX\n$PBB_TAGS\n$PBB_SOURCE\n"
|
||||
echo -e "---\n$T---\n$(cat "$CHEAT_FILE")" > "$CHEAT_FILE"
|
||||
fi
|
||||
done
|
||||
|
||||
# Cleanup
|
||||
if [ -d "$PBB_TEMP_DIR" ]; then
|
||||
rm -rf "$PBB_TEMP_DIR"
|
||||
fi
|
||||
73
scripts/install-cheat-tldr.sh
Executable file
73
scripts/install-cheat-tldr.sh
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2231,SC2034,SC2181,SC2068
|
||||
# shellcheck source=shared.sh
|
||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||
|
||||
TLDR_REQUIRED_TOOLS=(basename git mkdir cheat ls grep head awk cp echo rm)
|
||||
for t in ${TLDR_REQUIRED_TOOLS[@]}; do
|
||||
! have "$t" && echo "(!) $t is missing, can't continue..." && exit 1
|
||||
done
|
||||
|
||||
TLDR_GIT="https://github.com/tldr-pages/tldr.git"
|
||||
TLDR_SOURCE="source: $TLDR_GIT"
|
||||
TLDR_SYNTAX="syntax: markdown"
|
||||
TLDR_TAGS="tags: [bash]"
|
||||
|
||||
TLDR_TEMP_PREFIX=$(basename "$0")
|
||||
TLDR_TEMP_DIR="/tmp/cheat-tldr-$(rnd)"
|
||||
|
||||
# If there's no .git, clone the folder
|
||||
if [ ! -d "$TLDR_TEMP_DIR/.git" ]; then
|
||||
git clone "$TLDR_GIT" "$TLDR_TEMP_DIR"
|
||||
fi
|
||||
|
||||
# Fetch the destination directory from cheat defined directories.
|
||||
TLDR_CHEAT_DEST="$(cheat -d | grep tldr | head -1 | awk '{print $2}')"
|
||||
|
||||
[ "$TLDR_CHEAT_DEST" = "" ] && msg_err "cheat doesn't know about the destination" && exit 1
|
||||
|
||||
if [ ! -d "$TLDR_CHEAT_DEST" ]; then
|
||||
mkdir -p "$TLDR_CHEAT_DEST"
|
||||
fi
|
||||
|
||||
for d in "$TLDR_TEMP_DIR"/pages/*; do
|
||||
DIRNAME=$(basename "$d")
|
||||
# echo "-> $DIRNAME ($d)"
|
||||
|
||||
case "$DIRNAME" in
|
||||
*common)
|
||||
SECTION_DIR="${TLDR_CHEAT_DEST}"
|
||||
TLDR_TAGS="tags: [common]"
|
||||
;;
|
||||
*)
|
||||
SECTION_DIR="${TLDR_CHEAT_DEST}/$DIRNAME"
|
||||
TLDR_TAGS="tags: [$DIRNAME]"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ! -d "$SECTION_DIR" ]; then
|
||||
mkdir -p "$SECTION_DIR"
|
||||
fi
|
||||
|
||||
for FILE in $d/*.md; do
|
||||
BASENAME=$(basename "$FILE" .md)
|
||||
FILENAME="${BASENAME%%.*}"
|
||||
# echo "-> $FILE = $FILENAME"
|
||||
TLDR_FILE="$SECTION_DIR/${FILENAME}"
|
||||
# echo "-> dest: $TLDR_FILE"
|
||||
|
||||
if [ ! -f "$TLDR_FILE" ]; then
|
||||
cp "$FILE" "$TLDR_FILE"
|
||||
fi
|
||||
|
||||
if [ -f "$TLDR_FILE" ] && [ '---' != "$(head -1 < "$TLDR_FILE")" ]; then
|
||||
echo -e "---\n$TLDR_SYNTAX\n$TLDR_TAGS\n$TLDR_SOURCE\n---\n$(cat "$TLDR_FILE")" > "$TLDR_FILE"
|
||||
fi
|
||||
|
||||
done
|
||||
done
|
||||
|
||||
# Cleanup
|
||||
if [ -d "$TLDR_TEMP_DIR" ]; then
|
||||
rm -rf "$TLDR_TEMP_DIR"
|
||||
fi
|
||||
@@ -10,7 +10,7 @@ FZF_PATH="${XDG_CONFIG_HOME}/fzf"
|
||||
|
||||
if [ ! -d "$FZF_PATH" ]; then
|
||||
git clone --depth 1 "$FZF_GIT" "$FZF_PATH"
|
||||
$FZF_PATH/install --xdg --all --no-update-rc
|
||||
"$FZF_PATH/install" --xdg --all --no-update-rc
|
||||
else
|
||||
msg_done "fzf ($FZF_PATH/) already installed"
|
||||
fi
|
||||
|
||||
@@ -39,4 +39,7 @@ have gh && {
|
||||
done
|
||||
|
||||
msg_ok "Done"
|
||||
} || msg_err "gh (GitHub Client) could not be found, please install it first"
|
||||
}
|
||||
|
||||
! have gh \
|
||||
&& msg_err "gh (GitHub Client) could not be found, please install it first"
|
||||
|
||||
@@ -20,6 +20,8 @@ have go && {
|
||||
github.com/cheat/cheat/cmd/cheat@latest
|
||||
# Render markdown on the CLI, with pizzazz! 💅
|
||||
github.com/charmbracelet/glow@latest
|
||||
# Static checker for GitHub Actions workflow files
|
||||
github.com/rhysd/actionlint/cmd/actionlint@latest
|
||||
)
|
||||
|
||||
for pkg in "${packages[@]}"; do
|
||||
@@ -34,4 +36,6 @@ have go && {
|
||||
done
|
||||
|
||||
msg_ok "Done"
|
||||
} || msg "go hasn't been installed yet."
|
||||
}
|
||||
|
||||
! have go && msg "go hasn't been installed yet."
|
||||
|
||||
@@ -36,4 +36,6 @@ have npm && {
|
||||
msg_run "Upgrading all global packages"
|
||||
npm -g --no-progress --no-timing --no-fund outdated
|
||||
npm -g --no-timing --no-fund upgrade
|
||||
} || msg_err "npm could not be found."
|
||||
}
|
||||
|
||||
! have npm && msg_err "npm could not be found."
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||
set -e
|
||||
|
||||
have ntfy && {
|
||||
msg "ntfy already installed"
|
||||
} || {
|
||||
have ntfy && msg "ntfy already installed"
|
||||
|
||||
! have ntfy && {
|
||||
case $(dfm check arch) in
|
||||
Linux)
|
||||
NTFY_ARCH="linux_$(arch)"
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
# Ismo Vuorinen <https://github.com/ivuorinen> 2018
|
||||
#
|
||||
|
||||
[ "$(uname)" != "Darwin" ] && echo "Not a macOS system" && exit 0
|
||||
|
||||
! have xcode-select \
|
||||
&& msg_err "xcode-select could not be found, skipping" \
|
||||
&& exit 0
|
||||
|
||||
# Ask for the administrator password upfront
|
||||
sudo -v
|
||||
|
||||
@@ -14,10 +20,12 @@ while true; do
|
||||
kill -0 "$$" || exit
|
||||
done 2> /dev/null &
|
||||
|
||||
# https://unix.stackexchange.com/a/408305
|
||||
# check if user has git installed and propose to install if not installed
|
||||
if [ "$(which git)" ]; then
|
||||
echo "You already have git. Continuing..."
|
||||
XCODE_TOOLS_PATH=$(xcode-select -p)
|
||||
XCODE_SWIFT_PATH="$XCODE_TOOLS_PATH/usr/bin/swift"
|
||||
|
||||
# Modified from https://unix.stackexchange.com/a/408305
|
||||
if [ -a "$XCODE_SWIFT_PATH" ]; then
|
||||
echo "You have swift from xcode-select. Continuing..."
|
||||
else
|
||||
XCODE_MESSAGE="$(
|
||||
osascript -e \
|
||||
@@ -32,7 +40,7 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
until [ "$(which git)" ]; do
|
||||
until [ -f "$XCODE_SWIFT_PATH" ]; do
|
||||
echo -n "."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
@@ -191,7 +191,8 @@ defaults write com.apple.finder FXInfoPanesExpanded -dict \
|
||||
###############################################################################
|
||||
|
||||
# Set default screenshot location
|
||||
#defaults write com.apple.screencapture "location" -string "~/Documents/Screenshots"
|
||||
mkdir -p "$HOME/Documents/Screenshots"
|
||||
defaults write com.apple.screencapture "location" -string "$HOME/Documents/Screenshots"
|
||||
|
||||
# Exclude date and time in screenshot filenames
|
||||
defaults write com.apple.screencapture "include-date" -bool true
|
||||
@@ -245,7 +246,10 @@ defaults write com.apple.Safari \
|
||||
-bool true
|
||||
|
||||
# Don’t display the annoying prompt when quitting iTerm
|
||||
#defaults write com.googlecode.iterm2 PromptOnQuit -bool false
|
||||
defaults write com.googlecode.iterm2 PromptOnQuit -bool false
|
||||
# Use iTerm2 preferences from the .dotfiles folder.
|
||||
defaults write com.googlecode.iterm2 PrefsCustomFolder \
|
||||
-string "$HOME/.dotfiles/config/iterm2"
|
||||
|
||||
# Prevent Time Machine from prompting to use new hard drives as backup volume
|
||||
defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true
|
||||
|
||||
@@ -224,3 +224,9 @@ function path_prepend
|
||||
path_remove "$1"
|
||||
PATH="$1${PATH:+":$PATH"}"
|
||||
}
|
||||
|
||||
# Creates a random string
|
||||
rnd()
|
||||
{
|
||||
echo $RANDOM | md5sum | head -c 20
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user