Compare commits

...

5 Commits

24 changed files with 116 additions and 67 deletions

View File

@@ -1 +1 @@
extends @ivuorinen/browserslist-config
extends @ivuorinen/browserslist-config

View File

@@ -27,3 +27,9 @@ space_redirects = true
keep_padding = false
function_next_line = true # --func-next-line
# Ignore the entire "third_party" directory when calling shfmt on directories,
# such as "shfmt -l -w .". When formatting files directly,
# like "shfmt -w third_party/foo.sh" or "shfmt --filename=third_party/foo.sh",
# the ignore logic is applied only when the --apply-ignore flag is given.
[{tools/**,local/bin/asdf/**,config/cheat/cheatsheets/**}]
ignore = true

3
.gitmodules vendored
View File

@@ -64,3 +64,6 @@
[submodule "tmux/tmux-dark-notify"]
path = config/tmux/plugins/tmux-dark-notify
url = https://github.com/erikw/tmux-dark-notify.git
[submodule "asdf"]
path = local/bin/asdf
url = https://github.com/asdf-vm/asdf.git

View File

@@ -1,8 +1,12 @@
.mypy_cache/*
tools/dotbot*
local/bin/antigen.zsh
config/cheat/cheatsheets/community
config/tmux/plugins/*
lazy-lock.json
Brewfile.lock.json
config/cheat/cheatsheets/community
config/cheat/cheatsheets/tldr
config/fzf/*
config/nvim-kickstart/*
config/tmux/plugins/*
config/zsh/*
lazy-lock.json
local/bin/antigen.zsh
local/bin/asdf
tools/dotbot*

View File

@@ -1,4 +1,5 @@
module.exports = {
plugins: ['prettier-plugin-sh'],
...require('@ivuorinen/prettier-config'),
trailingComma: 'all',
// Add custom options below:

View File

@@ -18,6 +18,8 @@ git submodule add --name cheat-community \
-f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
git submodule add --name cheat-tldr \
-f https://github.com/ivuorinen/cheatsheet-tldr.git config/cheat/cheatsheets/tldr
git submodule add --name asdf \
-f https://github.com/asdf-vm/asdf.git local/bin/asdf
# tmux plugin manager and plugins
git submodule add --name tmux/tmux-continuum \

View File

@@ -16,8 +16,8 @@ x-have oh-my-posh && {
eval "$(oh-my-posh init bash --config "$DOTFILES/config/omp/own.toml")"
}
. "$HOME/.local/share/asdf/asdf.sh"
. "$HOME/.local/share/asdf/completions/asdf.bash"
. "$XDG_BIN_HOME/asdf/asdf.sh"
. "$XDG_BIN_HOME/asdf/completions/asdf.bash"
x-have antidot && {
eval "$(antidot init)"

View File

@@ -1,6 +1,4 @@
#!/bin/env bash
[ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.config/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

View File

@@ -16,6 +16,4 @@ export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run"
source "$DOTFILES/config/exports"
source "$DOTFILES/config/alias"
source "$DOTFILES/config/shared"

View File

@@ -46,7 +46,6 @@ export ZSHZ_DATA="$XDG_STATE_HOME/z"
antigen bundle z
# these should be always available
antigen bundle asdf
antigen bundle tmux
antigen bundle colored-man-pages
antigen bundle ssh-agent
@@ -78,12 +77,12 @@ x-have pyenv && {
# Autoupdate tmux window name
TMUX_WINDOW_NAME_PLUGIN="$DOTFILES/config/tmux/plugins/tmux-window-name/scripts/rename_session_windows.py"
[ -f "$TMUX_WINDOW_NAME_PLUGIN" ] && {
tmux-window-name()
tmux_window_name()
{
($TMUX_WINDOW_NAME_PLUGIN &)
}
add-zsh-hook chpwd tmux-window-name
tmux-window-name
add-zsh-hook chpwd tmux_window_name
tmux_window_name
}
}
@@ -95,8 +94,8 @@ source "$DOTFILES/config/alias"
# Herd checks for a few environment variables to inject PHP binaries and configurations.
# Herd injected PHP binary.
# export PATH="/Users/ivuorinen/Library/Application Support/Herd/bin/":$PATH
# export PATH="/Users/ivuorinen/Library/Application\ Support/Herd/bin/":$PATH
# Herd injected PHP 8.3 configuration.
# export HERD_PHP_83_INI_SCAN_DIR="/Users/ivuorinen/Library/Application Support/Herd/config/php/83/"
# export HERD_PHP_83_INI_SCAN_DIR="/Users/ivuorinen/Library/Application\ Support/Herd/config/php/83/"
# Herd injected PHP 7.4 configuration.
# export HERD_PHP_74_INI_SCAN_DIR="/Users/ivuorinen/Library/Application Support/Herd/config/php/74/"
# export HERD_PHP_74_INI_SCAN_DIR="/Users/ivuorinen/Library/Application\ Support/Herd/config/php/74/"

View File

@@ -2,6 +2,4 @@
legacy_version_file=yes
use_release_candidates=no
plugin_repository_last_check_duration=60
disable_plugin_short_name_repository=no
concurrency=auto

View File

@@ -0,0 +1,21 @@
// These are golang packages I use,
// so they should be available with all versions
// sysadmin/scripting utilities, distributed as a single binary
github.com/skx/sysbox@release-0.18.0
// Git Profile allows you to switch between user profiles in git repos
github.com/dotzero/git-profile@v1.4.0
// An extensible command line tool or library to format yaml files.
github.com/google/yamlfmt/cmd/yamlfmt@v0.13.0
// Parsing HTML at the command line
github.com/ericchiang/pup@v0.4.0
// HTML to Markdown converter
github.com/suntong/html2md@v1.5.0
// cheat allows you to create and view interactive cheatsheets on the cli.
github.com/cheat/cheat/cmd/cheat@4.4.2
// Render markdown on the CLI, with pizzazz! 💅
github.com/charmbracelet/glow@v1.5.1
// Static checker for GitHub Actions workflow files
github.com/rhysd/actionlint/cmd/actionlint@v1.7.1
// Cleans up your $HOME from those pesky dotfiles
github.com/doron-cohen/antidot@v0.6.3

View File

@@ -7,6 +7,7 @@ editorconfig-checker 2.8.0
eza 0.18.21
fd 10.1.0
github-cli 2.52.0
golang 1.22.5
hadolint 2.12.0
kubectl 1.30.2
lazygit 0.43.1
@@ -20,7 +21,7 @@ shellcheck 0.10.0
shfmt 3.8.0
terraform-ls 0.33.3
terraform-lsp 0.0.12
terragrunt 0.62.0
terragrunt 0.62.1
tf-summarize 0.3.10
vault 1.17.2+ent
yamllint 1.35.1

View File

@@ -37,12 +37,16 @@ have()
# function to run dark-notify and change alacritty theme
# it uses flock to prevent running multiple instances
# install flock with `brew install flock` on macOS
function darknotify-alacritty {
function darknotify-alacritty
{
have flock && [[ -f /tmp/dark-notify-alacritty.lock ]] && return
have dark-notify && {
# true is used to prevent the command show it was backgrounded
true & flock /tmp/dark-notify-alacritty.lock dark-notify -c "$HOME/.dotfiles/local/bin/x-change-alacritty-theme" &
true \
&& flock /tmp/dark-notify-alacritty.lock dark-notify -c "$HOME/.dotfiles/local/bin/x-change-alacritty-theme" &
}
return 0
}
darknotify-alacritty

View File

@@ -23,7 +23,7 @@ export ANDROID_HOME="$XDG_DATA_HOME/android"
# asdf
# https://github.com/asdf-vm/asdf
export ASDF_DIR="${XDG_DATA_HOME}/asdf"
export ASDF_DIR="${XDG_BIN_HOME}/asdf"
export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"
export ASDF_DATA_DIR="${ASDF_DIR}"
# This seems wrong, but `asdf info` and `versions.bash` differ on path resolution.
@@ -32,6 +32,8 @@ export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plu
export ASDF_LOG_FILE="${XDG_CACHE_HOME}/asdf/asdf.log"
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
export PATH="${ASDF_DIR}/bin:${PATH}"
# bob manages nvim versions
@@ -69,13 +71,13 @@ export GOBIN="$XDG_BIN_HOME"
# Herd, herd.laravel.com
# Herd injected PHP binary.
export PATH="$HOME/Library/Application Support/Herd/bin/":$PATH
export PATH="$HOME/Library/Application\ Support/Herd/bin/":$PATH
x-have herd && {
# Herd injected PHP 8.3 configuration.
export HERD_PHP_83_INI_SCAN_DIR="$HOME/Library/Application Support/Herd/config/php/83/"
export HERD_PHP_83_INI_SCAN_DIR="$HOME/Library/Application\ Support/Herd/config/php/83/"
# Herd injected PHP 7.4 configuration.
export HERD_PHP_74_INI_SCAN_DIR="$HOME/Library/Application Support/Herd/config/php/74/"
export HERD_PHP_74_INI_SCAN_DIR="$HOME/Library/Application\ Support/Herd/config/php/74/"
}
# nb, https://xwmx.github.io/nb/

View File

@@ -32,4 +32,4 @@
"NEWS.md": "6077"
},
"version": 6
}
}

View File

@@ -111,9 +111,7 @@
{
"background": "transparent",
"foreground": "lightGreen",
"foreground_templates": [
"{{ if gt .Code 0 }}red{{ end }}"
],
"foreground_templates": ["{{ if gt .Code 0 }}red{{ end }}"],
"properties": {
"always_enabled": true
},
@@ -128,9 +126,7 @@
"transient_prompt": {
"background": "transparent",
"foreground": "lightGreen",
"foreground_templates": [
"{{ if gt .Code 0 }}red{{ end }}"
],
"foreground_templates": ["{{ if gt .Code 0 }}red{{ end }}"],
"template": "\u279c "
},
"version": 2

1
local/bin/asdf Submodule

Submodule local/bin/asdf added at ccdd47df9b

View File

@@ -70,7 +70,7 @@ function section_install
# $0 install dotenv
$0 install fzf
# $0 install gh
$0 install go
# $0 install go
$0 install cheat-databases
$0 install imagick
# $0 install neofetch

View File

@@ -2,12 +2,12 @@
# Load our configuration files
# Copyright (c) 2023 Ismo Vuorinen. All Rights Reserved.
set -euo pipefail
# Set verbosity with VERBOSE=1 x-load-configs
# Enable verbosity with VERBOSE=1 x-load-configs
VERBOSE="${VERBOSE:=0}"
# Enable debugging with DEBUG=1 x-load-configs
DEBUG="${DEBUG:=0}"
[ "$VERBOSE" = "1" ] && {
[ "$DEBUG" = "1" ] && {
set -x
}
@@ -37,7 +37,7 @@ loadConfigFiles()
HOST_FILE=$CONFIG_FILE-$HOST
SECRET_HOST=$HOST_FILE-secret
[ "$VERBOSE" = "1" ] && configMsg "?" "$CONFIG_FILE"
[ "$VERBOSE" = "1" ] && configMsg "Looking for" "$CONFIG_FILE"
# global (exports|alias|functions) FILENAME for all hosts
# shellcheck source=../config/exports
@@ -47,19 +47,19 @@ loadConfigFiles()
# global secret FILENAME, git ignored
# shellcheck source=../config/exports-secret
[ "$VERBOSE" = "1" ] && configMsg "?" "$SECRET_FILE"
[ "$VERBOSE" = "1" ] && configMsg "Looking for" "$SECRET_FILE"
[ -r "$SECRET_FILE" ] && {
source "$SECRET_FILE" && [ "$VERBOSE" = "1" ] && configMsg "Found" "$SECRET_FILE"
}
# host specific (exports|alias|functions) FILENAME
# shellcheck source=../config/exports
[ "$VERBOSE" = "1" ] && configMsg "?" "$HOST_FILE"
[ "$VERBOSE" = "1" ] && configMsg "Looking for" "$HOST_FILE"
[ -r "$HOST_FILE" ] && {
source "$HOST_FILE" && [ "$VERBOSE" = "1" ] && configMsg "Found" "$HOST_FILE"
}
# host specific (exports|alias|functions) FILENAME, git ignored
# shellcheck source=../config/exports
[ "$VERBOSE" = "1" ] && configMsg "?" "$SECRET_HOST"
[ "$VERBOSE" = "1" ] && configMsg "Looking for" "$SECRET_HOST"
[ -r "$SECRET_HOST" ] && {
source "$SECRET_HOST" \
&& [ "$VERBOSE" = "1" ] && configMsg "Found" "$SECRET_HOST"

View File

@@ -28,7 +28,8 @@
},
"homepage": "https://github.com/ivuorinen/dotfiles#readme",
"devDependencies": {
"@ivuorinen/base-configs": "^1.1.0"
"@ivuorinen/base-configs": "^1.1.0",
"prettier-plugin-sh": "^0.14.0"
},
"packageManager": "yarn@1.22.22"
}

View File

@@ -5,23 +5,11 @@
source "${XDG_CONFIG_HOME}/shared"
source "${DOTFILES}/scripts/shared.sh"
# Installation variables
ASDF_GIT="https://github.com/asdf-vm/asdf.git"
ASDF_PATH="${XDG_DATA_HOME}/asdf"
if [ ! -d "$ASDF_PATH" ]; then
git clone --depth 1 "$ASDF_GIT" "$ASDF_PATH" \
--branch v0.14.0
msg_done "asdf ($ASDF_PATH/) installed"
else
msg_done "asdf ($ASDF_PATH/) already installed"
fi
export PATH="${ASDF_PATH}/bin:$PATH"
export ASDF_DIR="${XDG_BIN_HOME}/asdf"
export PATH="${ASDF_DIR}/bin:$PATH"
msg "Sourcing asdf in your shell"
. "$ASDF_PATH/asdf.sh"
. "$ASDF_DIR/asdf.sh"
# Update asdf, and plugins
asdf update
@@ -35,7 +23,6 @@ asdf-plugin-manager add-all
asdf install
ASDF_INSTALLABLES=(
"nodejs:github.com/asdf-vm/asdf-nodejs.git"
"1password-cli:github.com/NeoHsu/asdf-1password-cli.git"
"age:github.com/threkk/asdf-age.git"
"bottom:github.com/carbonteq/asdf-btm.git"
@@ -44,20 +31,22 @@ ASDF_INSTALLABLES=(
"eza:github.com/lwiechec/asdf-eza.git"
"fd:gitlab.com/wt0f/asdf-fd.git"
"github-cli:github.com/bartlomiejdanek/asdf-github-cli.git"
"golang:github.com/asdf-community/asdf-golang.git"
"hadolint:github.com/devlincashman/asdf-hadolint.git"
"kubectl:github.com/asdf-community/asdf-kubectl.git"
"lazygit:github.com/nklmilojevic/asdf-lazygit.git"
"nodejs:github.com/asdf-vm/asdf-nodejs.git"
"pipx:github.com/yozachar/asdf-pipx.git"
"pre-commit:github.com/jonathanmorley/asdf-pre-commit.git"
"ripgrep:gitlab.com/wt0f/asdf-ripgrep.git"
"semgrep:github.com/brentjanderson/asdf-semgrep.git"
"terraform-ls:github.com/asdf-community/asdf-hashicorp.git"
"vault:github.com/asdf-community/asdf-hashicorp.git"
"shellcheck:github.com/luizm/asdf-shellcheck.git"
"shfmt:github.com/luizm/asdf-shfmt.git"
"terraform-ls:github.com/asdf-community/asdf-hashicorp.git"
"terraform-lsp:github.com/bartlomiejdanek/asdf-terraform-lsp.git"
"terragrunt:github.com/ohmer/asdf-terragrunt.git"
"tf-summarize:github.com/adamcrews/asdf-tf-summarize.git"
"vault:github.com/asdf-community/asdf-hashicorp.git"
"yamllint:github.com/ericcornelissen/asdf-yamllint.git"
"yq:github.com/sudermanjr/asdf-yq.git"
)

View File

@@ -53,7 +53,7 @@ x-have git-profile && {
x-have antidot && {
antidot update \
&& msg_ok "Updated antidot database"
&& msg_ok "Updated antidot database"
}
echo ""

View File

@@ -3418,6 +3418,11 @@ mute-stream@^1.0.0:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e"
integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==
mvdan-sh@^0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/mvdan-sh/-/mvdan-sh-0.10.1.tgz#5b3a4462a89cf20739b12d851589342c875f4d1f"
integrity sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==
mz@^2.4.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@@ -4008,6 +4013,14 @@ prelude-ls@^1.2.1:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
prettier-plugin-sh@^0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/prettier-plugin-sh/-/prettier-plugin-sh-0.14.0.tgz#22b186adea79b36212ccd9faa8dd01f33ef34ff6"
integrity sha512-hfXulj5+zEl/ulrO5kMuuTPKmXvOg0bnLHY1hKFNN/N+/903iZbNp8NyZBTsgI8dtkSgFfAEIQq0IQTyP1ZVFQ==
dependencies:
mvdan-sh "^0.10.1"
sh-syntax "^0.4.1"
prettier@3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a"
@@ -4353,6 +4366,13 @@ set-function-name@^2.0.1:
functions-have-names "^1.2.3"
has-property-descriptors "^1.0.2"
sh-syntax@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/sh-syntax/-/sh-syntax-0.4.2.tgz#3bad5c6134b510e7b4c53b16f409ce4fd2a65245"
integrity sha512-/l2UZ5fhGZLVZa16XQM9/Vq/hezGGbdHeVEA01uWjOL1+7Ek/gt6FquW0iKKws4a9AYPYvlz6RyVvjh3JxOteg==
dependencies:
tslib "^2.6.2"
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -4796,6 +4816,11 @@ tsconfig-paths@^3.15.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
tslib@^2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
tuf-js@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.1.tgz#fdd8794b644af1a75c7aaa2b197ddffeb2911b56"