Log in


Forgot your password?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
zextras_logo.png
 
You are here: Home / members / Gavrilo Prodanovic / Shell skripte / mjuza.sh - uzivanje u muzici

mjuza.sh - uzivanje u muzici

by Gavrilo Prodanovic last modified Mar 06, 2011 08:27 PM
Skripta koja ce iz nekoga foldera da izabere nasumicno neki broj pjesama, i pusti ih nekim muzickim plejrom kao mplayer, mpg321, mpg123. Po zelji moze da ugasi racunar posle pustanja pjesama ili da kreira ram disk i da u njega smjesti pjesme ako imate bucan HDD. Za vise opcija ./mjuza -h Primjeri koriscenja: "./mjuza -g -r -b 15 ~/Music/" Skripta kada bira pjesme iz nekoga direktorijuma gleda i poddirektorijume.

text/x-sh icon mjuza.sh — text/x-sh, 3 kB (3353 bytes)

File contents

#!/bin/bash
## FUNKCIJE
  pomoc () {
   echo 'KORISTITE [-h] [-t dir] [-r] [-d] [-e command] [-g] [-s] [-b n] DIREKTORIJUM(I)'
   echo '-h Ispisuje ovu pomoc'
   echo '-t dir kreira se temp direktorijum gde da se smjeste fajlove ako se ne navede onda "tmp-muzika"'
   echo '-r pravi ram disk i u njih smjesta fajlove, potrebno biti u sudo listi ili biti root'
   echo '-d ne brise temp dir nakon zavrsetka slusanja muzika'
   echo '-e command koristi externu komandu za pustanje pjesama, ako se nenavede koristi programe mplayer, mpg321 i mpg123'
   echo '-g gasi racunar posle zavrsetka slusanja, potrebno biti u sudo listi ili root'
   echo '-s bira pjesme na tenade :)  , nema ucinka ako se koristi sa -e'
   echo '-b n Koliko pjesama da izabere i stavi u tmp direktorijum, podrazumjevano 10'
   exit 1
   }
## END

## UZIMANJE ARGUMENATA
 # ZA ISPISIVANJE POMOCI
  if [ $# -eq 0 ]
  then
   pomoc
  fi
  if [ $1 = -h ]; then
   pomoc; fi

  # ISPITIVANJE OSTALIH ARGUMENATA
  # POSTAVLJANJE DEFAULT VRIJEDNOSTI
   tmp_muzike=tmp-muzika
   ram_disk=0  # NEPRAVI SE RAM DISK
   ne_brisi=0  # BRISE FAJLOVE POSLE SLUSANJA
   komanda=DEF # NIJE NAVEDENA EKSTERNA KOMANDA KORESTE SE DEFAUL
   gasi=0      # NE GASI POZAR POSLE MUZIKE :)
   tenade=0    # NE PEVA NA TENADE KAKO KAZE MOJA BABA :D
   broj=10     # BIRA 10 PESAMA OD FRLJUCKE xD
  #TRAZI ARGUMENTE KOJI SU ZADATI
  brojac=1
  brarg=$#
  while [ $brojac -le $brarg ]
  do
   if [ $1 = -t ]; then
    tmp_muzike=$2
    shift; shift; brojac=`expr $brojac + 1`
   elif [ $1 = -r ]; then
    ram_disk=1
    shift
   elif [ $1 = -d ]; then
    ne_brisi=1
    shift
   elif [ $1 = -e ]; then
     komanda=$2
     shift; shift; brojac=`expr $brojac + 1`
   elif [ $1 = -g ]; then
    gasi=1
    shift
   elif [ $1 = -s ]; then
    tenade=1
    shift
   elif [ $1 = -b ]; then
    broj=$2
    shift; shift; brojac=`expr $brojac + 1`
   fi
   brojac=`expr $brojac + 1`
  done
## END

## NASUMICNO BIRANJE LISTE PJESAMA
  mkdir  $tmp_muzike # KREIRANJE DIR-A
  if [ $ram_disk -eq 1 ]; then # PRAVLJENJE RAM DISKA
   sudo mke2fs /dev/ram0
   sudo mount /dev/ram0 $tmp_muzike
   sudo chmod -R 777 $tmp_muzike
  fi
  br_pesama=`find "$@" -name '*.mp3' | wc -l`; br_pesama=`expr $br_pesama - 1`
  for i in `seq 1 $broj`
  do
   br=$[ $RANDOM % $br_pesama + 1 ]
   pesma=`find "$@" -name '*.mp3' | sed -n "$br p"` ; cp "$pesma" $tmp_muzike
  done
## END

## PUSTANJE MUZIKE [GASENJE KOMPA] [I OSLOBADJANJE RESURSA]
  #PUSTANJE PJESAMA
  if [ $komanda = DEF ]; then 
    if [ $tenade -eq 0 ]; then
     mplayer $tmp_muzike/*
     if [ `echo $?` -eq 127 ]; then
      mpg321 $tmp_muzike/*; fi
     if [ `echo $?` -eq 127 ]; then
      mpg123 $tmp_muzike/*; fi
    elif [ $tenade -eq 1 ]; then
     mplayer -shuffle $tmp_muzike/*
     if [ `echo $?` -eq 127 ]; then
      mpg321 -z $tmp_muzike/*; fi
     if [ `echo $?` -eq 127 ]; then
      mpg123 -z $tmp_muzike/*; fi
    fi
  else
   $komanda $tmp_muzike/* # Pokrece ekternu komandu
  fi

  #POSPREMANJE TEMP DIREKTORIJUMA
  if [ $ne_brisi -eq 0 ]; then
   rm -r $tmp_muzike/*
   echo "Brisanje temp direktorijuma..."
   if [ $ram_disk -eq 1 ]; then
    echo "Razmontiranje /dev/ram0" 
    sudo umount /dev/ram0; fi
   rmdir $tmp_muzike
  fi
  # GASENJE RACUNARA
  if [ $gasi -eq 1 ]; then
  echo "Gasenje racunara" 
  sleep 3
  sudo halt; fi
## END
exit 0

Document Actions