General Enhancements #2
@ -95,30 +95,39 @@
|
||||
case $pkg_mgr in
|
||||
apt)
|
||||
if [[ $distribution != "ParrotOS" ]]; then
|
||||
echo "*** Apt ***" &&
|
||||
echo -e "******* Apt *******\n*** Update Cache ***" &&
|
||||
sudo apt update &&
|
||||
echo -e "\n*** Auto Remove ***" &&
|
||||
sudo apt autoremove {{ update_accept_var }} &&
|
||||
echo -e "\n*** Clean ***" &&
|
||||
sudo apt clean {{ update_accept_var }} &&
|
||||
echo -e "Cleaned!\n\n*** Configure DPKG ***" &&
|
||||
sudo dpkg --configure -a &&
|
||||
echo -e "\n*** Fix Broken/Missing ***" &&
|
||||
sudo apt --fix-broken --fix-missing install &&
|
||||
echo -e "\n*** Upgrade ***" &&
|
||||
sudo apt dist-upgrade --allow-downgrades --fix-broken \
|
||||
--fix-missing {{ update_accept_var }} ||
|
||||
return 1
|
||||
else
|
||||
echo "*** Parrot ***"
|
||||
echo -e "******* Parrot *******\n*** Update Cache ***" &&
|
||||
sudo apt update &&
|
||||
echo -e "\n*** Auto Remove ***" &&
|
||||
sudo apt autoremove {{ update_accept_var }} &&
|
||||
parrot_mirrors_suck=true &&
|
||||
while [[ $parrot_mirrors_suck ]]; do
|
||||
unset parrot_mirrors_suck
|
||||
echo -e "\n*** Upgrade ***"
|
||||
sudo parrot-upgrade
|
||||
if [[ $? != 0 ]]; then
|
||||
parrot_mirrors_suck=true
|
||||
echo -e "*** Update Cache, Again ***"
|
||||
sudo apt update --fix-missing
|
||||
fi
|
||||
done ||
|
||||
return 1
|
||||
fi
|
||||
echo -e "\n******* Mission Complete!! *******"
|
||||
;;
|
||||
|
||||
pacman)
|
||||
|
@ -34,9 +34,12 @@ function usage() {
|
||||
|
||||
Parameters:
|
||||
-s SIZE : Integer for the maximum length of either image dimension.
|
||||
Default size is 2000.
|
||||
-l LOCATION : The specific image or folder which needs images shrunk.
|
||||
Default location is the current directory.
|
||||
-r : Recursively shrink images based on the location passed.
|
||||
-f : Force the image to be shrunk even if a file already exists for it.
|
||||
-F : FORCE the image to be shrunk even if the file is already shrunk.
|
||||
-d : Delete the original image if the compressed image is smaller.
|
||||
-c : Clean the filename of underscores, dashes, 'IMG', etc.
|
||||
-A : Resursively Force, Delete, and Clean.
|
||||
@ -48,12 +51,13 @@ function usage() {
|
||||
|
||||
## Parameters ##
|
||||
|
||||
while getopts ":s:l:rfdcAhx" opt; do
|
||||
while getopts ":s:l:rfFdcAhx" opt; do
|
||||
case $opt in
|
||||
s) in_size="$OPTARG" && size="$in_size" ;;
|
||||
l) location="$OPTARG" ;;
|
||||
r) recurse="Y" && search="find" ;;
|
||||
f) force="Y" ;;
|
||||
F) super_force="Y" ;;
|
||||
d) delete="Y" ;;
|
||||
c) clean="Y" ;;
|
||||
A) recurse="Y" && search="find" && force="Y" && delete="Y" && clean="Y" ;;
|
||||
@ -90,8 +94,8 @@ $search "$location" | sort | while read image; do
|
||||
# Avoid processing directories no matter the name.
|
||||
[ -d "$image" ] && continue
|
||||
|
||||
# Avoid processing files previously shrunk.
|
||||
[[ "$image" == *"$tag"* ]] && continue
|
||||
# Avoid processing files previously shrunk, unless we are FORCEing.
|
||||
[[ "$image" == *"$tag"* && -z "$super_force" ]] && continue
|
||||
|
||||
echo -e "\n$image"
|
||||
|
||||
@ -107,7 +111,7 @@ $search "$location" | sort | while read image; do
|
||||
fi
|
||||
|
||||
|
||||
new_image="${image//.$extension/}.$tag-$date_YYYYMMDD.$extension"
|
||||
new_image="${image//.$extension/}.$tag-$date_YYYYMMDD-$size.$extension"
|
||||
|
||||
## Clean Filename ##
|
||||
# Prevent directory from having its name cleaned too.
|
||||
|
@ -32,7 +32,14 @@ function usage {
|
||||
-i input : The input file or folder with which to search for video files.
|
||||
If nothing is provided, current directory (.) is assumed.
|
||||
-v bitrate : The video bitrate to convert to.
|
||||
Defaults to '2000k'.
|
||||
Defaults are based on the size passed.
|
||||
>= 2160: '30M'
|
||||
>= 1440: '12M'
|
||||
>= 1080: '5M'
|
||||
>= 720: '2000k'
|
||||
>= 480: '750k'
|
||||
>= 360: '250k'
|
||||
< 360: '100k'
|
||||
-a bitrate : The audio bitrate to convert to.
|
||||
Defaults to '192k'.
|
||||
-c vcodec : The video codec you'd like to use, such as libopenh264.
|
||||
@ -96,13 +103,30 @@ if [[ -z "$input" ]]; then
|
||||
fi
|
||||
|
||||
if [[ -z "$video_bitrate" ]]; then
|
||||
# Based roughly on the 2.5 step iteration used for 720 and 1080.
|
||||
if (( $size >= 2160 )); then
|
||||
video_bitrate="30M"
|
||||
elif (( $size >= 1440 )); then
|
||||
video_bitrate="12M"
|
||||
elif (( $size >= 1080 )); then
|
||||
video_bitrate="5M"
|
||||
elif (( $size >= 720 )); then
|
||||
video_bitrate="2000k"
|
||||
elif (( $size >= 480 )); then
|
||||
video_bitrate="750k"
|
||||
elif (( $size >= 360 )); then
|
||||
video_bitrate="250k"
|
||||
else
|
||||
video_bitrate="100k"
|
||||
fi
|
||||
fi
|
||||
compress_tags="$video_bitrate"
|
||||
video_bitrate="-b:v $video_bitrate -minrate 0 -maxrate $video_bitrate -bufsize $video_bitrate"
|
||||
|
||||
if [[ -z "$audio_bitrate" ]]; then
|
||||
audio_bitrate="192k"
|
||||
fi
|
||||
compress_tags="$compress_tags-$audio_bitrate"
|
||||
audio_bitrate="-b:a $audio_bitrate"
|
||||
|
||||
if [[ -z "$codec" ]]; then
|
||||
@ -124,7 +148,11 @@ fi
|
||||
if [[ -z $size ]]; then
|
||||
size="720"
|
||||
fi
|
||||
size="-filter:v scale=-1:$size"
|
||||
while (( ${#size} < 4 )); do
|
||||
size="0$size"
|
||||
done
|
||||
compress_tags="$size-$compress_tags"
|
||||
size="-filter:v scale=-2:$size"
|
||||
|
||||
## Main ##
|
||||
|
||||
@ -172,6 +200,9 @@ $search_command "$input" | sort | while read file; do
|
||||
# Build the new filename to signify it is different than the original.
|
||||
newfile="${file//$extension/$filename_flag-$date_YYYYMMDD.$extension_lower}"
|
||||
|
||||
# Add the size, video, and audio quality it was converted to.
|
||||
newfile="${newfile//\.$extension_lower/_$compress_tags.$extension_lower}"
|
||||
|
||||
if [[ $newfile == $file ]]; then
|
||||
echo "ERROR: The new calculated filename matches the old, skipping." >&2
|
||||
continue
|
||||
|
@ -75,7 +75,6 @@
|
||||
- include_tasks: tasks/general/software/sendmail.yml
|
||||
when: ansible_system == "FreeBSD"
|
||||
|
||||
|
||||
# Gather again in case missing programs have now been installed.
|
||||
- include_tasks: facts/general/gather.yml
|
||||
|
||||
@ -154,6 +153,9 @@
|
||||
- include_tasks: tasks/workstation/shared/settings/services.yml
|
||||
|
||||
# Final Tasks (SLOW) #
|
||||
- include_tasks: tasks/workstation/linux/software/flutter.yml
|
||||
when: ansible_system == "Linux"
|
||||
|
||||
- include_tasks: tasks/workstation/linux/software/flatpaks.yml
|
||||
when: ansible_system == "Linux" and flatpak_distro
|
||||
|
||||
|
@ -35,11 +35,11 @@
|
||||
;
|
||||
; user : Provide the name of the user account.
|
||||
; Example: tom, jerry, kim, sarah
|
||||
; Default: ling
|
||||
; Default: user
|
||||
;
|
||||
; user_desc : Provide the description of the user account.
|
||||
; Example: Thomas, Jerry, Kimberly, Sarah
|
||||
; Default: Hyperling
|
||||
; Default: User
|
||||
;
|
||||
; sshd_port : Determine the port which SSHD should listen on.
|
||||
; Example: 12345
|
||||
@ -101,6 +101,22 @@
|
||||
; Slows down the rate of services such as telegraf and cron.
|
||||
; Default: false
|
||||
;
|
||||
;;;;;;;;;;;;;;;;;;;; Server Shortcut ;;;;;;;;;;;;;;;;;;;;
|
||||
;
|
||||
; For typing `prod` and getting straight to a server, like in env-termux.
|
||||
;
|
||||
; prod_host : Branch to use on this machine.
|
||||
; Example: myserver.com, mywebhost.net
|
||||
; Default: hyperling.com
|
||||
;
|
||||
; prod_port : Provide the git host that the machine should poll.
|
||||
; Example: 22, 222, 2222
|
||||
; Default: 22
|
||||
;
|
||||
; prod_user : Port of the server host to use for SSH requests.
|
||||
; Example: jim, bob, jeff, anne
|
||||
; Default: user
|
||||
;
|
||||
[global]
|
||||
marker: '; {mark} MANAGED BY ANSIBLE | Generic Config'
|
||||
state: present
|
||||
@ -124,6 +140,9 @@
|
||||
git_user: "{{ lookup('ini', 'git_user file={{gen_file}} default=me') }}"
|
||||
git_project: "{{ lookup('ini', 'git_project file={{gen_file}} default=env-ansible') }}"
|
||||
git_ssh_port: "{{ lookup('ini', 'git_ssh_port file={{gen_file}} default=22') }}"
|
||||
prod_host: "{{ lookup('ini', 'prod_host file={{gen_file}} default=hyperling.com') }}"
|
||||
prod_port: "{{ lookup('ini', 'prod_port file={{gen_file}} default=22') }}"
|
||||
prod_user: "{{ lookup('ini', 'prod_user file={{gen_file}} default=user') }}"
|
||||
|
||||
- name: General | Account Management | Provisioning Configuration | General | List
|
||||
set_fact:
|
||||
@ -144,6 +163,9 @@
|
||||
- { 'git_user': "{{ git_user }}" }
|
||||
- { 'git_project': "{{ git_project }}" }
|
||||
- { 'git_ssh_port': "{{ git_ssh_port }}" }
|
||||
- { 'prod_host': "{{ prod_host }}" }
|
||||
- { 'prod_port': "{{ prod_port }}" }
|
||||
- { 'prod_user': "{{ prod_user }}" }
|
||||
|
||||
|
||||
## Workstation ##
|
||||
@ -159,6 +181,10 @@
|
||||
; coding : Set to true for installation of code editors (VSCode, PyCharm, Android Studio)
|
||||
;
|
||||
; editing : Set to true for installation of Audio/Video editors (Shotcut, Audacity, OBS Stdio, GIMP)
|
||||
; Set to video for only the video related portions.
|
||||
; - Shotcut, OpenShot, OBS Studio, etc.
|
||||
; Set to audio for only the music related portions.
|
||||
; - Audacity (or similar), LMMS, VMPK, etc.
|
||||
;
|
||||
; gaming : Set to true for installation of gaming software (Steam, Lutris)
|
||||
;
|
||||
|
@ -281,16 +281,20 @@
|
||||
unset OPTIND
|
||||
unset clean
|
||||
unset network
|
||||
du_params="-ha"
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
-c | -y | --clean )
|
||||
clean="Y" ;;
|
||||
-n | -net | --network )
|
||||
network="Y" ;;
|
||||
-s | -sum | --summarize )
|
||||
du_params="-sh" ;;
|
||||
* )
|
||||
echo "
|
||||
ERROR: Option '$1' with value '$2' not recognized.
|
||||
$PROG [-c|-y|--clean] [-n|-net|--network]
|
||||
$PROG [-c | -y | --clean] [-n | -net | --network] \
|
||||
[-s | -sum | --summarize]
|
||||
" >&2
|
||||
return 1
|
||||
;;
|
||||
@ -318,8 +322,8 @@
|
||||
echo "Checking $dir..."
|
||||
$sudo find $dir -name TRASH | while read trash; do
|
||||
if [[ "$trash" != "" && `$sudo ls -a $trash` ]]; then
|
||||
echo "Found $trash with contents:"
|
||||
$sudo du -ha $trash | sort -h
|
||||
echo "Found $trash:"
|
||||
$sudo du $du_params $trash | sort -h
|
||||
if [[ "$clean" == "Y" ]]; then
|
||||
echo "Cleaning trash..."
|
||||
$sudo sh -c "cd $trash; rm -rfv ..?* .[!.]* *"
|
||||
@ -328,8 +332,8 @@
|
||||
done
|
||||
$sudo find $dir $maxdepth -name "*"Trash"*" | while read trash; do
|
||||
if [[ "$trash" != "" && `$sudo ls -a $trash` ]]; then
|
||||
echo "Found $trash with contents:"
|
||||
$sudo du -ha $trash | sort -h
|
||||
echo "Found $trash:"
|
||||
$sudo du $du_params $trash | sort -h
|
||||
if [[ "$clean" == "Y" ]]; then
|
||||
echo "Cleaning trash..."
|
||||
$sudo sh -c "cd $trash; rm -rfv ..?* .[!.]* *"
|
||||
@ -345,8 +349,8 @@
|
||||
echo "Checking $dir..."
|
||||
sudo find $dir -name TRASH | while read trash; do
|
||||
if [[ "$trash" != "" && `sudo ls -a $trash` ]]; then
|
||||
echo "Found $trash with contents:"
|
||||
sudo du -ha $trash | sort -h
|
||||
echo "Found $trash:"
|
||||
sudo du $du_params $trash | sort -h
|
||||
if [[ "$clean" == "Y" ]]; then
|
||||
echo "Cleaning trash..."
|
||||
sudo sh -c "cd $trash; rm -rfv ..?* .[!.]* *"
|
||||
@ -355,8 +359,8 @@
|
||||
done
|
||||
sudo find $dir -name .Trash"*" | while read trash; do
|
||||
if [[ "$trash" != "" && `sudo ls -a $trash` ]]; then
|
||||
echo "Found $trash with contents:"
|
||||
sudo du -ha $trash | sort -h
|
||||
echo "Found $trash:"
|
||||
sudo du $du_params $trash | sort -h
|
||||
if [[ "$clean" == "Y" ]]; then
|
||||
echo "Cleaning trash..."
|
||||
sudo sh -c "cd $trash; rm -rfv ..?* .[!.]* *"
|
||||
@ -543,7 +547,7 @@
|
||||
echo -e "\nDone!\n"
|
||||
}
|
||||
alias_clone: |
|
||||
alias clone="rsync -auPhz --delete"
|
||||
alias clone="rsync -auPhz --delete --exclude '.gradle' --exclude 'app/build'"
|
||||
export_hyperling: |
|
||||
export HYPERLING6="2a07:e03:3:80::1"
|
||||
export HYPERLING4="185.130.47.173"
|
||||
@ -555,6 +559,20 @@
|
||||
fi
|
||||
alias_scan: |
|
||||
alias scan="nmap -A -p- --script=vuln"
|
||||
alias_prod: |
|
||||
alias prod="ssh -p {{ prod_port }} {{ prod_user }}@{{ prod_host }}"
|
||||
function_clean_code: |
|
||||
function clean-code {
|
||||
echo -e "******* Android *******\n*** Build Caches ***"
|
||||
find ~/Code/android-*/app -maxdepth 1 -type d -name "build" \
|
||||
-exec du -hs {} \; -exec rm -rf {} \;
|
||||
echo -e "\n*** Gradle Caches ***"
|
||||
find ~/Code/android-*/ -maxdepth 1 -type d -name ".gradle" \
|
||||
-exec du -hs {} \; -exec rm -rf {} \;
|
||||
|
||||
echo -e "\n*** Done! ***"
|
||||
}
|
||||
alias code-clean="clean-code"
|
||||
|
||||
- name: General | Account Management | Users | Files | Common Variable
|
||||
set_fact:
|
||||
@ -596,6 +614,8 @@
|
||||
{{ export_hyperling }}
|
||||
{{ source_docker_env }}
|
||||
{{ alias_scan }}
|
||||
{{ alias_prod }}
|
||||
{{ function_clean_code }}
|
||||
|
||||
- name: General | Account Management | Users | Files | .bashrc
|
||||
blockinfile:
|
||||
|
@ -6,9 +6,7 @@
|
||||
path: "{{ user_root.home }}/bin/scm.sh"
|
||||
block: |
|
||||
# 20210211 - Make life easier!
|
||||
git clone {{ git_repo_http }} ansible-pull
|
||||
ansible-pull/setup.sh
|
||||
mv ansible-pull ~/TRASH/
|
||||
time {{ ansible_pull_exec.stdout }} -U {{ git_repo_http }}
|
||||
marker: '{mark}'
|
||||
marker_begin: "#!{{ bash_exec.stdout }}"
|
||||
marker_end: "exit 0"
|
||||
|
@ -6,9 +6,7 @@
|
||||
path: "{{ user_user.home }}/bin/scm.sh"
|
||||
block: |
|
||||
# 20210211 - Make life easier!
|
||||
git clone {{ git_repo_http }} ansible-pull
|
||||
ansible-pull/setup.sh
|
||||
mv ansible-pull ~/TRASH/
|
||||
time {{ ansible_pull_exec.stdout }} -U {{ git_repo_http }}
|
||||
marker: '{mark}'
|
||||
marker_begin: "#!{{ bash_exec.stdout }}"
|
||||
marker_end: "exit 0"
|
||||
|
@ -44,7 +44,7 @@
|
||||
- shotcut
|
||||
- obs-studio
|
||||
state: present
|
||||
when: editing == true
|
||||
when: editing in (true, "video")
|
||||
|
||||
- name: Workstation | FreeBSD | Software | Packages | Editing | Install
|
||||
package:
|
||||
@ -53,7 +53,7 @@
|
||||
- shotcut
|
||||
- obs-studio
|
||||
state: absent
|
||||
when: not editing == true
|
||||
when: not editing in (true, "video")
|
||||
|
||||
# Gaming #
|
||||
|
||||
|
@ -40,17 +40,18 @@
|
||||
- { app: "org.signal.Signal", name: "signal", extra: "" }
|
||||
- { app: "org.mozilla.firefox", name: "firefox-flatpak", extra: "" }
|
||||
- { app: "com.transmissionbt.Transmission", name: "transmission", extra: "" }
|
||||
- { app: "org.gimp.GIMP", name: "gimp", extra: "" }
|
||||
flatpaks_coding:
|
||||
- { app: "com.vscodium.codium", name: "codium", extra: "" }
|
||||
- { app: "com.google.AndroidStudio", name: "android-studio", extra: "" }
|
||||
- { app: "io.dbeaver.DBeaverCommunity", name: "dbeaver", extra: "" }
|
||||
- { app: "org.godotengine.Godot", name: "godot", extra: "" }
|
||||
- { app: "com.visualstudio.code-oss", name: "code", extra: "" }
|
||||
flatpaks_editing:
|
||||
flatpaks_editing_video:
|
||||
- { app: "org.shotcut.Shotcut", name: "shotcut", extra: "" }
|
||||
- { app: "com.obsproject.Studio", name: "obs", extra: "" }
|
||||
- { app: "org.gimp.GIMP", name: "gimp", extra: "" }
|
||||
- { app: "org.openshot.OpenShot", name: "openshot", extra: "" }
|
||||
flatpaks_editing_audio:
|
||||
- { app: "org.tenacityaudio.Tenacity", name: "tenacity", extra: "" }
|
||||
- { app: "io.lmms.LMMS", name: "lmms", extra: "" }
|
||||
- { app: "net.sourceforge.VMPK", name: "vmpk", extra: "" }
|
||||
@ -158,14 +159,62 @@
|
||||
|
||||
# Media Editors #
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Installs
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Installs
|
||||
flatpak:
|
||||
name: "{{ item.app }}"
|
||||
remote: flathub
|
||||
state: present
|
||||
loop: "{{ flatpaks_editing }}"
|
||||
loop: "{{ flatpaks_editing_video }}"
|
||||
ignore_errors: yes
|
||||
when: editing == true
|
||||
when: editing in (true, "video")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Executables
|
||||
blockinfile:
|
||||
path: "{{ flatpak_exec_dir }}/{{ item.name }}"
|
||||
block: |
|
||||
{{ item.extra }} {{ flatpak_exec }} {{ item.app }}
|
||||
marker: '{mark}'
|
||||
marker_begin: "#!{{ bash_exec.stdout }}"
|
||||
marker_end: "exit 0"
|
||||
state: present
|
||||
create: yes
|
||||
loop: "{{ flatpaks_editing_video }}"
|
||||
become_user: "{{ user }}"
|
||||
when: editing in (true, "video")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Executable Permissions
|
||||
file:
|
||||
path: "{{ flatpak_exec_dir }}/{{ item.name }}"
|
||||
state: file
|
||||
mode: '0755'
|
||||
loop: "{{ flatpaks_editing_video }}"
|
||||
when: editing in (true, "video")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editor Uninstalls
|
||||
flatpak:
|
||||
name: "{{ item.app }}"
|
||||
remote: flathub
|
||||
state: absent
|
||||
loop: "{{ flatpaks_editing_video }}"
|
||||
ignore_errors: yes
|
||||
when: not editing in (true, "video")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Remove Executables
|
||||
file:
|
||||
path: "{{ flatpak_exec_dir }}/{{ item.name }}"
|
||||
state: absent
|
||||
loop: "{{ flatpaks_editing_video }}"
|
||||
ignore_errors: yes
|
||||
when: not editing in (true, "video")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio Editors | Installs
|
||||
flatpak:
|
||||
name: "{{ item.app }}"
|
||||
remote: flathub
|
||||
state: present
|
||||
loop: "{{ flatpaks_editing_audio }}"
|
||||
ignore_errors: yes
|
||||
when: editing in (true, "audio")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Executables
|
||||
blockinfile:
|
||||
@ -177,34 +226,34 @@
|
||||
marker_end: "exit 0"
|
||||
state: present
|
||||
create: yes
|
||||
loop: "{{ flatpaks_editing }}"
|
||||
loop: "{{ flatpaks_editing_audio }}"
|
||||
become_user: "{{ user }}"
|
||||
when: editing == true
|
||||
when: editing in (true, "audio")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Executable Permissions
|
||||
file:
|
||||
path: "{{ flatpak_exec_dir }}/{{ item.name }}"
|
||||
state: file
|
||||
mode: '0755'
|
||||
loop: "{{ flatpaks_editing }}"
|
||||
when: editing == true
|
||||
loop: "{{ flatpaks_editing_audio }}"
|
||||
when: editing in (true, "audio")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editor Uninstalls
|
||||
flatpak:
|
||||
name: "{{ item.app }}"
|
||||
remote: flathub
|
||||
state: absent
|
||||
loop: "{{ flatpaks_editing }}"
|
||||
loop: "{{ flatpaks_editing_audio }}"
|
||||
ignore_errors: yes
|
||||
when: not editing == true
|
||||
when: not editing in (true, "audio")
|
||||
|
||||
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Remove Executables
|
||||
file:
|
||||
path: "{{ flatpak_exec_dir }}/{{ item.name }}"
|
||||
state: absent
|
||||
loop: "{{ flatpaks_editing }}"
|
||||
loop: "{{ flatpaks_editing_audio }}"
|
||||
ignore_errors: yes
|
||||
when: not editing == true
|
||||
when: not editing in (true, "audio")
|
||||
|
||||
# Gaming #
|
||||
|
||||
|
152
tasks/workstation/linux/software/flutter.yml
Normal file
152
tasks/workstation/linux/software/flutter.yml
Normal file
@ -0,0 +1,152 @@
|
||||
---
|
||||
# Packages specific to workstations developing Flutter apps.
|
||||
|
||||
## Facts ##
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Facts [1/2]
|
||||
set_fact:
|
||||
flutter_url: "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.2-stable.tar.xz"
|
||||
flutter_download_file: "{{ user_user.home }}/Downloads/flutter.tar.xz"
|
||||
flutter_sdk_location: "{{ user_user.home }}/SDKs/Flutter"
|
||||
flutter_report: "{{ user_user.home }}/Reports/flutter.txt"
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Facts [2/2]
|
||||
set_fact:
|
||||
flutter_bin_location: "{{ flutter_sdk_location }}/flutter/bin"
|
||||
|
||||
## Checks ##
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Check SDK Exists
|
||||
stat:
|
||||
path: "{{ flutter_sdk_location }}"
|
||||
register: flutter_sdk_stat
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Check Download Exists
|
||||
stat:
|
||||
path: "{{ flutter_download_file }}"
|
||||
register: flutter_download_stat
|
||||
|
||||
## Packages ##
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Necessities
|
||||
package:
|
||||
name:
|
||||
- curl
|
||||
- git
|
||||
- unzip
|
||||
- xz-utils
|
||||
- zip
|
||||
- libglu1-mesa
|
||||
state: present
|
||||
when: coding == true
|
||||
|
||||
# https://docs.flutter.dev/get-started/install/linux/desktop
|
||||
- name: Workstation | Linux | Software | Flutter | Linux App Dependencies
|
||||
package:
|
||||
name:
|
||||
- clang
|
||||
- cmake
|
||||
- git
|
||||
- ninja-build
|
||||
- pkg-config
|
||||
- libgtk-3-dev
|
||||
- liblzma-dev
|
||||
- libstdc++-12-dev
|
||||
state: present
|
||||
when: coding == true
|
||||
|
||||
# https://docs.flutter.dev/get-started/install/linux/android
|
||||
- name: Workstation | Linux | Software | Flutter | Android App Dependencies
|
||||
package:
|
||||
name:
|
||||
- libc6:amd64
|
||||
- libstdc++6:amd64
|
||||
- lib32z1
|
||||
- libbz2-1.0:amd64
|
||||
state: present
|
||||
when: coding == true
|
||||
|
||||
## Install SDK ##
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | SDK
|
||||
block:
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Download SDK
|
||||
get_url:
|
||||
url: "{{ flutter_url }}"
|
||||
dest: "{{ flutter_download_file }}"
|
||||
owner: "{{ user }}"
|
||||
mode: '0664'
|
||||
when: not flutter_download_stat.stat.exists
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Create Folder
|
||||
file:
|
||||
path: "{{ flutter_sdk_location }}"
|
||||
state: directory
|
||||
owner: "{{ user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Extract SDK
|
||||
unarchive:
|
||||
src: "{{ flutter_download_file }}"
|
||||
dest: "{{ flutter_sdk_location }}"
|
||||
owner: "{{ user }}"
|
||||
|
||||
when: coding == true and not flutter_sdk_stat.stat.exists
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Delete Archive
|
||||
file:
|
||||
path: "{{ flutter_download_file }}"
|
||||
state: absent
|
||||
|
||||
## Configure Environment ##
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Modify PATH (.bashrc)
|
||||
blockinfile:
|
||||
path: "{{ item }}/.bashrc"
|
||||
block: |
|
||||
export PATH="$PATH:{{ flutter_bin_location }}"
|
||||
marker: '# {mark} MANAGED BY ANSIBLE | Flutter'
|
||||
state: present
|
||||
create: yes
|
||||
backup: yes
|
||||
loop:
|
||||
- "{{ user_root.home }}"
|
||||
- "{{ user_user.home }}"
|
||||
ignore_errors: yes
|
||||
when: coding == true and user_root.home != "" and user_user.home != ""
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Modify PATH (.zshrc)
|
||||
blockinfile:
|
||||
path: "{{ item }}/.zshrc"
|
||||
block: |
|
||||
export PATH="$PATH:{{ flutter_bin_location }}"
|
||||
marker: '# {mark} MANAGED BY ANSIBLE | Flutter'
|
||||
state: present
|
||||
create: yes
|
||||
backup: yes
|
||||
loop:
|
||||
- "{{ user_root.home }}"
|
||||
- "{{ user_user.home }}"
|
||||
ignore_errors: yes
|
||||
when: coding == true and user_root.home != "" and user_user.home != ""
|
||||
|
||||
## Test SDK ##
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Doctor Report
|
||||
shell: "{{ item }}"
|
||||
loop:
|
||||
- "date > {{ flutter_report }}"
|
||||
- "{{ flutter_bin_location }}/flutter --disable-analytics >> {{ flutter_report }}"
|
||||
- "date >> {{ flutter_report }}"
|
||||
- "{{ flutter_bin_location }}/flutter doctor -v >> {{ flutter_report }}"
|
||||
- "date >> {{ flutter_report }}"
|
||||
when: coding == true
|
||||
|
||||
## Uninstall SDK ##
|
||||
|
||||
- name: Workstation | Linux | Software | Flutter | Remove SDK
|
||||
file:
|
||||
path: "{{ flutter_sdk_location }}"
|
||||
state: absent
|
||||
when: not coding == true
|
@ -24,7 +24,7 @@
|
||||
name:
|
||||
- "{{ ffmpeg }}"
|
||||
state: present
|
||||
when: editing == true
|
||||
when: editing in (true, "video", "audio")
|
||||
|
||||
|
||||
## Other Stuff
|
||||
@ -38,6 +38,8 @@
|
||||
- "{{ appimagelauncher }}"
|
||||
- "{{ evolution }}"
|
||||
- "{{ evolution }}*"
|
||||
- adb
|
||||
- fastboot
|
||||
state: present
|
||||
|
||||
# Lutris #
|
||||
|
@ -22,13 +22,19 @@
|
||||
status: present
|
||||
when: coding == true
|
||||
|
||||
- name: Workstation | Mac OS | Software | Brew | Install Packages (Editing)
|
||||
- name: Workstation | Mac OS | Software | Brew | Install Packages (Editing:Video)
|
||||
package:
|
||||
name:
|
||||
- shotcut
|
||||
status: present
|
||||
when: editing in (true, "video")
|
||||
|
||||
- name: Workstation | Mac OS | Software | Brew | Install Packages (Editing:Audio)
|
||||
package:
|
||||
name:
|
||||
- audacity
|
||||
- shotcut
|
||||
status: present
|
||||
when: editing == true
|
||||
when: editing in (true, "audio")
|
||||
|
||||
- name: Workstation | Mac OS | Software | Brew | Install Packages (Gaming)
|
||||
package:
|
||||
|
@ -17,6 +17,7 @@
|
||||
, 'org.telegram.desktop.desktop'
|
||||
, 'com.discordapp.Discord.desktop'
|
||||
, 'com.vscodium.codium.desktop'
|
||||
, 'com.visualstudio.code-oss.desktop', 'code-oss.desktop'
|
||||
, 'com.google.AndroidStudio.desktop'
|
||||
, 'org.shotcut.Shotcut.desktop'
|
||||
, 'io.lmms.LMMS.desktop'
|
||||
@ -33,7 +34,6 @@
|
||||
#, 'org.mozilla.Thunderbird.desktop'
|
||||
# 2025-01-01
|
||||
# Reduce the amount of icons on the sidebar, things that may get added back.
|
||||
#, 'com.visualstudio.code-oss.desktop', 'code-oss.desktop'
|
||||
#, 'org.godotengine.Godot.desktop'
|
||||
|
||||
- name: Workstation | Account Management | GNOME | Facts (NixOS)
|
||||
|
Loading…
x
Reference in New Issue
Block a user