--- 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