<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>4 bits blog &#187; Script</title>
	<atom:link href="http://blog.4bits.es/category/lenguajes/script/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.4bits.es</link>
	<description>Ahora en 16 colores</description>
	<lastBuildDate>Thu, 05 Aug 2010 13:52:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Convertir repositorio de subversion a uno de Git</title>
		<link>http://blog.4bits.es/convertir-repositorio-de-subversion-a-uno-de-git/</link>
		<comments>http://blog.4bits.es/convertir-repositorio-de-subversion-a-uno-de-git/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 08:00:19 +0000</pubDate>
		<dc:creator>Fran</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://blog.4bits.es/?p=538</guid>
		<description><![CDATA[Hace unos días tuve que convertir un repositorio de subversion a un repositorio de Git. Después de buscar un poco por Google, encontré la manera de hacerlo en una web del wiki de Debian sobre cómo configurar Git en su web de proyectos Alioth. Antes de nada, hay que crear un archivo con los nombres [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos días tuve que <strong>convertir un repositorio de subversion a un repositorio de Git</strong>. Después de buscar un poco por Google, encontré la manera de hacerlo en <a href="http://wiki.debian.org/Alioth/Git">una web del wiki de Debian sobre cómo configurar Git en su web de proyectos Alioth</a>.</p>
<p>Antes de nada, hay que crear un archivo con los nombres de los desarrolladores que han usado el repositorio de subversion, el archivo tendrá el siguiente formato:</p>
<pre>pepe = Pepe Garcia &lt;pepe@garcia.es&gt;
juan = Juan Gonzalez &lt;juan@gonzalez.es&gt;</pre>
<p>Los nombres de los desarrolladores del repositorio de subversion se pueden conseguir ejecutando:</p>
<pre>$ svn log "svn://REPOSITORIO-SVN/" | awk -F'|' '/^r[0-9]+/ { print $2 }' | sort -u</pre>
<p>Este archivo se debe guardar como «authors.txt» para que mi script lo localice, aunque no sería muy difícil cambiar mi script para que se le pase la ruta como pará.</p>
<h3>Mi script «svn2git.sh»</h3>
<p>Este script se descarga el repositorio indicado (usando git-svn) y convierte y/o borra todos los datos relativos a subversion, como las ramas, los tags, &#8230;</p>
<pre class="brush:bash">#!/bin/sh
# Converts a subversion repository to a Git one.
# git-svn must be installed.

if [ $# -lt 2 ]; then
   echo "Usage: $0 SVN-REPOSITORY LOCAL-PATH"
   exit 1
fi

git svn clone $1 --stdlayout --authors-file=authors.txt --no-metadata $2

cd $2 &gt; /dev/null

for t in `git branch -r | grep 'tags/' | sed s_tags/__`; do
    git tag $t tags/$t^
    git branch -d -r tags/$t
done

git branch -d -r trunk
git config --remove-section svn-remote.svn

rm -fr .git/svn .git/{logs/,}refs/remotes/tags/

cd - &gt; /dev/null

exit 0</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.4bits.es/convertir-repositorio-de-subversion-a-uno-de-git/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Backup utilizando alias</title>
		<link>http://blog.4bits.es/backup-utilizando-alias/</link>
		<comments>http://blog.4bits.es/backup-utilizando-alias/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 10:06:56 +0000</pubDate>
		<dc:creator>Fran</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://blog.4bits.es/?p=244</guid>
		<description><![CDATA[El título no es muy claro, lo sé, pero no podía resumir lo que voy a explicar en algo tan corto. Básicamente, a este script se le pasa una lista de directorios junto a un alias (o seudónimo) bajo el que se guardarán en el archivo que contenga el backup. Esto sirve: Para que en [...]]]></description>
			<content:encoded><![CDATA[<p>El título no es muy claro, lo sé, pero no podía resumir lo que voy a explicar en algo tan corto.</p>
<p>Básicamente, a este script se le pasa una lista de directorios junto a un alias (o seudónimo) bajo el que se guardarán en el archivo que contenga el backup. Esto sirve:</p>
<ol>
<li>Para que en el archivo del backup no se guarden las rutas absolutas de los directorios guardados.</li>
<li>Para no tener que realizar una copia local (duplicando el tamaño ocupado durante la realización del backup) de los archivos contenidos en los directorios a copiar en un directorio temporal.</li>
<li>Para poder guardar los directorios con el nombre que se quiera dentro del archivo del backup.</li>
</ol>
<h3>Script</h3>
<p>Este script está preparado para que <a href="http://blog.4bits.es/guia-del-cron/">lo ejecute <code>cron</code></a> con permisos de <code>root</code> y así poder copiar partes del sistema a las que otro usuario no podría acceder.</p>
<p>Si queréis que funcione con un usuario normal, sólo hace falta que eliminéis el <code>if</code> que está detrás del comentario <code># Check if the script is being run as root</code>.</p>
<p>Los directorios a copiar se guardan en la variable <code>DIRS</code> separados por un espacio y con el formato <code>alias:/ruta/al/directorio</code>.</p>
<pre class="brush:bash">#!/bin/bash
# This script makes backups of a list of directories.
# It must be executed by root.

# Backup data
DIRS="images:/home/user/images/ code:/home/user/projects/ docs:/home/user/docs"
TMP_DIR=`mktemp -d`
BACK_FILE="/mnt/backup/`hostname --fqdn`_`date "+%Y-%m-%d"`.tar.gz"

TAR=$(which tar)

# Check if the script is being run as root
if [ "$UID" -ne "0" ]; then
    echo "This script must be run as root!"
    exit -1
fi

# Logging backup
echo "[`date "+%Y-%m-%d"`] Starting backup"

# Create symbolic links
for dir in $DIRS
do
    SYM_DIR=${dir%:*}
    TARGET_DIR=${dir#*:}
    ln -s $TARGET_DIR $TMP_DIR/$SYM_DIR
done

# Create backup
cd $TMP_DIR > /dev/null
$TAR -chzf $BACK_FILE *

# Backup failed
if [ $? != 0 ]; then
    cd - > /dev/null
    rm -fR $TMP_DIR > /dev/null
    echo "[`date "+%Y-%m-%d"`] Backup failed."
    exit -1
fi

# Backup created
cd - > /dev/null
rm -fR $TMP_DIR > /dev/null
echo "[`date "+%Y-%m-%d"`] Backup done!"

exit 0</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.4bits.es/backup-utilizando-alias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reto de scripts en Twitter</title>
		<link>http://blog.4bits.es/reto-de-scripts-en-twitter/</link>
		<comments>http://blog.4bits.es/reto-de-scripts-en-twitter/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 12:51:20 +0000</pubDate>
		<dc:creator>Fran</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://blog.4bits.es/?p=55</guid>
		<description><![CDATA[La verdad es que nunca le he visto sentido a Twitter, es algo similar a los mensajes SMS, pudiendo mandar un e-mail o escribir en un blog, ¿por qué escribir en un sitio que te limita a 140 caracteres el mensaje? Ni idea. La cosa es que esta semana surgió un post en el planeta [...]]]></description>
			<content:encoded><![CDATA[<p>La verdad es que nunca le he visto sentido a Twitter, es algo similar a los mensajes SMS, pudiendo mandar un e-mail o escribir en un blog, ¿por qué escribir en un sitio que te limita a 140 caracteres el mensaje? Ni idea.</p>
<p>La cosa es que esta semana surgió un post en el planeta de GNOME que promovía un <a href="http://nat.org/blog/?p=824">reto para hacer scripts de Linux que cupiesen en mensajes de Twitter</a>, a los pocos días ya <a href="http://nat.org/blog/?p=825">había diez scripts</a> que hacían diversas cosas.</p>
<p>Yo me quedo con el decodificador de código MORSE, toda una flipada. Al final este post tampoco es que diga mucho, pero me gustó la idea y el uso que le dieron a los 140 caracteres de Twitter, al que por primera vez le vi un uso práctico.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.4bits.es/reto-de-scripts-en-twitter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
