Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
rick | a06e19c584 | |
r1k | a930b31789 |
119
twtxt-c
119
twtxt-c
|
@ -3,6 +3,16 @@
|
||||||
PROGNAME=${0##*/}
|
PROGNAME=${0##*/}
|
||||||
VERSION="0.0.1"
|
VERSION="0.0.1"
|
||||||
|
|
||||||
|
# config variables
|
||||||
|
# you can set these according to your choice
|
||||||
|
nick=$USER # change this to your desired nick
|
||||||
|
path_to_twtxt=$HOME/twtxt.txt
|
||||||
|
url="https://example.com/twtxt.txt"
|
||||||
|
# list of getwtxt registries api
|
||||||
|
reg1="https://twtxt.envs.net/api/plain/"
|
||||||
|
reg2="https://twtxt.tilde.institute/api/plain/"
|
||||||
|
|
||||||
|
|
||||||
error_exit() {
|
error_exit() {
|
||||||
printf "%s: %s\n" "$PROGNAME" "${1:-"Unknown Error"}" >&2
|
printf "%s: %s\n" "$PROGNAME" "${1:-"Unknown Error"}" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -36,6 +46,8 @@ Commands:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
read_config () {
|
read_config () {
|
||||||
declare -A v=()
|
declare -A v=()
|
||||||
while read -r var value; do
|
while read -r var value; do
|
||||||
|
@ -48,18 +60,101 @@ case $1 in
|
||||||
-* | --*)
|
-* | --*)
|
||||||
usage; error_exit "unknown option $1" ;;
|
usage; error_exit "unknown option $1" ;;
|
||||||
init)
|
init)
|
||||||
read -p "Your desired nickname [$USER]: " nick
|
printf "The config variables are stored in this script itself \n Enter yes if you want to open it now \n Enter no if you want to edit it yourself later\n"
|
||||||
nick=${nick:-"$USER"}
|
while true; do
|
||||||
read -p "Type path to your twtxt [/home/$USER/twtxt.txt]: " path_to_twtxt
|
read -rp "$2 " yn
|
||||||
path_to_twtxt=${path_to_twtxt:-"/home/$USER/twtxt.txt"}
|
case $yn in
|
||||||
echo "" >> $path_to_twtxt
|
[Yy]*) open=1; break;;
|
||||||
read -p "Type path to your twtxt config folder [/home/$USER/.config/twtxt-c/]: " config
|
[Nn]*) open=0; break;;
|
||||||
config=${config:-"/home/$USER/.config/twtxt-c/"}
|
*) echo "Please answer yes or no"
|
||||||
mkdir -p $config
|
esac
|
||||||
read -p "URL to twtxt [https://example.com/twtxt.txt]: " url
|
done
|
||||||
url=${url:-"https://example.com/twtxt.txt"}
|
if [[ $open == 1 ]]
|
||||||
printf "[twtxt]\n nick = %s\n twtfile = %s\n url = %s\n" "$nick" "$path_to_twtxt" "$url" >> $config/config
|
then {
|
||||||
printf "https://twtxt.envs.net/api/plain/\nhttps://twtxt.tilde.institute/api/plain/\n" > $config/registry
|
if which twtxt-c &> /dev/null
|
||||||
|
then
|
||||||
|
scriptpath=$(which twtxt-c)
|
||||||
|
else {
|
||||||
|
read -p "Path to this script [`pwd`/twtxt-c]" scriptpath
|
||||||
|
scriptpath=${scriptpath:-"`pwd`/twtxt-c"}
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
if [ -z "$EDITOR" ]
|
||||||
|
then
|
||||||
|
{
|
||||||
|
if which vim &> /dev/null
|
||||||
|
then
|
||||||
|
vim $scriptpath
|
||||||
|
elif which nvim &> /dev/null
|
||||||
|
then
|
||||||
|
nvim $scriptpath
|
||||||
|
elif which emacs &> /dev/null
|
||||||
|
then
|
||||||
|
emacs -nw $scriptpath
|
||||||
|
elif which nano &> /dev/null
|
||||||
|
then
|
||||||
|
nano $scriptpath
|
||||||
|
else
|
||||||
|
echo " EDITOR variable is empty and vim, neovim, emacs and nano not found. please open this script using your preferred text editor and set the config variables"
|
||||||
|
fi
|
||||||
|
echo "Now you can tweet using twtxt-c tweet <tweet>"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$EDITOR $scriptpath
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
else
|
||||||
|
echo "Please edit the script and set nick, path to twtxt file and url for twtxt file"
|
||||||
|
fi
|
||||||
|
echo "would you like to copy this script to $HOME/.local/bin [yes/no]"
|
||||||
|
while true; do
|
||||||
|
read -rp "$3 " yn
|
||||||
|
case $yn in
|
||||||
|
[Yy]*) copy=1; break;;
|
||||||
|
[Nn]*) copy=0; break;;
|
||||||
|
*) echo "Please answer yes or no"
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
if [[ $copy == 1 ]]
|
||||||
|
then {
|
||||||
|
# give warning if path not ok
|
||||||
|
if [[ $PATH != *"$HOME/.local/bin"* && $PATH != *"~/.local/bin"* ]]
|
||||||
|
then
|
||||||
|
echo " Warning: $HOME/.local/bin is not in PATH "
|
||||||
|
fi
|
||||||
|
# checking for scriptpath
|
||||||
|
if which twtxt-c &> /dev/null
|
||||||
|
then
|
||||||
|
echo "already present"
|
||||||
|
elif [[ -z "$scriptpath" ]]
|
||||||
|
then {
|
||||||
|
read -p "Path to this script [`pwd`/twtxt-c]" scriptpath
|
||||||
|
scriptpath=${scriptpath:-"`pwd`/twtxt-c"}
|
||||||
|
cp $scriptpath $HOME/.local/bin/
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cp $scriptpath $HOME/.local/bin/
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "Would you like to set the following aliases \n ttc=twtxt-c timeline\n twtc=twtxt-c tweet\n"
|
||||||
|
while true; do
|
||||||
|
read -rp "$3 " yn
|
||||||
|
case $yn in
|
||||||
|
[Yy]*) als=1; break;;
|
||||||
|
[Nn]*) als=0; break;;
|
||||||
|
*) echo "Please answer yes or no"
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
if [[ $als == 1 ]]
|
||||||
|
then {
|
||||||
|
read -p "Path to alias file [$HOME/.bash_aliases]" alspath
|
||||||
|
alspath=${alspath:-"$HOME/.bash_aliases"}
|
||||||
|
echo "alias ttc='twtxt-c timeline'" >> $alspath
|
||||||
|
echo "alias twtc='twtxt-c tweet'" >> $alspath
|
||||||
|
}
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
tweet)
|
tweet)
|
||||||
export config=/home/$USER/.config/twtxt-c/config
|
export config=/home/$USER/.config/twtxt-c/config
|
||||||
|
|
Loading…
Reference in New Issue