5.8 KiB
Bash folders
Collection of Bash scripts to execute functionalities in folders, such as:
Video optimizer
Folder that watches when new videos are added and optimizes them.
Requirements
ffmpeg
Example in Debian.
sudo apt install ffmpeg
Install
curl -o bash-folders-video-optimizer https://raw.githubusercontent.com/tanrax/bash-folders/main/bash-folders-video-optimizer.sh && chmod +x bash-folders-video-optimizer && sudo rm -f /usr/local/bin/bash-folders-video-optimizer && sudo mv bash-folders-video-optimizer /usr/local/bin && echo "🎉 Successfully installed! 🎉"
Test
bash-folders-video-optimizer --help
Run
bash-folders-video-optimizer --folder [folder to watch]
Example.
mkdir optimizer
bash-folders-video-optimizer --folder optimizer
And leave a video that you want to optimize in the folder optimizer
.
Start at operating system startup
Option 1: Service
Create a file in /etc/systemd/system/bash-folders-video-optimizer.service
with the following content.
[Unit]
Description=Folder that watches when new videos are added and optimizes them.
[Service]
Restart=always
RestartSec=5
User=[user]
ExecStart=bash-folders-video-optimizer --folder [folder to watch]
[Install]
WantedBy=multi-user.target
Edit it to your needs.
Recharge services.
sudo systemctl daemon-reload
And activate it.
sudo systemctl enable bash-folders-video-optimizer
sudo systemctl start bash-folders-video-optimizer
Option 2: Cron
Open.
crontab -e
Add to document.
@reboot bash-folders-video-optimizer --folder [folder to watch] >/dev/null 2>&1 &
Battery hook
Folder with custom scripts to be launched in different battery states.
The filename of the scripts, or your custom scripts, must be:
discharging
: When the battery is in use.charging
: When the battery is charging.low
: When it reaches the low percentage. Default 15.high
: When it reaches the high percentage. Default 85.full
: When the battery is full.
They must have execution permissions. If any of them do not exist, they will be ignored.
Install
curl -o bash-folders-battery-hook https://raw.githubusercontent.com/tanrax/bash-folders/main/bash-folders-battery-hook.sh && chmod +x bash-folders-battery-hook && sudo rm -f /usr/local/bin/bash-folders-battery-hook && sudo mv bash-folders-battery-hook /usr/local/bin && echo "🎉 Successfully installed! 🎉"
Test
bash-folders-battery-hook --help
Run
bash-folders-battery-hook --folder [folder path]
Example.
mkdir battery-scripts
bash-folders-battery-hook --folder battery-scripts
Inside the folder all the empty scripts will be created, which you will have to edit to include the instructions in Bash.
Start at operating system startup
Option 1: Service
Create a file in /etc/systemd/system/bash-folders-battery-hook.service
with the following content.
[Unit]
Description=Folder with custom scripts to be launched in different battery states.
[Service]
Restart=always
RestartSec=5
User=[user]
ExecStart=bash-folders-battery-hook --folder [folder path]
[Install]
WantedBy=multi-user.target
Edit it to your needs.
Now you will need the script to run every so often to check the battery status. The best solution is to create a timer
.
Create a file in /etc/systemd/system/bash-folders-battery-hook.timer
with the following content.
[Unit]
Description=Folder with custom scripts to be launched in different battery states every minute.
[Timer]
OnCalendar=*-*-* *:*:00
Persistent=true
[Install]
WantedBy=timers.target
Recharge services.
sudo systemctl daemon-reload
And activate it.
sudo systemctl enable bash-folders-battery-hook.timer
sudo systemctl start bash-folders-battery-hook.timer
Option 2: Cron
Open.
crontab -e
Add to document.
* * * * * bash-folders-battery-hook --folder [folder path]
Image to WebP
Folder that watches when new image (PNG or JPEG) are added and transform to WebP format.
Requirements
webp
Example in Debian.
sudo apt install webp
Install
curl -o bash-folders-image-to-webp https://raw.githubusercontent.com/tanrax/bash-folders/main/bash-folders-image-to-webp.sh && chmod +x bash-folders-image-to-webp && sudo rm -f /usr/local/bin/bash-folders-image-to-webp && sudo mv bash-folders-image-to-webp /usr/local/bin && echo "🎉 Successfully installed! 🎉"
Test
bash-folders-image-to-webp --help
Run
bash-folders-image-to-webp --folder [folder to watch]
Example.
mkdir image-to-webp-converter
bash-folders-image-to-webp --folder image-to-webp-converter
And leave a image that you want to optimize in the folder image-to-webp-converter
.
Start at operating system startup
Option 1: Service
Create a file in /etc/systemd/system/bash-folders-image-to-webp.service
with the following content.
[Unit]
Description=Folder that watches when new image (PNG or JPEG) are added and transform to WebP format.
[Service]
Restart=always
RestartSec=5
User=[user]
ExecStart=bash-folders-image-to-webp --folder [folder to watch]
[Install]
WantedBy=multi-user.target
Edit it to your needs.
Recharge services.
sudo systemctl daemon-reload
And activate it.
sudo systemctl enable bash-folders-image-to-webp
sudo systemctl start bash-folders-image-to-webp
Option 2: Cron
Open.
crontab -e
Add to document.
@reboot bash-folders-image-to-webp --folder [folder to watch] >/dev/null 2>&1 &
Development
Check syntax
shellcheck [script]