hashedassets

Sagteware kiekie:
hashedassets
Sagteware besonderhede:
Weergawe: 0.3.1.1
Upload datum: 12 May 15
Ontwikkelaar: Filip Noetzel
Lisensie: Gratis
Populariteit: 6

Rating: 1.0/5 (Total Votes: 1)

hashedassets is 'n opdrag-lyn instrument wat afskrifte lêers lêername gebaseer op die inhoud. & Nbsp; Dit skryf ook 'n kaart van wat herdoop na wat, so kan jy jou lêers te vind.
Hoofdoel van hierdie is dat jy kan voeg 'n verre toekoms Verval kop om jou komponente. Die gebruik van hash gebaseer lêername is 'n baie beter as die gebruik van jou $ VCS hersiening nommer, omdat gebruikers moet net lêers wat nie verander te laai.
Skep 'n bron lêers
Eerstens, skep ons 'n lêer te hashed:
>>> Stelsel ("mkdir insette /")
>>> Stelsel ("mkdir insette / subdir /")
>>> Stelsel ("mkdir kaarte /")
>>> Met oop ("input / foo.txt", "w") as lêer:
... File.write ("cat")
>>> Met oop ("input / subdir / bar.txt", "w") as lêer:
... File.write ("bar")
>>> Stelsel ('raak -t200504072213.12 insette / foo.txt')
Eenvoudige gebruik
>>> Stelsel ("hashedassets kaarte / map.txt insette / *. Txt insette / * / *. Txt uitset /")
mkdir 'uitset'
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Druk oop ("kaarte / map.txt"). Lees ()
subdir / bar.txt: Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
foo.txt: C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt

>>> Stelsel ("ls uitset /")
C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
>>> Stelsel ("ls kaarte /")
map.txt
Meld vlak
As ons vertel die opdrag om stil te wees, beteken dit nie druk wat dit doen:
>>> Stelsel ("hashedassets -q kaarte / map2.txt insette / *. Txt insette / * / *. Txt uitset /")
As ons vertel die opdrag om meer verbose wees, is dit logs meer inligting:
>>> Stelsel ("hashedassets -vvv kaarte / map3.txt insette / *. Txt insette / * / *. Txt uitset /")
Debug vlak ingestel om 10
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
Aanpassing tyd is ook bewaar:
>>> Old_stat = os.stat ("input / foo.txt")
>>> New_stat = os.stat ("output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")
>>> [(Getattr (old_stat, stut) == getattr (new_stat, stut))
... Vir stut in ('st_mtime', 'st_atime', 'st_ino,)]
[True, True, False]
Ons kan dit maklik doen met verskeie formate:
JavaScript
>>> Stelsel ("hashedassets -n my_callback kaarte / map.js insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Druk oop ("kaarte / map.js"). Lees ()
var my_callback = {
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
};
Into
>>> Stelsel ("hashedassets -n my_callback kaarte / map.json insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Druk oop ("kaarte / map.json"). Lees ()
{
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
}
JSONP
>>> Stelsel ("hashedassets -n my_callback kaarte / map.jsonp insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Druk oop ("kaarte / map.jsonp"). Lees ()
my_callback ({
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
});
Sass
Sass is 'n meta taal op die top van CSS.
>>> Stelsel ("hashedassets -n my_callback kaarte / map.scss insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Druk oop ("kaarte / map.scss"). Lees ()
mixin my_callback ($ richtlijn $ pad) {
& Nbsp;if $ pad == "subdir / bar.txt" {# {$ richtlijn}: url ("Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"); }
& Nbsp;else as $ pad == "foo.txt" {# {$ richtlijn}: url ("C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"); }
& Nbsp;else {
& Nbsp;warn "Het vind nie" # {$ pad} "in lys van bates";
& Nbsp; # {$ richtlijn}: url ($ pad);
& Nbsp;}
}
PHP
>>> Stelsel ("hashedassets -n my_callback kaarte / map.php insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Druk oop ("kaarte / map.php"). Lees ()
$ My_callback = array (
& Nbsp; "subdir / bar.txt" => "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
& Nbsp; "foo.txt" => "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
)
Sed
Ons kan ook genereer 'n sed script dat die plaasvervangers vir ons doen:
>>> Stelsel ("hashedassets -n my_callback kaarte / map.sed insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Druk oop ("kaarte / map.sed"). Lees ()
s / subdir / bar txt / Ys23Ag_5IOWqZCw9QGaVDdHwH00 txt / g
s / cat txt / C-7Hteo_D9vJXQ3UfzxbwnXaijM txt / g

Ons moet ook in staat wees om hierdie direk te gebruik met sed
>>> Met oop ("replaceme.html", "w") as lêer:
... File.write (' bar ')
Die script word dan toegepas soos hierdie:
>>> Stelsel ("sed f kaarte / map.sed replaceme.html")
bar
Maar '. " word nie beskou as wildcard, so die volgende nie werk nie
>>> Met oop ("replaceme2.html", "w") as lêer:
... File.write (' bar ')
>>> Stelsel ("sed f kaarte / map.sed replaceme2.html")
bar
Wat die tipe met t
Die tipe van die kaart word aangeraai uit die lêernaam, maar jy kan dit te spesifiseer, asook:
>>> Stelsel ("hashedassets t js cantguessmaptype insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
Vermelding van die lengte van die lêernaam met -l
>>> Stelsel ("hashedassets -l 10 kaarte / shortmap.json insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / C-7Hteo_D9.txt'
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IO.txt'
>>> Stelsel ("rm uitset / C-7Hteo_D9.txt uitset / Ys23Ag_5IO.txt")
Spesifiseer die Digest met d
>>> Stelsel ("hashedassets d md5 kaarte / shortmap.json insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / rL0Y20zC-Fzt72VPzMSk2A.txt'
CP 'input / subdir / bar.txt' 'uitset / N7UdGUp1E-RbVvZSTy1R8g.txt'
>>> Stelsel ("rm uitset / rL0Y20zC-Fzt72VPzMSk2A.txt uitset / N7UdGUp1E-RbVvZSTy1R8g.txt")
Re-gebruik van 'n kaart
Die program lees in die kaarte wat dit geskep het in 'n vorige run om slegs lêers wat nie verander het sedert kopieer. So, die volgende opdragte nie enige lêers kopieer:
>>> Stelsel ("hashedassets kaarte / map.scss insette / *. Txt insette / * / *. Txt uitset /")
>>> Stelsel ("hashedassets kaarte / map.php insette / *. Txt insette / * / *. Txt uitset /")
>>> Stelsel ("hashedassets kaarte / map.js insette / *. Txt insette / * / *. Txt uitset /")
>>> Stelsel ("hashedassets kaarte / map.json insette / *. Txt insette / * / *. Txt uitset /")
>>> Stelsel ("hashedassets kaarte / map.sed insette / *. Txt insette / * / *. Txt uitset /")
>>> Stelsel ("hashedassets kaarte / map.jsonp insette / *. Txt insette / * / *. Txt uitset /")
>>> Stelsel ("hashedassets kaarte / map.txt insette / *. Txt insette / * / *. Txt uitset /")
As ons een van die invoer lêers tussen raak, sal die lêer gelees word, maar nie gekopieer omdat die hashsum is dieselfde:
>>> Stelsel ('raak -t200504072214.12 insette / foo.txt')
>>> Stelsel ("hashedassets kaarte / map.json insette / *. Txt insette / * / *. Txt uitset /")
As ons die inhoud van die lêer verander is, sal dit 'n nuwe naam kry:
>>> Met oop ("input / foo.txt", "w") as lêer:
... File.write ("foofoo")
>>> Stelsel ("hashedassets kaarte / map.json insette / *. Txt insette / * / *. Txt uitset /")
rm 'uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
CP 'input / foo.txt' 'uitset / QIDaFD7KLKQh0l5O6b8exdew3b0.txt'
As jy dan 'n lys van die lêers in die gids, daarop dat die ou lêer '' uitset / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '' is weg:
>>> Stelsel ("ls uitset /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
As ons een van die geskape lêers verwyder, word dit herskep:
>>> Stelsel ("rm uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")
>>> Stelsel ("hashedassets kaarte / map.json insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / subdir / bar.txt' 'uitset / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Stelsel ("ls uitset /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
As 'n lêer wat oor om verwyder te word, omdat die oorspronklike inhoud verander, is dit nie herskep:
>>> Stelsel ("rm uitset / QIDaFD7KLKQh0l5O6b8exdew3b0.txt")
>>> Met oop ("input / foo.txt", "w") as lêer:
... File.write ("foofoofoo")
>>> Stelsel ("hashedassets kaarte / map.json insette / *. Txt insette / * / *. Txt uitset /")
CP 'input / foo.txt' 'uitset / NdbmnXyjdY2paFzlDw9aJzCKH9w.txt'
Fout hantering
Maar as ons hardloop dit met geen argumente, is dit nie:
>>> Stelsel ("hashedassets", eksterne = True)
Gebruik: hashedassets [opsies] MAPFILE bron [...] DEST byvoeg

hashedassets: fout: Jy moet spesifiseer ten minste MAPFILE bron en DEST byvoeg

Vereistes :

  • Python

Soortgelyke sagteware

Baobab
Baobab

17 Aug 18

Kontrolcu
Kontrolcu

11 May 15

Rowscope
Rowscope

11 May 15

Kommentaar te hashedassets

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!