From 3031689e4a36a51d7d992ee7625c24c16089a753 Mon Sep 17 00:00:00 2001
From: Andres Montano <andres.montano@tecnalia.com>
Date: Fri, 17 Nov 2023 09:50:01 +0100
Subject: [PATCH] ADD option to dockrun

---
 dotfiles/.zshrc copy |  82 -------------------------------
 dotfiles/docker.bck  | 112 -------------------------------------------
 dotfiles/docker.sh   |   9 ++++
 dotfiles/ros.bck     | 102 ---------------------------------------
 dotfiles/sysem.bck   |  38 ---------------
 dotfiles/zshrc.bck   |  86 ---------------------------------
 6 files changed, 9 insertions(+), 420 deletions(-)
 delete mode 100644 dotfiles/.zshrc copy
 delete mode 100644 dotfiles/docker.bck
 delete mode 100644 dotfiles/ros.bck
 delete mode 100644 dotfiles/sysem.bck
 delete mode 100644 dotfiles/zshrc.bck

diff --git a/dotfiles/.zshrc copy b/dotfiles/.zshrc copy
deleted file mode 100644
index 9631ebe..0000000
--- a/dotfiles/.zshrc copy	
+++ /dev/null
@@ -1,82 +0,0 @@
-# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
-# Initialization code that may require console input (password prompts, [y/n]
-# confirmations, etc.) must go above this block; everything else may go below.
-if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
-  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
-fi
-
-# If you come from bash you might have to change your $PATH.
-export PATH=$HOME/.local/bin:$PATH
-
-# Path to your oh-my-zsh installation.
-export ZSH="/home/andres/.oh-my-zsh"
-
-# Set name of the theme to load --- if set to "random", it will
-# load a random theme each time oh-my-zsh is loaded, in which case,
-# to know which specific one was loaded, run: echo $RANDOM_THEME
-# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
-ZSH_THEME="powerlevel10k/powerlevel10k"
-
-# Set up the prompt
-autoload -Uz promptinit
-promptinit
-prompt adam1
-
-setopt histignorealldups # sharehistory
-setopt no_share_history
-
-# Uncomment the following line to enable command auto-correction.
-ENABLE_CORRECTION="true"
-
-# Uncomment the following line to display red dots whilst waiting for completion.
-# You can also set it to another string to have that shown instead of the default red dots.
-# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
-# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
-COMPLETION_WAITING_DOTS="true"
-
-# Uncomment the following line if you want to change the command execution time
-# stamp shown in the history command output.
-# You can set one of the optional three formats:
-# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
-# or set a custom format using the strftime function format specifications,
-# see 'man strftime' for details.
-HIST_STAMPS="dd/mm/yyyy"
-
-# Which plugins would you like to load?
-# Standard plugins can be found in $ZSH/plugins/
-# Custom plugins may be added to $ZSH_CUSTOM/plugins/
-# Example format: plugins=(rails git textmate ruby lighthouse)
-# Add wisely, as too many plugins slow down shell startup.
-plugins=(zsh-syntax-highlighting sudo git last-working-dir globalias you-should-use zsh-autosuggestions history-substring-search)  
-
-source $ZSH/oh-my-zsh.sh
-
-# Create a cache folder if it isn't exists
-if [ ! -d "$HOME/.cache/zsh" ]; then
-    mkdir -p $HOME/.cache/zsh
-fi
-
-# Define a custom file for compdump
-export ZSH_COMPDUMP="$HOME/.cache/zsh/zcompdump-$HOST-$ZSH_VERSION"
-
-# User configuration
-
-export EDITOR="code -r"
-
-# Include dotfiles
-source ${HOME}/srcs/development_environment/dotfiles/git.bash
-source ${HOME}/srcs/development_environment/dotfiles/docker.bash
-source ${HOME}/srcs/development_environment/dotfiles/ros.bash
-source ${HOME}/srcs/development_environment/dotfiles/system.bash
-
-eval "$(direnv hook zsh)"
-
-# Add fuzzy search app
-[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
-
-# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
-[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
-
-# Finalize Powerlevel10k instant prompt. Should stay at the bottom of ~/.zshrc.
-(( ! ${+functions[p10k-instant-prompt-finalize]} )) || p10k-instant-prompt-finalize
-
diff --git a/dotfiles/docker.bck b/dotfiles/docker.bck
deleted file mode 100644
index 29feba4..0000000
--- a/dotfiles/docker.bck
+++ /dev/null
@@ -1,112 +0,0 @@
-# docker common commands
-export dockerfiles_DIR=~/srcs/development_environment/dockerfiles;
-
-alias dim="docker images"
-alias dpsa="docker ps -a"
-alias dps="docker ps"
-alias drm="docker rm"
-alias drmi="docker rmi"
-alias dsp="docker system prune --all"
-alias dimp="docker image prune"
-
-# Build docker image
-# usage: dockbuild {noetic, melodic}
-function dockbuild(){
-    if [ $# -lt 1 ]; then
-        echo "Usage: dockbuild <ROS_DISTRO> [build_args]"
-        echo "build_args:"
-        echo "      SHELL - zsh (default) or bash"
-        return 1
-    fi
-
-	cd $dockerfiles_DIR;
-
-    if [ $# -lt 2 ]; then
-        echo "Building ROS_DISTRO:"$1 "with SHELL_VERISON: zsh"
-        docker build -t devenv:$1 --build-arg ROS_DISTRO=$1 --build-arg SHELL="zsh" -f devenv.Dockerfile .
-    else
-        if [ $2 = "bash" ]; then
-            echo "Building ROS_DISTRO:"$1 "with SHELL_VERISON:"$2
-            docker build -t devenv:$1 --build-arg ROS_DISTRO=$1 --build-arg SHELL=$2 -f devenv.Dockerfile .
-        else
-            echo "SHELL_VERISON:"$2 "not supported"
-        fi
-    fi
-}
-
-# Run container with rocker
-# usage: rundock {noetic, melodic} [{remodel_ws, odin_ws}] [cmd]
-# ToDo Add extra parameters by arg
-# To share docker --volume /var/run/docker.sock:/var/run/docker.sock:ro
-# To share video (usb-cam) --volume /dev/video0:/dev/video0
-function dockrun() {
-    # Check if the image exist
-    if [[ "$(docker images -q devenv:$1 2> /dev/null)" == "" ]]; then
-        # build the image
-        dockbuild $1
-    fi
-
-    # Check if the container exist
-    if [[ $(docker ps -aq -f name=$1) ]]; then
-        # Attach to conayiner
-        docker exec -it $1 bash -c "cd ~/ros/$1/$2 && $ext"
-    else
-        # Launch container
-        cd ~/ros/$1/$2;
-        rocker --home --ssh --git --user --privileged --nvidia --x11 --network host --name $1 devenv:$1 $3
-    fi
-}
-
-# Remove all stoped containers
-function drma() {
-	drm $(docker ps -a -f status=exited -q)
-}
-
-
-# Remove all unused or dangling immages
-function drmui(){
-	drmi $(dim --filter "dangling=true" -q --no-trunc)
-}
-
-# Stop and remove
-function dsr() {
-	docker stop $1;
-	docker rm $1
-}
-
-# function runpythonsyntax(){
-# 	rocker --home --name python_syntax tecnalia-docker-dev.artifact.tecnalia.com/docker:git
-# }
-
-# function runremodel() {
-# 	rocker --x11 --nvidia --privileged --network=host --name remodel_docker --oyr-run-arg " -v iiwa_state_recorder:/home/remodel/iiwa_state_recorder -v /home/andres/test/remodel_shared:/home/remodel/remodel_shared" -- remodel_app:melodic bash -c "'roslaunch remodel_app remodel_app.launch use_sim:=true docker:=true skill_manager:=true collision_detector:=true ui:=true cad:=true joystick:=false'"
-# }
-
-# function docrun() {
-# 	rocker --nvidia --pulse --x11 --volume /dev/video0:/dev/video0 --privileged --oyr-run-arg " -v odin_robot_volume:/root/" --name odin_robot --network host odin_robot:melodic $1
-# }
-
-# function runodin() {
-# 	rocker --nvidia --pulse --x11 --privileged --volume /dev/video0:/dev/video0 --name odin_melodic --network host devenv:melodic $1
-# }
-
-#DOCKER
-alias dexec='f(){ docker exec -w /root/ --detach-keys="ctrl-@" -e DISPLAY=$DISPLAY -it $1  /bin/bash -c "terminator --no-dbus";  unset -f f; }; f'
-alias dexec_nt='f(){ docker exec --detach-keys="ctrl-@" -e DISPLAY=$DISPLAY -it $1  /bin/bash ;  unset -f f; }; f'
-alias dstart='f(){ docker start $1; dexec $1;  unset -f f; }; f'
-# Run using same X and .ssh folder
-alias drun='f(){ docker run -it -e DISPLAY=$DISPLAY --detach-keys="ctrl-@" -v /tmp/.X11-unix:/tmp/.X11-unix -v ~/.ssh:/root/.ssh:ro -v ~/docker_share/:/root/docker_share/ --net=host --name $2 $1; unset -f f; }; f'
-alias drun_nvidia='f(){ docker run -it --name $2 --privileged \
-    --net=host \
-    --env=NVIDIA_VISIBLE_DEVICES=all \
-    --env=NVIDIA_DRIVER_CAPABILITIES=all \
-    --env=DISPLAY \
-    --env=QT_X11_NO_MITSHM=1 \
-    -v /tmp/.X11-unix:/tmp/.X11-unix \
-    --gpus all \
-    --device /dev/snd \
-    -e NVIDIA_VISIBLE_DEVICES=0 \
-    --detach-keys="ctrl-@" \
-    -v ~/.ssh:/root/.ssh:ro \
-    -v ~/docker_share/:/root/docker_share/ \
-    $1 /bin/bash; unset -f f; }; f'
diff --git a/dotfiles/docker.sh b/dotfiles/docker.sh
index 4ad2802..8fe8e46 100644
--- a/dotfiles/docker.sh
+++ b/dotfiles/docker.sh
@@ -51,6 +51,7 @@ function dockbuild(){
 # To share docker --volume /var/run/docker.sock:/var/run/docker.sock:ro
 # To share video (usb-cam) --volume /dev/video0:/dev/video0
 # To share pcan --volume /dev/pcanusb32:/dev/pcanusb32
+# To share 3Dmouse --volume /dev/pcanusb32:/dev/pcanusb32
 function dockrun() {
     if [ $# -lt 1 ]; then
         echo "Usage: dockrun <ROS_DISTRO> [posicional options]"
@@ -88,10 +89,18 @@ function dockrun() {
         if [ $# -lt 4 ]; then
             rocker --home --ssh --git --user --privileged --nvidia --x11 --network host --name $1 devenv:$1
         else
+            if [ $3 = "dev" ]; then
+                rocker --home --ssh --git --user --privileged --nvidia --x11 --volume /dev:/dev --network host --name $1 devenv:$1
+            else
+            fi
             if [ $3 = "pcan" ]; then
                 rocker --home --ssh --git --user --privileged --nvidia --x11 --volume /dev/pcanusb32:/dev/pcanusb32 --network host --name $1 devenv:$1
             else
             fi
+            if [ $3 = "video" ]; then
+                rocker --home --ssh --git --user --privileged --nvidia --x11 --volume /dev/video0:/dev/video0 --network host --name $1 devenv:$1
+            else
+            fi
         fi
     fi
 }
diff --git a/dotfiles/ros.bck b/dotfiles/ros.bck
deleted file mode 100644
index 6e28ad5..0000000
--- a/dotfiles/ros.bck
+++ /dev/null
@@ -1,102 +0,0 @@
-###################################################################
-# ROS aliases and functions
-###################################################################
-
-# Define ROS_DISTRO before source ROS on native OS
-# if [ -z $ROS_DISTRO ]; then export ROS_DISTRO=noetic; fi
-if [[ -z "${ROS_DISTRO}" ]]; then
-    ROS_DIR=/opt/ros
-    if [ -d "$ROS_DIR" ];
-    then
-        export ROS_DISTRO=$(basename $(find /opt/ros/* -maxdepth 0 -type d | head -1))
-    else
-        unset ROS_DISTRO
-    fi
-fi
-
-# Determine shell extension
-if [ -z $SHELL ]; then echo "SHELL not set"; else ext=$(basename ${SHELL}); fi
-
-# Source rosmon
-function smon(){
-    if [[ -f "/opt/ros/${ROS_DISTRO}/etc/catkin/profile.d/50-rosmon.${ext}" ]]; then
-        source /opt/ros/${ROS_DISTRO}/etc/catkin/profile.d/50-rosmon.${ext}
-    fi
-}
-
-# cd to the root of the workspace
-function roshome(){
-    roscd && cd ..
-    ROS_HOME=${PWD}
-}
-
-# Source the current workspace
-function sourcews(){
-    source ./devel/setup.${ext} && smon
-}
-
-# Source the current workspace
-function sourceros(){
-    source /opt/ros/${ROS_DISTRO}/setup.${ext} && smon
-    ROS_HOME="/opt/ros/${ROS_DISTRO}/"
-}
-
-# Source the current workspace
-function sourcethis(){
-    pwd_st=${PWD}
-    roshome && sourcews
-    echo "Sourcing: ${ROS_HOME}"
-    cd ${pwd_st}
-}
-
-# Automatic catkin build
-function cb() {
-    pwd_cb=${PWD}
-    roshome
-    catkin build --summarize --cmake-args -DCMAKE_BUILD_TYPE=Release -- "$@"
-    sourcethis
-    cd ${pwd_cb}
-}
-
-# Clean workspace (delete the generated folders, then catkin build)
-function cbclean(){
-    roshome && rm -rf build devel install && catkin build --summarize --cmake-args -DCMAKE_BUILD_TYPE=Release
-}
-
-# Initialize catkin workspace, configure and build it
-function cib(){
-    catkin init && catkin config --extend /opt/ros/${ROS_DISTRO} && catkin build --summarize --cmake-args -DCMAKE_BUILD_TYPE=Release
-}
-
-# Run ci locally
-function runci(){
-    # check if exist .rosinstall file
-    if [ -f ./.rosinstall ]; then
-        echo ".rosinstall in package"
-        find ../ -name run_ci -exec bash {} ROS_DISTRO="$@" DOCKER_IMAGE=tecnalia-robotics-docker.artifact.tecnalia.com/flexbotics-base-devel:"$@" UPSTREAM_WORKSPACE=.rosinstall \;
-    else
-        echo "No .rosinstall in package"
-        find ../ -name run_ci -exec bash {} ROS_DISTRO="$@" DOCKER_IMAGE=tecnalia-robotics-docker.artifact.tecnalia.com/flexbotics-base-devel:"$@" \;
-    fi
-}
-
-# if a new terminal starts in a ws, auto source it (useful for vscode)
-if [ -z ${ROS_DISTRO+x} ]; then ;
-else
-    pwd_init=${PWD}
-    cropped=${PWD#${HOME}/ros/${ROS_DISTRO}/}
-    WS_name=${cropped%%/*}
-    WS_path=${HOME}/ros/${ROS_DISTRO}/${WS_name}
-    FILE=${WS_path}/devel/setup.${ext}
-    # if PWD belongs to ROS ws then source it
-    if [[ -f $FILE ]]; then
-        cd ${WS_path}
-        source $FILE
-        cd ${pwd_init}
-        ROS_HOME=${WS_path}
-    else
-        sourceros
-    fi
-fi
-
-alias sc=sourcethis
\ No newline at end of file
diff --git a/dotfiles/sysem.bck b/dotfiles/sysem.bck
deleted file mode 100644
index ec8fc99..0000000
--- a/dotfiles/sysem.bck
+++ /dev/null
@@ -1,38 +0,0 @@
-# Determine shell extension
-if [ -z $SHELL ]; then
-    echo "SHELL not set"
-    export SHELL=/usr/bin/zsh
-    ext=$(basename ${SHELL});
-else
-    ext=$(basename ${SHELL});
-fi
-
-if command -v lsd &> /dev/null
-then
-    # Directories
-    alias ll='lsd -lh --group-dirs=first'
-    alias la='lsd -a --group-dirs=first'
-    alias l='lsd --group-dirs=first'
-    alias lla='lsd -lha --group-dirs=first'
-    alias ls='lsd --group-dirs=first'
-else
-    alias ll='ls -lh'
-    alias la='ls -a'
-    alias l='ls'
-    alias lla='ls -lha'
-    alias ls='ls'
-fi
-
-if command -v bat &> /dev/null
-then
-    # Files
-    alias cat='bat'
-fi
-
-# Python
-if command -v ipython &> /dev/null
-then
-    alias ipy='ipython'
-fi
-
-alias mountT='sudo mount -t cifs //tri.lan/tri /mnt/T --verbose -o username=110343,password=Bageera\#1983,workgroup=TRI.LAN'
diff --git a/dotfiles/zshrc.bck b/dotfiles/zshrc.bck
deleted file mode 100644
index 5e93a5a..0000000
--- a/dotfiles/zshrc.bck
+++ /dev/null
@@ -1,86 +0,0 @@
-# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
-# Initialization code that may require console input (password prompts, [y/n]
-# confirmations, etc.) must go above this block; everything else may go below.
-if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
-  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
-fi
-
-#zmodload zsh/zprof
-
-# If you come from bash you might have to change your $PATH.
-# export PATH=$HOME/bin:/usr/local/bin:$PATH
-
-# Path to your oh-my-zsh installation.
-export ZSH=~/.oh-my-zsh
-
-# Uncomment the following line to display red dots whilst waiting for completion.
-COMPLETION_WAITING_DOTS="true"
-
-source "$HOME/.homesick/repos/homeshick/homeshick.sh"
-fpath=($HOME/.homesick/repos/homeshick/completions $fpath)
-
-source ~/antigen.zsh
-antigen use oh-my-zsh
-
-antigen theme romkatv/powerlevel10k
-
-antigen bundle docker
-antigen bundle git
-antigen bundle globalias
-antigen bundle last-working-dir
-antigen bundle sudo
-antigen bundle zsh-users/zsh-history-substring-search
-antigen bundle zsh-users/zsh-syntax-highlighting
-antigen bundle wfxr/forgit
-antigen bundle paulirish/git-open
-antigen bundle popstas/zsh-command-time
-antigen bundle MichaelAquilina/zsh-auto-notify
-antigen bundle MichaelAquilina/zsh-you-should-use
-antigen bundle zsh-users/zsh-autosuggestions
-
-antigen apply
-
-#ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=0'
-
-# command-line fuzzy finder
-[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
-
-source $HOME/.init_shell
-
-if [ -f ~/.bash_aliases ]; then
-    . ~/.bash_aliases
-fi
-
-#zprof
-
-export FZF_DEFAULT_COMMAND='rg --files --hidden --follow --no-ignore-vcs'
-export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
-#export FZF_ALT_C_COMMAND="fd -t d --hidden --follow --exclude \".git\" . $HOME"
-export FZF_ALT_C_COMMAND="fd -t d --hidden --follow --exclude \".git\" ."
-
-# Create a cache folder if it isn't exists
-if [ ! -d "$HOME/.cache/zsh" ]; then
-    mkdir -p $HOME/.cache/zsh
-fi
-
-# Define a custom file for compdump
-export ZSH_COMPDUMP="$HOME/.cache/zsh/zcompdump-$HOST-$ZSH_VERSION"
-
-# User configuration
-
-export EDITOR="code -r"
-
-# Include dotfiles
-source ${HOME}/srcs/development_environment/dotfiles/system.bash
-source ${HOME}/srcs/development_environment/dotfiles/git.bash
-source ${HOME}/srcs/development_environment/dotfiles/docker.bash
-source ${HOME}/srcs/development_environment/dotfiles/ros.bash
-
-# To add direnv app
-# eval "$(direnv hook zsh)"
-
-# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
-[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
-
-# Finalize Powerlevel10k instant prompt. Should stay at the bottom of ~/.zshrc.
-(( ! ${+functions[p10k-instant-prompt-finalize]} )) || p10k-instant-prompt-finalize
-- 
GitLab