Initialize files.

This commit is contained in:
Hyperling 2024-02-10 13:00:17 -07:00
parent 79f24cb223
commit f1887073ec
5 changed files with 217 additions and 1 deletions

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Chad
Copyright (c) 2024 Hyperling
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

49
README.md Normal file
View File

@ -0,0 +1,49 @@
# Termux Setup
Hyperling's scripts for a productive Termux environment.
# Install / How To Use
1. Download the repository.
```sh
git clone https://github.com/Hyperling/Termux termux
```
1. Dive into the directory.
```sh
cd termux
```
1. Ensure all files can be executed.
```sh
chmod 755 *.sh
```
1. Make any modifications to the env.example file
- Only if you do not already have a ~/.env file
1. Run the deployment script.
```sh
./setup.sh
```
1. All done!
# Updates
Each program is developed to be run numerous times, so all that needs done is following the Install instructions again.
# Development
Since the project self-destructs, it is recommended to copy the folder for each run, then execute the copied files.
```sh
cp -r ../termux ~/termux-copy
cd ~/termux-copy
chmod 755 *.sh
./setup.sh
```

86
bashrc.sh Normal file
View File

@ -0,0 +1,86 @@
# 2024-02-10 Hyperling
if [[ -e ~/.env ]]; then
source ~/.env
fi
## Aliases ##
# Quickly log onto production server.
# Setting up ssh-keygen and ssh-copy-id make this even faster!
if [[ -n $PROD_PORT && -n $PROD_USER && -n $PROD_NAME ]]; then
alias prod="ssh -p $PROD_PORT $PROD_USER@$PROD_NAME"
else
alias prod="echo 'ERROR: .env not set up properly, please fix and reload RC.'"
fi
# Easily get to storage device.
export SS="~/storage/shared/"
alias ss="cd $SS"
alias sd="ss"
alias storage="ss"
alias home="ss"
# Help Prevent Mistakes
alias cp="cp -v"
alias mv="mv -v"
alias rm="echo 'Move to ~/storage/shared/TRASH/ instead!'"
## Functions ##
function process-video-usage {
echo "USAGE: process-video oldFile newFile [videoBitrate] [audioBitrate]"
echo "Call ffmpeg with preferred video posting settings."
}
function process-video {
# Parameters
file="$1"
newfile="$2"
video="$3"
audio="$4"
# Validations
if [[ -z $file || ! -e $file ]]; then
echo "ERROR: Original file '$file' does not exist." >&2
process-video-usage
return 1
fi
if [[ -z $newfile || -e $newfile ]]; then
echo "ERROR: New file '$newfile' already exists." >&2
process-video-usage
elif [[ -e $newfile ]]; then
echo "ERROR: New file '$newfile' already exists." >&2
process-video-usage
return 1
fi
if [[ -z $video ]]; then
video="-b:v 2000k"
else
video="-b:v $video"
fi
if [[ -z $audio ]]; then
audio="-b:a 192k"
else
audio="-b:a $audio"
fi
echo "`date` - Converting '$file' to '$newfile' using '$video $audio'"
# Main
ffmpeg -nostdin -hide_banner -loglevel quiet \
$video $audio -movflags +faststart \
-af "dynaudnorm=f=33:g=65:p=0.66:m=33." \
-i "$file" "$newfile"
status="$?"
echo -e "\n`date` - Finished with status '$status'."
return $status
}
cd ~/storage/shared/
echo "'$0' completed!"

8
env.example Normal file
View File

@ -0,0 +1,8 @@
# 2024-02-10 Hyperling
# Variables for a fast-access SSH alias.
PROD_USER=username
PROD_NAME=example.com
PROD_PORT=2222
echo "'$0' completed!"

73
setup.sh Normal file
View File

@ -0,0 +1,73 @@
# No Shebang For Termux
# 2024-02-10 Hyperling
echo "`date` - Starting Hyperling's Termux Setup"
DIR="`dirname $0`"
cd $DIR
DIR="`pwd`"
echo -e "\n`date` - Upgrade Package Repos"
pkg update &&
pkg upgrade
echo -e "\n`date` - Check Storage Permission"
if [[ ! -e ~/storage/shared ]]; then
sleep 3
termux-setup-storage
if [[ -e ~/storage/shared/ ]]; then
echo "~/storage/shared/ now exists. :)"
else
echo "ERROR: Something ain't right, Jim! Abort!" >&2
exit 1
fi
else
echo "Everything looks good already, pal."
fi
echo -e "\n`date` - Install Software"
pkg install \
openssh tsu vim htop git cronie \
nmap traceroute \
ffmpeg
echo -e "\n`date` - BASH Environment"
if [[ ! -e ~/.env ]]; then
if [[ -e env.example ]]; then
mv -v env.example ~/.env
else
echo "ERROR: Neither .env or env.example found." >&2
fi
else
echo "'.env' already exists. Good job!"
rm -v env.example
fi
if [[ -e bashrc.sh ]]; then
mv -v bashrc.sh ~/.bashrc
else
echo "ERROR: bashrc.sh not found, skipping." >&2
fi
echo -e "\n`date` - Cleanup"
if [[ -d ~/TRASH ]]; then
rm -rfv ~/TRASH
fi
if [[ ! -e ~/storage/shared/TRASH ]]; then
mkdir -pv ~/storage/shared/TRASH
fi
ln -s ~/storage/shared/TRASH ~/TRASH
cd ..
if [[ -n $DIR && $DIR != "/" ]]; then
mv -v $DIR ~/TRASH/termux-"`date +'%Y%m%d%H%M%S'`" |
grep -v '/.git/'
fi
echo -e "\n*******"
echo "Don't forget to reload your environment!"
echo " source .bashrc"
echo "*******"
echo -e "\n`date` - Finished Hyperling's Termux Setup"
exit 0