47 lines
1 KiB
Text
47 lines
1 KiB
Text
|
__is_arch() {
|
||
|
. /etc/os-release
|
||
|
if [ "$ID" = "arch" ]; then return 0; else return 1; fi
|
||
|
}
|
||
|
|
||
|
pkg_once() {
|
||
|
if [ ! __is_arch ]; then
|
||
|
printf "This command is only for Arch Linux.\n"
|
||
|
return
|
||
|
fi
|
||
|
if [ ! -n "$1" ]; then
|
||
|
printf "Usage: pkg_once <PACKAGE_NAME> [command]\n"
|
||
|
printf "command is optional; if there is no command the package name is ran\n"
|
||
|
return
|
||
|
fi
|
||
|
printf "Installing $1...\n"
|
||
|
yay -S --noconfirm $1 > /dev/null
|
||
|
|
||
|
if [ ! -n "$2" ]; then $1; else $2; fi
|
||
|
printf "Remoiving $1..."
|
||
|
yay -R --noconfirm $1 > /dev/null
|
||
|
echo "done.\n"
|
||
|
}
|
||
|
|
||
|
rando () {
|
||
|
case $1 in
|
||
|
*|d|default) tr -dc A-Za-z0-9 </dev/urandom | head -c $2 ; echo '' ;;
|
||
|
s|special) tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c $2 ; echo ;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
touchx () {
|
||
|
case $1 in
|
||
|
--shebang) content="#!/bin/sh"; file=$2 ;;
|
||
|
*) file=$1 ;;
|
||
|
esac
|
||
|
if [ -s $file ]; then
|
||
|
printf 'file exists'
|
||
|
return
|
||
|
fi
|
||
|
touch $file
|
||
|
if [ -n "$content" ]; then
|
||
|
printf '%s\n' $content >> $file
|
||
|
fi
|
||
|
chmod +x $file
|
||
|
printf '%s' $file
|
||
|
}
|