2009
10.10

aMuleSemplice script che prendere un file di links ed2k (separati da “andata a capo”) e li inserisce uno a uno in aMule (corrispettivo di eMule su linux). Può essere usato sia con aMule installato localmente che da un client remoto. Per l’escuzione dello script è necessario il comando amulecmd, presente nel pacchetto amule-utils (in ubuntu).

Script

#!/bin/bash

WORKING_DIR=$(dirname $0)

# -----------------------------------------------------
# UTIL FUNCTIONS

print_verbose()
{
  if [[ -n $VERBOSE ]]
  then
          printf "$1\n"
  fi
}

# -----------------------------------------------------
# PARSING CMD LINE OPTIONS

usage()
{
  printf "usage: $0 [-d|v] [-p params] ed2k_file\n"
  printf "\n"
  printf "Add ed2k link stored in a file to aMule.\n"
  printf "\n"
  printf "OPTIONS:\n"
  printf "       -h               Show this message\n"
  printf "       -d               Delete file at the end\n"
  printf "       -v               Verbose\n"
  printf "       -p params        Amule additional params\n"
  printf "\n"
}

DELETE_FILE=
VERBOSE=
AMULE_PARAMS=
ED2K_FILE=
while getopts “hdvp:” OPTION
do
  case $OPTION in
    h)
       usage
       exit 1
       ;;
    d)
       DELETE_FILE=1
       ;;
    v)
       VERBOSE=1
       ;;
    p)
       AMULE_PARAMS=$OPTARG
       ;;
    ?)
       usage
       exit 1
       ;;
  esac
done

eval ED2K_FILE=\$$OPTIND

# Some check
if [[ -z $ED2K_FILE ]]
then
  printf "You must select a file\n"
  usage
  exit 1
fi

if [[ ! -e $ED2K_FILE ]]
then
  printf "$ED2K_FILE: File don't exist!\n"
  exit 1
fi

i=0
# Read file ED2K_FILE line by line
while read line
do
  executed_command="amulecmd -c \"add $line\""

  # Add some optional parameters
  test "$AMULE_PARAMS" && executed_command="$executed_command $AMULE_PARAMS"
  test ! $VERBOSE && executed_command="$executed_command &>/dev/null"

  if eval $executed_command
  then
    print_verbose "Added: $line\n"
    (( i += 1 ))
  else
    printf "Error on exuction: '$executed_command'!\n"
    exit 1
  fi
done < $ED2K_FILE
print_verbose "Added $i ed2k link from file $ED2K_FILE\n"

# Remove $ED2K_FILE
if [[ $DELETE_FILE ]]
then
  if rm $ED2K_FILE
  then
    print_verbose "$ED2K_FILE: File eliminato correttamente\n"
  else
    printf "$ED2K_FILE: Impossibile cancellare il file!\n"
    exit 1
  fi
fi

exit 0

Vi consiglio di copiare lo script in /usr/local/bin o cmq in una delle directory indicate nella variabile $PATH e modificare i permessi (es. chmod 775 addE2dk.sh) come meglio credete. In questo modo lo avrete sempre a disposizione come un qualsiasi comando linux.

Uso
addE2dk.sh [-d|v] [-p params] ed2k_file

-d Cancella il file (ed2k_file) alla fine del processo
-v Abilita la modalità verbose, visualizzando anche l’output di amulecmd
-p params Comandi per amulecmd (es. -P passwd, -h host, etc…)

Esempio
addE2dk.sh -dv -p "-P mypasswd -h muletto" ed2k_file
Con il flag -d cancelliamo il file al termine dell’esecuzione, -v abilitiamo la modalità verbose visualizzando anche l’output di amulecmd, mentre con -p ci colleghiamo in remoto ad un demone aMule sull’host muletto con la password mypasswd.

L’opzione -p serve per passare parametri ad amulecmd, nell’esempio -P e -h. E’ necessario racchiudere i comandi all’interno di doppi apici.

Add ed2k v0.6b
Data: 23.10.2009
Size: 936 bytes
Downloads: 31 hits
Download

No Comment.

Add Your Comment

    Usable tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>