solus-packages/common/Scripts/helpers.sh
Joey Riches de3ba6f9fb common/Scripts: replace annoying pushd usage with cd in helpers.sh
To match .fish and .zsh helpers. Plus, it was annoying having massive
pushd stacks.
2023-10-20 12:27:14 +01:00

49 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# Goes to the root directory of the solus packages
# git repository from anywhere on the filesystem.
# This function will only work if this script is sourced
# by your bash shell.
function gotosoluspkgs() {
cd $(dirname $(readlink "${BASH_SOURCE[0]}"))/../../
}
# Goes to the root directory of the git repository
function goroot() {
cd $(git rev-parse --show-toplevel)
}
# Push into a package directory
function gotopkg() {
cd $(git rev-parse --show-toplevel)/packages/*/$1
}
# What provides a lib
function whatprovides() {
grep $1 $(git rev-parse --show-toplevel)/packages/*/*/abi_libs
}
# What uses a lib
function whatuses() {
grep $1 $(git rev-parse --show-toplevel)/packages/*/*/abi_used_libs
}
# Bash completions
_gotopkg()
{
_list=$(ls $(git rev-parse --show-toplevel)/packages/*/)
local cur prev
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ $COMP_CWORD -eq 1 ]] ; then
COMPREPLY=( $(compgen -W "${_list}" -- ${cur}) )
return 0
fi
}
complete -F _gotopkg gotopkg