install.fairie/home/dot_local/Taskfile-local.yml
2022-12-24 21:35:29 -05:00

159 lines
5.6 KiB
YAML

---
version: '3'
# This is your local Taskfile.yml file. You can define tasks and scripts while leveraging some of the nifty
# features of https://taskfile.dev. You can safely place your scripts here and they will be combined with
# a veteran stack of Taskfile.yml files. You can access the tasks defined here by running
# `task local:default` for example. You must keep all the tasks in this file without including other files
# because the main Taskfile.yml is a symlinked one. Anyway, try `task local:default`.
tasks:
bitwarden:
cmds:
- |
# Command to copy to clipboard
COPY="wl-copy"
# Get list of all logins as json
logins="$(bw list items)"
# Grab the name of every login and pip them into fzf
name="$(echo "$logins" | jq -r '.[].name' | fzf)"
# Find the login with the selected name (as a json)
selected="$(echo "$logins" | jq -r ".[] | select(.name == \"$name\")")"
# Print the name of the selected login
echo "Name: $(echo "$selected" | jq -r '.name')"
echo "> Copying Username"
# Copy the username to the clipboard
printf '%s' "$(echo "$selected" | jq -r '.login.username')" | $COPY
echo "Press any key to copy password..."
# Wait for user input before coping the password
read -r
echo "> Copying Password"
# Copy the password to the clipboard
printf '%s' "$(echo "$selected" | jq -r '.login.password')" | $COPY
browser:profile:save:brave:
vars:
BrowserProfile: >
{{if eq OS "darwin"}}~/Library/Application\ Support/BraveSoftware/Brave-Browser/Default{{end}}
{{if eq OS "linux"}}{{end}}
{{if eq OS "windows"}}{{end}}
cmds:
- tar -czpf ~/brave-profile.tar.gz {{.BrowserProfile}}
browser:profile:save:chrome:
vars:
BrowserProfile: >
{{if eq OS "darwin"}}~/Library/Application\ Support/BraveSoftware/Brave-Browser/Default{{end}}
{{if eq OS "linux"}}{{end}}
{{if eq OS "windows"}}{{end}}
cmds:
- tar -czpf ~/brave-profile.tar.gz {{.BrowserProfile}}
browser:profile:save:edge:
vars:
BrowserProfile: >
{{if eq OS "darwin"}}~/Library/Application\ Support/BraveSoftware/Brave-Browser/Default{{end}}
{{if eq OS "linux"}}{{end}}
{{if eq OS "windows"}}{{end}}
cmds:
- tar -czpf ~/brave-profile.tar.gz {{.BrowserProfile}}
browser:profile:save:firefox:
vars:
BrowserProfile: >
{{if eq OS "darwin"}}~/Library/Application\ Support/BraveSoftware/Brave-Browser/Default{{end}}
{{if eq OS "linux"}}{{end}}
{{if eq OS "windows"}}{{end}}
cmds:
- tar -czpf ~/brave-profile.tar.gz {{.BrowserProfile}}
default: echo "Get started on https://taskfile.dev"
font-test:
cmds:
- |
echo -en "Regular"
echo -en "\e[3m Italic \e[0m"
echo -en "\e[1m Bold \e[0m"
echo -en "\e[3m\e[1m Bold-Italic \e[0m"
echo -en " \e[4mUnderline\e[0m "
echo -e " \e[9mStrikethrough\e[0m"
provision:
desc: Provision the environment
summary: |
# Provision the Environment
This task will provision the current environment using a variety of tools.
It will prompt you for details like what type of environment you are provisioning.
Optionally, you can skip the prompt by passing a CLI argument like so:
**Example:**
`run localhost:provision -- terminal`
The above example will run the `localhost:provision:terminal` task.
cmds:
- |
if [ "{{.CLI_ARGS}}" != "" ]; then
run localhost:provision:{{.CLI_ARGS}}
else
run localhost:provision:prompt
fi
provision:dev:
deps:
- :install:software:bundle
- provision:terminal
cmds:
- brew bundle --file "$HOME/.local/Brewfile.dev"
provision:full:
deps:
- :install:software:bundle
- provision:dev
cmds:
- brew bundle --file "$HOME/.local/Brewfile.full"
provision:prompt:
deps:
- :install:software:gum
cmds:
- logg prompt 'Select the type of environment you would like to provision'
- logg prompt '`Terminal` - Installs standard CLI tools that augment the terminal experience'
- logg prompt '`Development` - Provisions Terminal and also installs useful tools for development'
- logg prompt '`Full` - Provisions with both Terminal and Development and then it installs all the Brewfile-supported software from the Gas Station project (e.g. https://gitlab.com/megabyte-labs/gas-station).'
- |
CHOICE="$(logg choose "Terminal" "Development" "Full")"
if [ "$CHOICE" = 'Development' ]; then
run localhost:provision:dev
elif [ "$CHOICE" = 'Terminal' ]; then
run localhost:provision:terminal
elif [ "$CHOICE" = 'Full' ]; then
run localhost:provision:full
fi
provision:terminal:
deps:
- :install:software:bundle
cmds:
- brew bundle --file "$HOME/.local/Brewfile.terminal"
squash-symlink:
summary: |
Example: find . -type l -exec /path/tos/script {} +
cmds:
- |
set -e
for link; do
test -h "$link" || continue
dir=$(dirname "$link")
reltarget=$(readlink "$link")
case $reltarget in
/*) abstarget=$reltarget;;
*) abstarget=$dir/$reltarget;;
esac
rm -fv "$link"
cp -afv "$abstarget" "$link" || {
# on failure, restore the symlink
rm -rfv "$link"
ln -sfv "$reltarget" "$link"
}
done