25 lines
		
	
	
		
			425 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			425 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
if [ "x$1" != "x" ]
 | 
						|
then
 | 
						|
  pgrep -l -u "$USER" -f "$1" | egrep -v "/bin/bash|/bin/sh" | grep -vq "$$"
 | 
						|
  if [ $? == "0" ]
 | 
						|
  then
 | 
						|
    WID=`xdotool search --class $1 | head -1`
 | 
						|
    wmctrl -i -a $WID
 | 
						|
    if [ "x$2" != "x" ]
 | 
						|
    then
 | 
						|
      eval "$2"
 | 
						|
    fi
 | 
						|
  else
 | 
						|
    if [ "x$3" == "x" ]
 | 
						|
    then
 | 
						|
      /usr/bin/$1
 | 
						|
    else
 | 
						|
      eval "$3"
 | 
						|
    fi
 | 
						|
  fi
 | 
						|
else
 | 
						|
  echo "Usage: one-instance program-name [extra action]"
 | 
						|
fi
 | 
						|
 |