hashedassets

Software screenshot:
hashedassets
Podrobnosti Software:
Verze: 0.3.1.1
Datum uploadu: 12 May 15
Vývojka: Filip Noetzel
Licence: Volný
Popularita: 6

Rating: 1.0/5 (Total Votes: 1)

hashedassets je nástroj příkazového řádku, který zkopíruje soubory na názvy souborů na základě jejich obsahu. & Nbsp; Je také píše mapu, co byl přejmenován na to, co, takže si můžete najít své soubory.
Hlavním důvodem je to, že můžete přidat vzdálené budoucnosti záhlaví Expires vašich komponent. Použití hash založené názvy souborů je mnohem lepší než vaše číslo revize $ VCS, protože uživatelé potřebují stahovat soubory, které se nemění jen.
Vytváření některé zdrojové soubory
Za prvé, jsme se vytvořit soubor má být hashed:
>>> Systém ("mkdir input /")
>>> Systém ("mkdir input / subdir /")
>>> Systém ("mkdir mapy /")
>>> S open ("vstup / foo.txt", "w"), jako soubor:
... File.write ("foo")
>>> S open ("vstup / subdir / bar.txt", "w"), jako soubor:
... File.write ("bar")
>>> Systém ("dotknout -t200504072213.12 vstup / foo.txt")
Jednoduché využití
>>> Systému ("hashedassets mapy / map.txt vstup / *. Txt input / * / *. Txt výstup /")
mkdir "výstup"
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> Print open ("mapy / map.txt"). Read ()
subdir / bar.txt: Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
foo.txt: C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt

>>> Systém ("ls výstup /")
C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
>>> Systém ("ls mapy /")
map.txt
Úroveň protokolování
Pokud řekneme příkaz, aby byla zticha, to netiskne, co to dělá:
>>> Systém ("hashedassets -q mapy / map2.txt vstup / *. Txt input / * / txt výstup *. /")
Pokud řekneme příkaz, aby se více verbose, zaznamená více informací:
>>> Systém ("hashedassets -vvv mapy / map3.txt vstup / *. Txt input / * / txt výstup *. /")
Úroveň Debug nastavena na 10
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
Čas modifikace je také zachována:
>>> Old_stat = os.stat ("input / foo.txt")
>>> New_stat = os.stat ("výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")
>>> [(Getattr (old_stat, prop) == getattr (new_stat, prop))
... Na rekvizitu ("st_mtime ',' ',' st_atime st_ino",)]
[Pravda, pravda, False]
Můžeme snadno udělat s několika formátech:
JavaScript
>>> Systém ("hashedassets -n my_callback mapy / map.js vstup / *. Txt vstup / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> Print open ("mapy / map.js"). Read ()
var my_callback = {
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
};
JSON
>>> Systém ("hashedassets -n my_callback mapy / map.json vstup / *. Txt input / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> Print open ("mapy / map.json"). Read ()
{
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
}
JSONP
>>> Systém ("hashedassets -n my_callback mapy / map.jsonp vstup / *. Txt input / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> Print open ("mapy / map.jsonp"). Read ()
my_callback ({
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
});
Sass
Sass je meta jazyk v horní části CSS.
>>> Systém ("hashedassets -n my_callback mapy / map.scss vstup / *. Txt vstup / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> Print open ("mapy / map.scss"). Read ()
mixin my_callback ($ směrnice, $ path) {
& Nbsp;if $ path == "subdir / bar.txt" {# {$ směrnice}: url ("Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"); }
& Nbsp;else pokud $ path == "foo.txt" {# {$ směrnice}: url ("C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"); }
& Nbsp;else {
& Nbsp;warn "Nenašli jste," # {$ path} "v seznamu aktiv";
& Nbsp; # {$ směrnice}: url ($ path);
& Nbsp;}
}
PHP
>>> Systém ("hashedassets -n my_callback mapy / map.php vstup / *. Txt input / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> Print open ("mapy / map.php"). Read ()
$ My_callback = array (
& Nbsp; "subdir / bar.txt" => "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt",
& Nbsp; "foo.txt" => "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
)
Sed
Můžeme také vytvořit sed skript, který dělá náhrady pro nás:
>>> Systému ("hashedassets -n my_callback mapy / map.sed vstup / *. Txt input / * / txt výstup *. /")
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> Print open ("mapy / map.sed"). Read ()
s / subdir / bar txt / Ys23Ag_5IOWqZCw9QGaVDdHwH00 .txt / g
s / foo txt / C-7Hteo_D9vJXQ3UfzxbwnXaijM .txt / g

Měli bychom být schopni použít přímo s sed
>>> S otevřeným ("replaceme.html", "w"), jako soubor:
... File.write (' bar ")
Skript se pak aplikuje takto:
>>> Systém ("sed -f mapy / map.sed replaceme.html")
bar
Nicméně, '.' není zacházeno jako zástupný znak, takže doplňuje nefunguje
>>> S otevřeným ("replaceme2.html", "w"), jako soubor:
... File.write ('
bar ")
>>> Systém ("sed -f mapy / map.sed replaceme2.html")
bar
Určení typu s -t
Typ mapě je uhodnout z názvu souboru, ale můžete specifikovat také:
>>> Systém ("hashedassets -t js cantguessmaptype vstup / *. Txt vstup / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
Určení délky názvu souboru s -l
>>> Systém ("hashedassets -l 10 Mapy / shortmap.json vstup / *. Txt input / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / C-7Hteo_D9.txt"
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IO.txt"
>>> Systém ("rm výstup / výstup C-7Hteo_D9.txt / Ys23Ag_5IO.txt")
Určení digest s -d
>>> Systému ("hashedassets -d MD5 mapy / shortmap.json vstup / *. Txt vstup / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / rL0Y20zC-Fzt72VPzMSk2A.txt"
TZ "input / subdir / bar.txt" "výstup / N7UdGUp1E-RbVvZSTy1R8g.txt"
>>> Systém ("rm výstup / rL0Y20zC-Fzt72VPzMSk2A.txt výstup / N7UdGUp1E-RbVvZSTy1R8g.txt")
Opětovné použití mapy
Program čte v mapách vytvořených v předchozím běhu pouze kopírovat soubory, které se nezměnily od roku. Takže, následující příkazy nejsou zkopírujte všechny soubory:
>>> Systému ("hashedassets mapy / map.scss vstup / *. Txt vstup / * / *. Txt výstup /")
>>> Systému ("hashedassets mapy / map.php vstup / *. Txt input / * / *. Txt výstup /")
>>> Systému ("hashedassets mapy / map.js vstup / *. Txt vstup / * / *. Txt výstup /")
>>> Systému ("hashedassets mapy / map.json vstup / *. Txt input / * / *. Txt výstup /")
>>> Systému ("hashedassets mapy / map.sed vstup / *. Txt input / * / *. Txt výstup /")
>>> Systému ("hashedassets mapy / map.jsonp vstup / *. Txt input / * / *. Txt výstup /")
>>> Systému ("hashedassets mapy / map.txt vstup / *. Txt input / * / *. Txt výstup /")
Pokud budeme dotýkat jeden ze vstupních souborů mezi nimi, bude soubor číst, ale ne zkopírovat, protože hashsum je stejný:
>>> Systém ("dotknout -t200504072214.12 vstup / foo.txt")
>>> Systému ("hashedassets mapy / map.json vstup / *. Txt input / * / *. Txt výstup /")
Pokud budeme měnit obsah v souboru, dostane nové jméno:
>>> S open ("vstup / foo.txt", "w"), jako soubor:
... File.write ("foofoo")
>>> Systému ("hashedassets mapy / map.json vstup / *. Txt input / * / *. Txt výstup /")
RM 'výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt "
TZ "input / foo.txt" "výstup / QIDaFD7KLKQh0l5O6b8exdew3b0.txt"
Pokud potom seznam souborů v adresáři, na vědomí, že starý soubor '' výstup / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '' je pryč:
>>> Systém ("ls výstup /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Budeme-li odstranit jednu z vytvořených souborů, dostane znovu:
>>> Systém ("rm výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")
>>> Systému ("hashedassets mapy / map.json vstup / *. Txt input / * / *. Txt výstup /")
TZ "input / subdir / bar.txt" "výstup / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> Systém ("ls výstup /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Pokud je soubor, který má být odstraněn, protože původní obsah změnil, není znovu:
>>> Systém ("rm výstup / QIDaFD7KLKQh0l5O6b8exdew3b0.txt")
>>> S open ("vstup / foo.txt", "w"), jako soubor:
... File.write ("foofoofoo")
>>> Systému ("hashedassets mapy / map.json vstup / *. Txt input / * / *. Txt výstup /")
TZ "input / foo.txt" "výstup / NdbmnXyjdY2paFzlDw9aJzCKH9w.txt"
Zpracování chyb
Nicméně, pokud jsme se spustit tento bez argumentů, to selže:
>>> Systém ("hashedassets", externí = True)
Použití: hashedassets [volby] mapfile ZDROJ [...] DEST

hashedassets: Chyba: Musíte zadat alespoň mapfile ZDROJ a CÍL

Požadavky na :

  • Python

Podobný software

TMSU
TMSU

19 Feb 15

Nautilus
Nautilus

16 Aug 18

ALmoviesRenamer
ALmoviesRenamer

14 Apr 15

kio_p7zip
kio_p7zip

2 Jun 15

Komentáře k hashedassets

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!