hashedassets

Screenshot der Software:
hashedassets
Softwarebeschreibung:
Version: 0.3.1.1
Upload-Datum: 12 May 15
Entwickler: Filip Noetzel
Lizenz: Frei
Popularität: 6

Rating: 1.0/5 (Total Votes: 1)

hashedassets ist ein Kommandozeilenprogramm, das kopiert Dateien auf die Dateinamen auf der Grundlage ihrer Inhalte. & Nbsp; Es schreibt auch eine Karte von dem, was war, was umbenannt, so dass Sie Ihre Dateien zu finden.
Hauptziel ist, dass Sie hinzufügen können, eine ferne Zukunft Expires-Header, um Ihre Komponenten. Verwenden von Hash-basierte Dateinamen ist viel besser, als mit Ihrem $ VCS-Versionsnummer, da die Benutzer müssen nur Dateien, die sich nicht ändern wollte herunterladen.
Erstellen einige Quelldateien
Erstens, eine Datei zu erstellen wir gehasht werden:
>>> System ("Mkdir Eingabe /")
>>> System ("mkdir Ein- / subdir /")
>>> System ("mkdir Karten /")
>>> Mit open ("Input / foo.txt", "w") als Datei:
... File.write ("foo")
>>> Mit open ("Input / subdir / bar.txt", "w") als Datei:
... File.write ("bar")
>>> System ('berühren -t200504072213.12 Ein- / foo.txt')
Einfache Bedienung
>>> System ("hashedassets Karten / map.txt Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
mkdir "Output"
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.txt"). Read ()
subdir / bar.txt: Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
foo.txt: C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt

>>> System ("ls Ausgangs /")
C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
>>> System ("ls Karten /")
map.txt
Protokollierungsstufe
Wenn wir sagen, den Befehl, ruhig zu sein, ist es nicht zu drucken, was sie tut:
>>> System ("hashedassets -q Karten / map2.txt Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
Wenn wir sagen, der Befehl zu sein, ausführlichere, protokolliert er weitere Informationen:
>>> System ("hashedassets -vvv Karten / map3.txt Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
Debug-Level auf 10 gesetzt
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
Änderungszeit ist auch haltbar gemacht:
>>> Old_stat = os.stat ("Input / foo.txt")
>>> New_stat = os.stat ("Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")
>>> [(Getattr (old_stat, prop) == getattr (new_stat, prop))
... Für prop in ('st_mtime', 'st_atime', 'st_ino')]
[True True, False]
Wir können dies ganz einfach mit verschiedenen Formaten:
JavaScript
>>> System ("hashedassets -n my_callback Karten / map.js Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.js"). Read ()
var my_callback = {
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
};
JSON
>>> System ("hashedassets -n my_callback Karten / map.json Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.json"). Read ()
{
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
}
JSONP
>>> System ("hashedassets -n my_callback Karten / map.jsonp Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.jsonp"). Read ()
my_callback ({
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
});
Frechheit
Sass ist eine Metasprache oben auf CSS.
>>> System ("hashedassets -n my_callback Karten / map.scss Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.scss"). Read ()
mixin my_callback ($ Richtlinie, $ path) {
& Nbsp;if $ path == "subdir / bar.txt" {#} {$ Richtlinie: url ("Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"); }
& Nbsp;else Wenn $ path == "foo.txt" {#} {$ Richtlinie: url ("C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"); }
& Nbsp;else {
& Nbsp;warn "Haben Sie nicht gefunden" # {$ path} "in die Liste der Vermögenswerte";
& Nbsp; # {$} Richtlinie: url ($ path);
& Nbsp;}
}
PHP
>>> System ("hashedassets -n my_callback Karten / map.php Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.php"). Read ()
$ My_callback = array (
& Nbsp; "subdir / bar.txt" => "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt",
& Nbsp; "foo.txt" => "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
)
Sed
Wir können auch erzeugen eine sed-Skript, das die Ersatzstoffe für uns tut:
>>> System ("hashedassets -n my_callback Karten / map.sed Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.sed"). Read ()
s / subdir / Bar .txt / Ys23Ag_5IOWqZCw9QGaVDdHwH00 .txt / g
s / foo .txt / C-7Hteo_D9vJXQ3UfzxbwnXaijM .txt / g

Wir sollten auch in der Lage, dies direkt mit sed verwenden,
>>> Mit open ("replaceme.html", "w") als Datei:
... File.write (' bar ')
Das Skript wird dann wie folgt angewandt:
>>> System ("sed -f Karten / map.sed replaceme.html")
bar
Doch '.' nicht als Platzhalter behandelt, so dass die folgenden nicht funktioniert
>>> Mit open ("replaceme2.html", "w") als Datei:
... File.write (' bar ')
>>> System ("sed -f Karten / map.sed replaceme2.html")
bar
Angabe des Typs mit -t
Der Typ der Karte aus dem Dateinamen erraten, aber man kann es auch geben:
>>> System ("hashedassets -t js cantguessmaptype Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
Die Angabe der Länge der Dateinamen mit -l
>>> System ("hashedassets -l 10 Karten / shortmap.json Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / C-7Hteo_D9.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IO.txt '
>>> System ("rm Ausgang / C-Ausgang 7Hteo_D9.txt / Ys23Ag_5IO.txt")
Die Angabe der Verdauung mit -d
>>> System ("hashedassets -d md5 Karten / shortmap.json Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / rL0Y20zC-Fzt72VPzMSk2A.txt '
cp "Ein- / subdir / bar.txt '' Ausgang / N7UdGUp1E-RbVvZSTy1R8g.txt '
>>> System ("rm Ausgang / rL0Y20zC-Fzt72VPzMSk2A.txt Ausgang / N7UdGUp1E-RbVvZSTy1R8g.txt")
Wiederverwendung eines Karten
Das Programm liest in Karten es in einem vorherigen Durchlauf geschaffen, um nur Dateien, die seit einer veränderten Position zu kopieren. Also, die folgenden Befehle keine Dateien zu kopieren:
>>> System ("hashedassets Karten / map.scss Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
>>> System ("hashedassets Karten / map.php Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
>>> System ("hashedassets Karten / map.js Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
>>> System ("hashedassets Karten / map.json Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
>>> System ("hashedassets Karten / map.sed Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
>>> System ("hashedassets Karten / map.jsonp Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
>>> System ("hashedassets Karten / map.txt Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
Wenn wir einer der Eingabedateien in zwischen zu berühren, wird die Datei lesen, aber nicht kopiert werden, weil die Hashsummen ist das gleiche:
>>> System ('berühren -t200504072214.12 Ein- / foo.txt')
>>> System ("hashedassets Karten / map.json Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
Wenn wir den Inhalt der Datei ändern, wird es einen neuen Namen bekommen:
>>> Mit open ("Input / foo.txt", "w") als Datei:
... File.write ("foofoo")
>>> System ("hashedassets Karten / map.json Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
rm "Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '
cp "Ein- / foo.txt '' Ausgang / QIDaFD7KLKQh0l5O6b8exdew3b0.txt '
Wenn Sie dann eine Liste der Dateien in dem Verzeichnis, beachten Sie, dass die alte Datei '' Ausgang / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '' gegangen ist:
>>> System ("ls Ausgangs /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Wenn wir eine der erstellten Dateien zu entfernen, wird es neu erstellt:
>>> System ("rm Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")
>>> System ("hashedassets Karten / map.json Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / subdir / bar.txt '' Ausgang / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> System ("ls Ausgangs /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Wenn eine Datei, die über die entfernt werden soll, weil der ursprüngliche Inhalt verändert wird, ist es nicht neu:
>>> System ("rm Ausgang / QIDaFD7KLKQh0l5O6b8exdew3b0.txt")
>>> Mit open ("Input / foo.txt", "w") als Datei:
... File.write ("foofoofoo")
>>> System ("hashedassets Karten / map.json Ein- / *. Txt Ein- / * / *. Txt-Ausgang /")
cp "Ein- / foo.txt '' Ausgang / NdbmnXyjdY2paFzlDw9aJzCKH9w.txt '
Fehlerbehandlung
Allerdings, wenn wir laufen diese ohne Argumente, es nicht:
>>> System ("hashedassets", externe = True)
Verbrauch: hashedassets [Optionen] MAPFILE SOURCE [...] DEST

hashedassets: Fehler: Sie müssen angeben, mindestens MAPFILE SOURCE und DEST

Anforderungen :

  • Python

Ähnliche Software

Naja
Naja

3 Jun 15

SmartSynchronize
SmartSynchronize

17 Feb 15

poweriso
poweriso

12 May 15

BSCommander
BSCommander

3 Jun 15

Kommentare zu hashedassets

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!