Voici donc la nouvelle version de CutMyUrl ! Pour rappel ce script a pour fonction de raccourcir une adresse en utilisant le service mis à disposition par ur1.ca. Rien d’exceptionnel donc, mais il a le mérite de fonctionner !
Installation :
Arch Linux :
Un petit yaourt sera suffisant pour installer CutMyUrl :
$ yaourt -S cutmyurl
Autres distributions :
Télécharger le paquet :
$ wget http://ubunblox.free.fr/UbunBlox/AUR/cutmyurl-1.5.tar.gz
Décompresser l’archive et rendez le script exécutable :
$ tar -xf cutmyurl-1.5.tar.gz
$ chmod +x cutmyurl
Fonctionnalités :
Voici les fonctionnalités incluses dans cette version 1.5 :
- Copie de l’url dans le presse papier.
- Archivage des adresses.
- Possibilité d’afficher et de supprimer l’historique des adresses.
- Fonctions de recherche.
- Support des tags.
Voyons maintenant les différentes utilisations possibles de CutMyurl :
- Afficher l’aide :
$ cutmyurl -h
- Afficher les notes de version :
$ cutmyurl -v
- Afficher les informations concernant CutMyUrl :
$ cutmyurl -i
- Raccourcir simplement une adresse :
$ cutmyurl -u http://google.fr
- Raccourcir une adresse et la copier directement dans le presse papier :
$ cutmyurl -c http://google.com
- Raccourcir une adresse et lui ajouter un tag :
$ cutmyurl -c http://google.com recherche
$ cutmyurl -u http://ubunblox.servhome.org "mon blog"
Si aucun tag n’est ajouté par l’utilisateur, celle-ci portera automatiquement le tag #none.
- Afficher l’historique :
$ cutmyurl -H
Appuyez sur la touche [ Q ] pour quitter l’historique.
- Supprimer l’historique :
$ cutmyurl -d
- Effectuer une recherche :
$ cutmyurl -s google
$ cutmyurl -s "mon blog"
Le script :
Pour les plus curieux d’entres vous : Voici le script dans son intégralité.
#!/bin/sh # CutMyUrl # Version 1.5 # 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, xclip ######################### ## Variables ## r="\033[0m" # regular f="\033[1m" # fat v="1.5" # version n="CutMyUrl" # name u="http://ur1.ca/" # url path="$HOME/.config/cutmyurl" # path log="$path/log" # log file date=`date '+%F %T'` # date # # ## Check for arg in $2 ## if [ -n "$2" ] ; then arg="$2" fi # # ## Check for arg in $3 ## if [ -n "$3" ] ; then tag="#$3" else tag="#none" fi # # ## Check for path ## if ! [ -d $path ] ; then mkdir -p $path fi # # ## Check for log file ## if ! [ -r $log ] ; then echo -e "## $n log file ## \n \n " > $log 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" _log fi } # # ## Fontion copy short url to clipboard ## _copy () { _cut_url if [ -z $short_url ] ; then echo -e "\n$g---------→ Need help $USER ? $n\n" _help else echo "$short_url" | xclip -selection c echo -e "\nThe url $f"$short_url"$r has been copied to your clipboard. \n" _log fi } # # ## Fonction log ## _log (){ sed -i '3i\'"$date \t$arg \t$short_url \t$tag"'' $log } # # ## Fontion history ## _hist () { less $log } # # ##Fonction delete history ## _delete () { echo -e " Do you really want to$f delete$r the history file ? $f[Y/N]$r" read reply case "$reply" in y | Y | yes | YES | o | O | oui | OUI ) echo -e "## $n log file ## \n \n " > $log & echo "History deleted, bye !" ;; * ) echo "\n$f Nothing to do, bye !$r \n" ;; esac } # # ## Fonction search ## _search () { _hist | grep "$arg" if [ $? != 0 ] ; then echo -e " No result for $arg" 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] [TAG]\n" echo -e "$f DESCRIPTION$r" echo -e "\t $f-u, --url $r \t[URL]\tShort url." echo -e "\t $f-c, --copy $r \t[URL]\tCopy short url to clipboard." echo -e "\t $f-s, --search $r \t[EXP]\tSearch expression in history file." 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." echo -e "\t $f-H, --history $r\t\tView the history file." echo -e "\t $f-d, --delete $r\t\tDelete history file.\n" echo -e "$f EXAMPLES$r" echo -e "\t$f cutmyurl$r -u http://google.com" echo -e "\t$f cutmyurl$r -c http://google.com" echo -e "\t$f cutmyurl$r -u http://website_about_cat_and_dog.com \"cat and dog\"" echo -e "\t$f cutmyurl$r -c http://google.com google\n" 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 26/04/2011 :$r\tAdd search fonction and tag support\n" echo -e "\t$f 19/04/2011 :$r\tAdd history fonction and delete fonction\n" echo -e "\t$f 18/04/2011 :$r\tChange in copy fonction\n" echo -e "\t$f 18/04/2011 :$r\tAdd copy fonction\n" echo -e "\t$f 16/04/2011 :$r\tFirst release\n" echo -e "$f DEPENDS$r" echo -e "\t$f curl, xclip$r\n" } # # ## Start CutMyUrl ## case "$1" in -h | --help) _help ;; -i | --info) _info ;; -v | --version) _version ;; -u | --url) _url ;; -c | --copy) _copy ;; -H | --history) _hist ;; -d | --delete) _delete ;; -s | --search) _search ;; *) _help esac # # ## End ## exit 0 # #
Comme d’habitude n’hésitez pas à laisser vos remarques .
Lien :
- CutMyUrl sur AUR
26 avril 2011 à 13:06
Salut,
A la place de less je pense qu’il serait plus intéressant d’utiliser pager qui est forcément présent et qui point sur less, more ou most (ou view par exemple).
26 avril 2011 à 14:24
@Yoko : « il serait plus intéressant d’utiliser pager qui est forcément présent », Il n’est pas prèsent chez moi en tout cas… Il serait dommage d’ajouter une dépendance jsute pour un afficher un texte.
27 avril 2011 à 10:32
pager est dans le coreutils je crois donc son utilisation ne nécessite pas plus de dépendance que less
Pourquoi forcément utiliser une option afin de raccourcir le lien ?
« $ cutmyurl http://google.fr » serait suffisant non ?
27 avril 2011 à 10:38
@Guillaume : Peut être… Je pourrais faire un truc du genre :
case « $1″ in
http* ) _url
;;
esac