avr 16

Aujourd’hui je vais vous faire la présentation d’un script BASH portant le nom de CutMyUrl. Ce petit script a pour fonction de raccourcir une url en utilisant le service mis à disposition par ur1.ca, un service que les utilisateurs d’Identi.ca connaissent à coup sûr.

Raccourcir une adresse donnée par l’utilisateur : CutMyUrl ne fait que ça et le fait plutôt bien, en tout cas depuis une semaine que j’utilise celui-ci, il fonctionne sans problème.

Pourquoi ce script ? Tout d’abord et cela va de soi, parce que j’en ai l’utilité : Partager un lien dans sa version courte est tout de même bien pratique. Bon je vous l’accorde entre ouvrir un terminal et un navigateur pour faire exactement la même tâche, il n’y a vraiment pas de différence à l’usage… Mais à titre personnelle, je préfère utiliser un terminal qui s’ouvrira beaucoup plus rapidement.

Le script se comporte comme la majorité des outils en ligne de commande avec ses options –help, –info, etc… Pour l’utilisateur final, ça ne sert pas à grand chose mais cela permettra par la suite d’ajouter assez facilement des nouvelles fonctionnalités…

Le script :

#!/bin/sh
 
#  CutMyUrl
#  Version 1.0
#  A shortener url command line
#  Using the open source service ur1.ca, http://ur1.ca/
#  By Lopes Ferreira David, http://ubunblox.servhome.org/
#  ubunblox@gmail.com
#  Licence GPL
#  Depends : curl
#########################
 
 
	## Variables ##
r="\033[0m"		# regular
f="\033[1m"		# fat
v="1.0"			# version
n="CutMyUrl"		# name
u="http://ur1.ca/"	# url 
#
#
	## Check arg in $2 ##
if [ -n $2 ] ; then 
	arg=$2
fi
#
#
	## Fonction cut url ##
_cut_url () {
short_url=$(curl -s "$u" -d"longurl=$arg" | grep 'Your ur1 is' | sed 's/^.*<a href="//;s/".*$//')
}
#
#
	## Fonction display short url ##
_url () {
_cut_url
if [ -z $short_url ] ; then
	echo -e "\n$f---------→ Need help $USER ? $r\n"
	_help
else
	echo -e "\n$short_url \n"
fi	
}
#
#
	## Fonction help ##
_help () {
echo -e "$f NAME$r"
echo -e "\t$f $n $r- Shortener url command line. \n"
echo -e "$f SYNOPSIS$r"
echo -e "\t$f cutmyurl$r OPTION [URL]...\n"
echo -e "$f DESCRIPTION$r"
echo -e "\t $f-u, --url $r \t[URL]\tShort url."
echo -e "\t $f-h, --help $r\t\tHelp."
echo -e "\t $f-v, --version $r\t\tVersion."
echo -e "\t $f-i, --info $r\t\tInformations.\n"
echo -e "$f EXAMPLE$r"
echo -e "\t$f cutmyurl$r -u http://google.com"
echo -e "$f END$r"
}
#
#
	## Fonction informations ##
_info () {
echo -e "$f $n$r"
echo -e "\n\t # A shortener url command line "
echo -e "\t # Using the open source service ur1.ca, http://ur1.ca/"
echo -e "\t # By Lopes Ferreira David, http://ubunblox.servhome.org/"
echo -e "\t # ubunblox@gmail.com"
echo -e "\t # Licence GPL \n"
}
#
#
	## Fonction version ##
_version () {
echo -e "$f VERSION$r"
echo -e "\t$f version :$r\t$v\n"
echo -e "$f CHANGE LOG$r"
echo -e "\t$f 16/04/2011 :$r\tFirst release\n" 
}
#
#
	## Start CutMyUrl ##
case "$1" in
	-h | --help)		_help
	;;
	-i | --info)		_info
	;;
	-v | --version)		_version
	;;
	-u | --url)		_url
	;;
	*)			_help
esac
#
#
	## End ##
exit 0
#
#

Comme vous pouvez le voir le script est simple, tout comme l’est le « pseudo anglais » qui le compose ! Si vous avez des remarques à faire ne vous gênez surtout pas ;) .

Note : CutMyUrl utilise curl, vérifiez si il est installé sur votre système.

Installation :

Arch Linux :

Le script est disponible sur AUR, un coup de yaourt sera suffisant :

$ yaourt -S cutmyurl

Enjoy :

$ cutmyurl -u http://votre/url

Autres distributions :

Télécharger tout d’abord le paquet :

$ wget http://ubunblox.free.fr/UbunBlox/AUR/cutmyurl-1.0.tar.gz

Décompresser l’archive et rendez le fichier exécutable :

$ tar -xf cutmyurl-1.0.tar.gz
$ chmod +x cutmyurl

Lancez ensuite l’application :

$ ./cutmyurl -u http://votre/url

Syntaxe d’utilisation:

$ cutmyurl [option] [url]

Exemples :

Pour raccourcir l’adresse http://google.fr :

$ cutmyurl -u http://google.fr

Pour afficher la page d’aide avec la liste des options :

$ cutmyurl --help

Comme dit précédemment, n’hésitez pas à laisser vos remarques !

Lien :

écrit par David Lopes Ferreira

10 commentaires à “CutMyUrl : Un raccourcisseur d’url en ligne de commande”

  1. D Dit:

    Ou alors, plus simple :

    #!/bin/sh
    echo « Votre url :  » $1
    short_url=$(curl -s « http://ur1.ca/ » -d »longurl=$1″ | grep ‘Your ur1 is’ | sed ‘s/^.*<a href="//;s/".*$//')
    echo "Url raccourcie : " $short_url
    echo $short_url | xclip -i

  2. David Lopes Ferreira Dit:

    @D : + Simple oui ;) et déjà dans la version 1.1 depuis hier… Je la publierais dans la semaine.

    Add fonction copy to clipboard.

    Todo :

    History log
    Tag option
    Search option

    Le script est articulé ainsi car pas mal de fonctions seront ajoutées d’ici peu : –history –clean –copy –tag –search

  3. David Lopes Ferreira Dit:

    @D : D’ailleurs j’ai hésité entre xclip et xsel : Le vainqueur est simplement le plus léger : xclip

  4. Nouvelle version de CutMyUrl » UbunBloX Dit:

    [...] CutMyUrl : Un raccourcisseur d’url en ligne de commande [...]

  5. CutMyUrl : Version 1.4 disponible » UbunBloX Dit:

    [...] CutMyUrl : Un raccourcisseur d’url en ligne de commande Partager cet article : Recommend on Facebook Buzz it up Share on netvibes Share on identica Share on technorati Tweet about it Subscribe to the comments on this post Bookmark in Browser Tell a friend [...]

  6. mart-e Dit:

    Petite question, tu ne sais pas où trouver le code source de ur1.ca ? Ils ont un lien sur leur page d’acceuil mais il est mort…

    Le code fonctionne bien sinon, juste peut être vérifier que les dépendances requises sont présentes (en voulant utiliser l’option -c, j’ai eu un message « xclip: not found. The url has been copied »)

  7. David Lopes Ferreira Dit:

    @mart-e : Pour le code source je ne sais pas du tout… Ensuite pour xclip, le script est prévu pour être installé via le PKGBUILD sur la distribution Arch Linux, il installe donc les dépendances par la même occasion.

    Pour les autres distributions, il faut installer les dépendances à la main, je pourrai bien ajouter un morceau de code qui vérifie si tout est bien installé mais ça fait doublon avec le PKGBUILD…

  8. mart-e Dit:

    Tant pis pour ur1, ils disent se baser sur lilurl dont le code lui est dispo

    Oui j’ai été récupéré le script moi même sans passer par AUR donc n’ai pas eu les dépendances.
    Ou alors faire deux versions : une pour archlinux et une pour toute distrib mais ça devient ptete pas très pratique de fractionner le code.

  9. David Lopes Ferreira Dit:

    @mart-e : je pourrais aussi passer xclip en dépendance optionnel dans le PKGBUILD … Et invité à installer xclip lors de l’utilisation de l’option -c

  10. kohls dresses Dit:

    That’s why you might have to have effective internet based business home keep when it comes to taking items proper your individual web-based online business. cash

Laisser une Réponse