Compare commits
6 Commits
29adac2e70
...
jbomb-auto
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d0b3477cd | ||
|
|
e1f056a294 | ||
| e4f761b133 | |||
| aa297095b0 | |||
| 104a59c52c | |||
| a3ccb1f3b4 |
@@ -14,5 +14,5 @@ jobs:
|
|||||||
shellcheck --version
|
shellcheck --version
|
||||||
- name: Run Linter
|
- name: Run Linter
|
||||||
run: |
|
run: |
|
||||||
shellcheck penv
|
shellcheck --exclude=SC1090,SC2046 penv
|
||||||
shellcheck jconf
|
shellcheck --exclude=SC1090,SC2046 jconf
|
||||||
|
|||||||
88
jconf
Normal file → Executable file
88
jconf
Normal file → Executable file
@@ -39,59 +39,73 @@ if [ "$#" -lt 1 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$EUID" -ne 0 ]]; then
|
||||||
|
echo "Run the script as root"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
cmd=$1
|
cmd=$1
|
||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
adduser)
|
adduser)
|
||||||
|
USER=$(echo "$2" | tr "[:upper:]" "[:lower:]")
|
||||||
exist=$(awk -F: -v username="$2" '{if ($1 == username && $3 >= 1000 && $1 != "nobody") {print 1; found=1; exit}} END {if (!found) print 0}' /etc/passwd)
|
exist=$(awk -F: -v username="$USER" '{if ($1 == username && $3 >= 1000 && $1 != "nobody") {print 1; found=1; exit}} END {if (!found) print 0}' /etc/passwd)
|
||||||
if [ "$exist" -eq 1 ]; then
|
if [ "$exist" -eq 1 ]; then
|
||||||
echo "$2 user already exists"
|
echo "$USER user already exists"
|
||||||
else
|
else
|
||||||
while true; do
|
read -rp "Do you want to create an user account $USER [y/N]:" yn
|
||||||
read -p "Do you want to create an user account $2 [Y/n]:" yn
|
case $yn in
|
||||||
case $yn in
|
[Yy])
|
||||||
[Yy]* )
|
useradd "$USER"
|
||||||
useradd $2;
|
echo "Enter the password for $USER"
|
||||||
echo "Enter the password for $2:";
|
passwd "$USER"
|
||||||
passwd $2
|
echo "$USER user account created successfully"
|
||||||
echo "$2 user account created successfully";
|
;;
|
||||||
break;;
|
[Nn])
|
||||||
[Nn]* ) exit 1;;
|
exit 1
|
||||||
* ) echo "Please answer Y or N.";;
|
;;
|
||||||
esac
|
* )
|
||||||
done
|
echo "Please answer Y or N."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
|
|
||||||
deluser)
|
deluser)
|
||||||
|
USER=$(echo "$2" | tr "[:upper:]" "[:lower:]")
|
||||||
exist=$(awk -F: -v username="$2" '{if ($1 == username && $3 >= 1000 && $1 != "nobody") {print 1; found=1; exit}} END {if (!found) print 0}' /etc/passwd)
|
exist=$(awk -F: -v username="$USER" '{if ($1 == username && $3 >= 1000 && $1 != "nobody") {print 1; found=1; exit}} END {if (!found) print 0}' /etc/passwd)
|
||||||
if [ "$exist" -eq 0 ]; then
|
if [ "$exist" -eq 0 ]; then
|
||||||
echo "$2 user doesn't exist"
|
echo "$USER user doesn't exist"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
|
read -rp "Do you want to delete $USER user account? [y/N]:" yn
|
||||||
while true; do
|
case $yn in
|
||||||
read -p "Do you want to delete $2 user account? [Y/n]:" yn
|
[Yy])
|
||||||
case $yn in
|
;;
|
||||||
[Yy]* )
|
*)
|
||||||
userdel -rRZ $2;
|
exit 1
|
||||||
echo "$2 user account deleted successfully";
|
;;
|
||||||
break;;
|
esac
|
||||||
[Nn]* ) exit 1;;
|
read -rp "This DELETES $USER's data, are you sure? [y/N]:" yn
|
||||||
* ) echo "Please answer yes or no.";;
|
case $yn in
|
||||||
esac
|
[Yy])
|
||||||
done
|
userdel -rRZ "$USER";
|
||||||
|
echo "$USER user account deleted successfully"
|
||||||
|
;;
|
||||||
|
[Nn])
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo "Please answer Y or N."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
|
listusers|ls)
|
||||||
listusers)
|
husers=$(awk -F: '{ if ($3 >= 1000 && $1 != "nobody" ) {print $1}}' /etc/passwd)
|
||||||
husers= awk -F: '{ if ($3 >= 1000 && $1 != "nobody" ) {print $1}}' /etc/passwd
|
echo "$husers"
|
||||||
echo $husers
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
start)
|
start)
|
||||||
echo
|
echo
|
||||||
;;
|
;;
|
||||||
|
|||||||
50
penv
50
penv
@@ -43,7 +43,7 @@ create(){
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
if [[ -d "$HOME/.envs/$name" ]]; then
|
if [[ -d "$HOME/.envs/$name" ]]; then
|
||||||
echo Environment \"$name\" already exists.
|
echo Environment \""$name"\" already exists.
|
||||||
exit 4
|
exit 4
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -52,18 +52,18 @@ create(){
|
|||||||
echo "Base python3 not found on your system. Install it using your package manager"
|
echo "Base python3 not found on your system. Install it using your package manager"
|
||||||
exit 3
|
exit 3
|
||||||
fi
|
fi
|
||||||
vers=`/usr/bin/python3 -V | cut -d " " -f 2 | cut -d "." -f 1,2`
|
vers=$(/usr/bin/python3 -V | cut -d " " -f 2 | cut -d "." -f 1,2)
|
||||||
echo "No version mentioned, using Python $vers"
|
echo "No version mentioned, using Python $vers"
|
||||||
fi
|
fi
|
||||||
if [ ! -f /usr/bin/python$vers ]; then
|
if [ ! -f /usr/bin/python"$vers" ]; then
|
||||||
echo "Python $vers not installed on system."
|
echo "Python $vers not installed on system."
|
||||||
exit 7
|
exit 7
|
||||||
fi
|
fi
|
||||||
mkdir -p $HOME/.envs
|
mkdir -p "$HOME"/.envs
|
||||||
/usr/bin/python$vers -m venv $HOME/.envs/$name
|
/usr/bin/python"$vers" -m venv "$HOME"/.envs/"$name"
|
||||||
source $HOME/.envs/$name/bin/activate
|
source "$HOME"/.envs/"$name"/bin/activate
|
||||||
python -m pip install ipykernel ipywidgets > /dev/stderr
|
python -m pip install ipykernel ipywidgets > /dev/stderr
|
||||||
python -m ipykernel install --user --name $name > /dev/stderr
|
python -m ipykernel install --user --name "$name" > /dev/stderr
|
||||||
echo
|
echo
|
||||||
echo "Created \"$name\". It should be available as a Jupyter Kernel."
|
echo "Created \"$name\". It should be available as a Jupyter Kernel."
|
||||||
echo "Use \"pact $name\" to activate in command line."
|
echo "Use \"pact $name\" to activate in command line."
|
||||||
@@ -81,12 +81,12 @@ delete(){
|
|||||||
echo "Run \"deactivate\" to deactivate it"
|
echo "Run \"deactivate\" to deactivate it"
|
||||||
exit 6
|
exit 6
|
||||||
fi
|
fi
|
||||||
read -n 1 -p "Remove environment $name (y/N)? " choise
|
read -r -n 1 -p "Remove environment $name (y/N)? " choise
|
||||||
case $choise in
|
case $choise in
|
||||||
[yY])
|
[yY])
|
||||||
source $HOME/.envs/$name/bin/activate
|
source "$HOME"/.envs/"$name"/bin/activate
|
||||||
echo
|
echo
|
||||||
echo Spec `jupyter-kernelspec remove -f -y $name`
|
echo Spec $(jupyter-kernelspec remove -f -y "$name")
|
||||||
deactivate
|
deactivate
|
||||||
rm -r "$HOME/.envs/$name"
|
rm -r "$HOME/.envs/$name"
|
||||||
echo "Data Removed $HOME/.envs/$name"
|
echo "Data Removed $HOME/.envs/$name"
|
||||||
@@ -114,7 +114,7 @@ delete(){
|
|||||||
# }
|
# }
|
||||||
|
|
||||||
activate() {
|
activate() {
|
||||||
echo Use \"pact $1\"
|
echo Use \"pact "$1"\"
|
||||||
}
|
}
|
||||||
|
|
||||||
list(){
|
list(){
|
||||||
@@ -122,7 +122,7 @@ list(){
|
|||||||
echo "PENV not initialized. Run \"penv init\""
|
echo "PENV not initialized. Run \"penv init\""
|
||||||
exit 8
|
exit 8
|
||||||
fi
|
fi
|
||||||
ls $HOME/.envs
|
ls "$HOME"/.envs
|
||||||
}
|
}
|
||||||
|
|
||||||
install() {
|
install() {
|
||||||
@@ -130,8 +130,8 @@ install() {
|
|||||||
echo PENV already installed
|
echo PENV already installed
|
||||||
exit 10
|
exit 10
|
||||||
fi
|
fi
|
||||||
cp $(realpath "$0") $HOME/.local/bin/
|
cp $(realpath "$0") "$HOME"/.local/bin/
|
||||||
mkdir -p $HOME/.envs/
|
mkdir -p "$HOME"/.envs/
|
||||||
echo "
|
echo "
|
||||||
pact () {
|
pact () {
|
||||||
if [[ -z \"\$1\" ]]; then
|
if [[ -z \"\$1\" ]]; then
|
||||||
@@ -144,17 +144,17 @@ install() {
|
|||||||
fi
|
fi
|
||||||
. \$HOME/.envs/\$1/bin/activate
|
. \$HOME/.envs/\$1/bin/activate
|
||||||
}
|
}
|
||||||
" > $HOME/.envs/.penv.funcs
|
" > "$HOME"/.envs/.penv.funcs
|
||||||
grep -qxF "source \$HOME/.envs/.penv.funcs" $HOME/.bashrc || echo "source \$HOME/.envs/.penv.funcs" >> $HOME/.bashrc
|
grep -qxF "source \$HOME/.envs/.penv.funcs" "$HOME"/.bashrc || echo "source \$HOME/.envs/.penv.funcs" >> "$HOME"/.bashrc
|
||||||
echo "Initialized PENV. Restart the shell"
|
echo "Initialized PENV. Restart the shell"
|
||||||
}
|
}
|
||||||
|
|
||||||
uninstall() {
|
uninstall() {
|
||||||
if [[ ! -z "$VIRTUAL_ENV" ]]; then
|
if [[ -n "$VIRTUAL_ENV" ]]; then
|
||||||
echo "Deactivate the existing environment before uninstalling"
|
echo "Deactivate the existing environment before uninstalling"
|
||||||
exit 11
|
exit 11
|
||||||
fi
|
fi
|
||||||
read -n 1 -p "REALLY UNINSTALL ALL THE ENVIRONMENTS?(y/N) " ans
|
read -r -n 1 -p "REALLY UNINSTALL ALL THE ENVIRONMENTS?(y/N) " ans
|
||||||
case $ans in
|
case $ans in
|
||||||
[yY])
|
[yY])
|
||||||
echo
|
echo
|
||||||
@@ -170,9 +170,9 @@ uninstall() {
|
|||||||
return;
|
return;
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
sed -i "/source \$HOME\/.envs\/.penv.funcs/d" $HOME/.bashrc
|
sed -i "/source \$HOME\/.envs\/.penv.funcs/d" "$HOME"/.bashrc
|
||||||
rm -r $HOME/.envs
|
rm -r "$HOME"/.envs
|
||||||
rm $HOME/.local/bin/penv
|
rm "$HOME"/.local/bin/penv
|
||||||
echo "Uninstalled PENV"
|
echo "Uninstalled PENV"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,16 +186,16 @@ cmd=$1
|
|||||||
|
|
||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
new|mk)
|
new|mk)
|
||||||
create $2 $3
|
create "$2" "$3"
|
||||||
;;
|
;;
|
||||||
del|rm)
|
del|rm)
|
||||||
delete $2
|
delete "$2"
|
||||||
;;
|
;;
|
||||||
# setdef|sd)
|
# setdef|sd)
|
||||||
# setdef $2
|
# setdef $2
|
||||||
# ;;
|
# ;;
|
||||||
act|ac)
|
act|ac)
|
||||||
activate $2
|
activate "$2"
|
||||||
;;
|
;;
|
||||||
list|ls)
|
list|ls)
|
||||||
list
|
list
|
||||||
@@ -212,7 +212,7 @@ case "$cmd" in
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "invalid command: \"$1\"" >&2
|
echo "invalid command: \"$1\"" >&2
|
||||||
echo $SCRIPT
|
echo "$SCRIPT"
|
||||||
usage
|
usage
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user