refactor of repo to mainly install into host shell directory from here. so folders are various code that can be installed to particular host
parent
4ad0c913b0
commit
dd25a68355
|
@ -1 +0,0 @@
|
||||||
load
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
# echo https://wiki.archlinux.org/title/Pacman
|
||||||
|
alias pm="sudo pacman"
|
||||||
|
alias pmi="sudo pacman -S"
|
||||||
|
alias pmi="sudo pacman -Ssq"
|
||||||
|
alias pmr="sudo pacman -Rs package_name"
|
||||||
|
alias pmua="sudo pacman -Syu"
|
||||||
|
alias pmi="sudo pacman -Q"
|
||||||
|
alias pkgst="sudo pacman -Qi"
|
||||||
|
alias pkgi="sudo pacman -Si"
|
||||||
|
# alias pms="sudo pacman -Ss '^vim-'"
|
|
@ -0,0 +1,2 @@
|
||||||
|
module_load host-utils
|
||||||
|
ln -s $BASH_SHELL_ANY_HOST/distro/$(get_distro) $BASH_SHELL_HOST/load
|
|
@ -1,3 +0,0 @@
|
||||||
# https://remmina.org/how-to-install-remmina/#ubuntu
|
|
||||||
module_load add-ppa
|
|
||||||
add_ppa -i -c remmina -p \"remmina remmina-plugin-rdp remmina-plugin-secret\" ppa:remmina-ppa-team/remmina-next
|
|
|
@ -0,0 +1,99 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#bmount () {}
|
||||||
|
# sudo bindfs -o allow_other -o map=root/1001:@root/@1001 /var/lib/docker/volumes /data/dvols
|
||||||
|
|
||||||
|
|
||||||
|
if [ -v PS1 ]; then
|
||||||
|
alias drbu="dir_rebind_user"
|
||||||
|
alias dbu="dir_bind_user"
|
||||||
|
alias dbum="dir_bind_unmount"
|
||||||
|
fi
|
||||||
|
|
||||||
|
dir_rebind_user () {
|
||||||
|
local usesudo; local dir;local user;local group
|
||||||
|
# $1 new owner
|
||||||
|
# $2 dir
|
||||||
|
|
||||||
|
[ $# -lt 2 ] && echo minimum args needed to rebind are user and directory && return 1
|
||||||
|
[[ $EUID -ne 0 ]] && usesudo=sudo
|
||||||
|
|
||||||
|
[[ $(id -u $1 2> /dev/null) ]] || { echo user $1 does not exist can not continue; return 2; }
|
||||||
|
|
||||||
|
dir=$(realpath $2)
|
||||||
|
user=$(stat -c '%U' $dir)
|
||||||
|
group=$(stat -c '%G' $dir)
|
||||||
|
$usesudo bindfs --force-user=$1 --force-group=$1 --create-for-user=$user --create-for-group=$group --chown-ignore --chgrp-ignore $dir $dir
|
||||||
|
# echo use \'dir_rebind_user_remove $dir\' to remove
|
||||||
|
}
|
||||||
|
|
||||||
|
dir_bind_unmount () {
|
||||||
|
local usersudo
|
||||||
|
[[ $EUID -ne 0 ]] && usesudo=sudo
|
||||||
|
$usesudo fusermount -u $1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
dir_bind_user () {
|
||||||
|
local usesudo; local dir;local user;local group;local mp
|
||||||
|
|
||||||
|
[ $# -lt 3 ] && echo minimum 3 args needed to rebind are user, source directory and mountpoint && return 1
|
||||||
|
[[ $EUID -ne 0 ]] && usesudo=sudo
|
||||||
|
|
||||||
|
[[ $(id -u $1 2> /dev/null) ]] || { echo user $1 does not exist can not continue; return 2; }
|
||||||
|
|
||||||
|
dir=$(realpath $2)
|
||||||
|
mp=$3
|
||||||
|
if ! $usesudo mkdir -p $mp; then echo unable to make mountpoint aborting; return 2; fi
|
||||||
|
$usesudo chown $1:$1 $mp
|
||||||
|
user=$(stat -c '%U' $dir)
|
||||||
|
group=$(stat -c '%G' $dir)
|
||||||
|
$usesudo bindfs --force-user=$1 --force-group=$1 --create-for-user=$user --create-for-group=$group --chown-ignore --chgrp-ignore $dir $mp
|
||||||
|
# echo use \'dir_rebind_user_remove $dir\' to remove
|
||||||
|
}
|
||||||
|
|
||||||
|
# module_load bindfs && dir_bind_user david /mnt/datadrive/@images /data/images
|
||||||
|
|
||||||
|
|
||||||
|
(return 0 2>/dev/null) || dir_bind_user $@
|
||||||
|
|
||||||
|
|
||||||
|
# function bumount {
|
||||||
|
# echo "removing bind mount at $1"
|
||||||
|
# notify-send "removing bind mount at ${1}" --icon=dialog-information -t 2000
|
||||||
|
# fusermount -u "$1"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# function bmount {
|
||||||
|
# if [ "$1" == "-d" ]; then
|
||||||
|
# bumount $2
|
||||||
|
# else
|
||||||
|
# if [[ " ${array[@]} " =~ " ${value} " ]]; then
|
||||||
|
# # whatever you want to do when array contains value
|
||||||
|
# fi
|
||||||
|
# mp="${@: -2}"
|
||||||
|
# echo mounting $@
|
||||||
|
# bindfs $@
|
||||||
|
# fi
|
||||||
|
# }
|
||||||
|
|
||||||
|
# must have fuser and bindfs installed
|
||||||
|
# for use by sudoers
|
||||||
|
# ln -s $BASH_SHELL_HOST/all/modules/bind-mount/bind-mount.sh /opt/bin/bmount
|
||||||
|
# function xxbmount () {
|
||||||
|
# if [ "$1" == "-mp" ]; then
|
||||||
|
# MOUNTED=$(mountpoint "$2" | grep not)
|
||||||
|
# if [ -z "$MOUNTED" ]; then
|
||||||
|
# echo $2 is a mount point so bind mounting $2/$3 to $4
|
||||||
|
# notify-send "bind mounting ${2}/${3} to ${4}" --icon=dialog-information -t 2000
|
||||||
|
# bindfs "$2/$3" "$4"
|
||||||
|
# else
|
||||||
|
# notify-send "${2} not a mount point - Unable to bind mount ${2}/${3} to ${4}" --icon=dialog-error -t 2000
|
||||||
|
# fi
|
||||||
|
# else
|
||||||
|
# echo bind mounting $1 to $2
|
||||||
|
# notify-send "bind mounting ${1} to ${2}" --icon=dialog-information -t 2000
|
||||||
|
# bindfs "$1" "$2"
|
||||||
|
# fi
|
||||||
|
# }
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/bash
|
||||||
|
module_load filesystem
|
||||||
|
module_load confirm
|
||||||
|
|
||||||
|
copy_rootfs () {
|
||||||
|
local dr=""
|
||||||
|
# local de=--delete-excluded
|
||||||
|
[[ ! $(mounted $1) ]] && echo $1 is not a mountpoint exiting && return 2
|
||||||
|
cmd=$(echo sudo rsync $dr $de --progress -aAXv --exclude={\
|
||||||
|
"/dev/*",\
|
||||||
|
"/proc/*",\
|
||||||
|
"/sys/*",\
|
||||||
|
"tmp/*",\
|
||||||
|
"/run/*",\
|
||||||
|
"/mnt/*",\
|
||||||
|
"/media/*",\
|
||||||
|
"/lost+found",\
|
||||||
|
"/data/*",\
|
||||||
|
"/backup/*",\
|
||||||
|
"/snapshots/*",\
|
||||||
|
"/remotes/*",\
|
||||||
|
"*[Cc]ache*",\
|
||||||
|
"*/[Ll]og/*",\
|
||||||
|
"*/[Ll]ogs/*",\
|
||||||
|
"*.[Ll]og",\
|
||||||
|
"/etc/fstab*",\
|
||||||
|
"/boot/refind_linux.conf"\
|
||||||
|
}\
|
||||||
|
/ $1
|
||||||
|
)
|
||||||
|
echo $cmd
|
||||||
|
if confirm run this copy command; then
|
||||||
|
$cmd
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
|
@ -1,66 +1,75 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function get_platform() {
|
arch () {
|
||||||
|
uname -m
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_chip_type() {
|
||||||
|
|
||||||
local OS
|
|
||||||
local ARCH
|
local ARCH
|
||||||
local PLATFORM
|
|
||||||
|
|
||||||
OS="$(uname -s)"
|
case $(arch) in
|
||||||
ARCH="$(uname -m)"
|
|
||||||
|
|
||||||
case $OS in
|
|
||||||
"Linux")
|
|
||||||
case $ARCH in
|
|
||||||
"x86_64")
|
"x86_64")
|
||||||
ARCH=amd64
|
ARCH=amd64
|
||||||
;;
|
;;
|
||||||
"aarch64")
|
"aarch64")
|
||||||
ARCH=arm64
|
ARCH=arm64
|
||||||
;;
|
;;
|
||||||
"armv6")
|
|
||||||
ARCH=armv6l
|
|
||||||
;;
|
|
||||||
"armv8")
|
"armv8")
|
||||||
ARCH=arm64
|
ARCH=arm64
|
||||||
;;
|
;;
|
||||||
.*386.*)
|
.*386.*)
|
||||||
ARCH=386
|
ARCH=amd32
|
||||||
;;
|
;;
|
||||||
esac
|
*)
|
||||||
PLATFORM="linux-$ARCH"
|
ARCH=arm32
|
||||||
;;
|
|
||||||
"Darwin")
|
|
||||||
PLATFORM="darwin-amd64"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo $PLATFORM
|
echo $ARCH
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_platform() {
|
||||||
|
|
||||||
|
echo $(uname -s)-$(get_chip_type)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# function get_distro() {
|
hostinfo () {
|
||||||
# /bin/cp /etc/os-release /tmp/os-release.tmp
|
hostnamectl
|
||||||
# source /etc/os-release
|
echo -e "--------------------------"
|
||||||
# declare valid=${@:-"arch alpine debian ubuntu"}
|
echo kernel: $(uname -r)
|
||||||
# [[ "${valid}" =~ $ID ]] && echo $ID && return 0
|
echo chip architecture: $(uname -m)
|
||||||
# [[ "${valid}" =~ $ID_LIKE ]] && echo $ID_LIKE && return 0
|
echo -e "--------------------------"
|
||||||
# return 1
|
cat /etc/os-release
|
||||||
|
echo -e "--------------------------"
|
||||||
|
[[ -f /etc/upstream-release/lsb-release ]] && cat /etc/upstream-release/lsb-release
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function get_distro() {
|
||||||
|
source /etc/os-release
|
||||||
|
declare valid=${@:-"arch alpine debian ubuntu"}
|
||||||
|
# echo $ID $ID_LIKE
|
||||||
|
[[ "${valid}" =~ $ID ]] && echo $ID && return 0
|
||||||
|
[[ "${valid}" =~ $ID_LIKE ]] && echo $ID_LIKE && return 0
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# function get_release() {
|
||||||
|
|
||||||
# }
|
# }
|
||||||
|
|
||||||
function get_release() {
|
# get_distro() {
|
||||||
|
# local file=/etc/upstream-release/lsb-release
|
||||||
}
|
# local distro
|
||||||
|
# if [[ -f $file ]]; then
|
||||||
get_distro() {
|
# echo $(cat $file | tr [:upper:] [:lower:] | grep -Poi '(debian|ubuntu|red hat|centos|arch|alpine)' | uniq)
|
||||||
local file=/etc/upstream-release/lsb-release
|
# return 0
|
||||||
local distro
|
# else
|
||||||
if [[ -f $file ]]; then
|
# file=/etc/os-release
|
||||||
$(cat $file | tr [:upper:] [:lower:] | grep -Poi '(debian|ubuntu|red hat|centos|arch|alpine)' | uniq)
|
# if [[ -f $file ]]; then
|
||||||
return 0
|
# echo $(cat $file | tr [:upper:] [:lower:] | grep -Poi '(debian|ubuntu|red hat|centos|arch|alpine)' | uniq)
|
||||||
else
|
# fi
|
||||||
$file=/etc/os-release
|
# fi
|
||||||
if [[ -f $file ]]; then
|
# }
|
||||||
echo $(cat $file | tr [:upper:] [:lower:] | grep -Poi '(debian|ubuntu|red hat|centos|arch|alpine)' | uniq)
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
%sudo, %wheel ALL=(ALL) NOPASSWD:/bin/mkdir, /bin/chown
|
|
@ -0,0 +1 @@
|
||||||
|
%sudo, %wheel ALL=(ALL) NOPASSWD:/bin/bindfs, /bin/fusermount
|
|
@ -0,0 +1 @@
|
||||||
|
%sudo, %wheel ALL=(ALL) NOPASSWD:/bin/btrfs, /bin/btrbk
|
Loading…
Reference in New Issue