hashedassets

Software kuvakaappaus:
hashedassets
Ohjelmiston tiedot:
Versio: 0.3.1.1
Lähetyksen päivämäärä: 12 May 15
Kehittäjä: Filip Noetzel
Lupa: Vapaa
Suosio: 50

Rating: 2.5/5 (Total Votes: 2)

hashedassets on komentorivi työkalu, joka kopioi tiedostoja tiedostonimien niiden sisällön perusteella. & Nbsp; Se myös kirjoittaa kartta mitä nimekseen mitä, joten voit etsiä tiedostoja.
Päätavoitteena on, että voit lisätä pitkälle tulevaisuuteen Erääntyy otsikon teidän komponentteja. Käyttämällä hash perustuu tiedostonimissä on paljon parempi kuin käytät $ VCS versionumeroa, koska käyttäjät tarvitsee vain ladata tiedostoja, ei muuttunut.
Luominen jotkut lähdetiedostot
Ensin luomme tiedoston hajauttamat:
>>> Järjestelmä ("mkdir input /")
>>> Järjestelmä ("mkdir input / subdir /")
>>> Järjestelmä ("mkdir maps /")
>>> Avoimet ("input / foo.txt", "w") tiedostona:
... File.write ("foo")
>>> Avoimet ("input / subdir / bar.txt", "w") tiedostona:
... File.write ("bar")
>>> Järjestelmä ("touch -t200504072213.12 input / foo.txt ')
Helppo käyttö
>>> Järjestelmä ("hashedassets karttojen / map.txt input / *. Txt input / * / *. Txt output /")
mkdir "tuotos"
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Tulostaa auki ("maps / map.txt"). Luettu ()
alihakemisto / bar.txt: Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
foo.txt: C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt

>>> Järjestelmä ("ls output /")
C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
>>> Järjestelmä ("ls maps /")
map.txt
Lokitasoksi
Jos kerromme komennon olla hiljaa, se ei tulosta mitä se tekee:
>>> Järjestelmä ("hashedassets q karttojen / map2.txt input / *. Txt input / * / *. Txt output /")
Jos kerromme komennon olla verbose, se kirjaa Lisätietoja:
>>> Järjestelmä ("hashedassets -vvv karttojen / map3.txt input / *. Txt input / * / *. Txt output /")
Debug taso asetettu 10
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
Muuttaminen aika on myös säilynyt:
>>> Old_stat = os.stat ("input / foo.txt")
>>> New_stat = os.stat ("lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")
>>> [(Getattr (old_stat, prop) == getattr (new_stat, prop))
... For prop in ('st_mtime', 'st_atime', 'st_ino',)]
[Totta, True, False]
Voimme helposti tehdä tämän kanssa useita formaatteja:
JavaScript
>>> Järjestelmä ("hashedassets -n my_callback karttojen / map.js input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.js"). Luettu ()
var my_callback = {
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
};
JSON
>>> Järjestelmä ("hashedassets -n my_callback karttojen / map.json input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Tulostaa auki ("maps / map.json"). Luettu ()
{
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
}
JSONP
>>> Järjestelmä ("hashedassets -n my_callback karttojen / map.jsonp input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Tulostaa auki ("maps / map.jsonp"). Luettu ()
my_callback ({
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
});
Nenäkkyys
Sass on meta kieli päälle CSS.
>>> Järjestelmä ("hashedassets -n my_callback karttojen / map.scss input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Tulostaa auki ("maps / map.scss"). Luettu ()
mixin my_callback ($ direktiiviä, $ polku) {
& Nbsp;if $ polku == "subdir / bar.txt" {# {$ direktiivin}: url ("Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"); }
& Nbsp;else jos $ path == "foo.txt" {# {$ direktiivin}: url ("C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"); }
& Nbsp;else {
& Nbsp;warn "löytänyt" # {$ polku} "in omaisuuserien luetteloon";
& Nbsp; # {$ direktiivin}: url ($ path);
& Nbsp;}
}
PHP
>>> Järjestelmä ("hashedassets -n my_callback karttojen / map.php input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Tulostaa auki ("maps / map.php"). Luettu ()
$ My_callback = array (
& Nbsp; "subdir / bar.txt" => "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt",
& Nbsp; "foo.txt" => "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
)
Sed
Voimme myös tuottaa sed skripti, joka tekee korvaavia meille:
>>> Järjestelmä ("hashedassets -n my_callback karttojen / map.sed input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print open ("maps / map.sed"). Luettu ()
s / alihakemisto / baari .txt / Ys23Ag_5IOWqZCw9QGaVDdHwH00 .txt / g
s / foo .txt / C-7Hteo_D9vJXQ3UfzxbwnXaijM .txt / g

Meidän pitäisi myös pystyä käyttämään tätä suoraan sed
>>> Avoimet ("replaceme.html", "w") tiedostona:
... File.write (" baari ')
Käsikirjoitus on sitten käytetty näin:
>>> Järjestelmä ("sed-f karttojen / map.sed replaceme.html")
baari
Kuitenkin, "." ei käsitellä jokerina, joten seuraava ei toimi
>>> Avoimet ("replaceme2.html", "w") tiedostona:
... File.write ("
baari ')
>>> Järjestelmä ("sed-f karttojen / map.sed replaceme2.html")
baari
Eritellään kanssa -t
Tyyppi kartan arvasi tiedoston, mutta voit määrittää sen myös:
>>> Järjestelmä ("hashedassets -t js cantguessmaptype input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' lähtö / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
Määrittäminen pituus tiedostonimi -l
>>> Järjestelmä ("hashedassets -l 10 kartat / shortmap.json input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' lähtö / C-7Hteo_D9.txt"
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IO.txt '
>>> Järjestelmä ("rm output / C-7Hteo_D9.txt output / Ys23Ag_5IO.txt")
Määrittäminen sulatella kanssa -d
>>> Järjestelmä ("hashedassets -d md5 karttojen / shortmap.json input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' output / rL0Y20zC-Fzt72VPzMSk2A.txt"
cp "input / subdir / bar.txt '' output / N7UdGUp1E-RbVvZSTy1R8g.txt"
>>> Järjestelmä ("RM lähtö / rL0Y20zC-Fzt72VPzMSk2A.txt lähtö / N7UdGUp1E-RbVvZSTy1R8g.txt")
Uudelleenkäyttö kartan
Ohjelma lukee kartoista luotu ennen aikavälillä vain kopioida tiedostoja, jotka eivät ole muuttuneet. Joten, seuraavat komennot eivät kopioi tiedostoja:
>>> Järjestelmä ("hashedassets karttojen / map.scss input / *. Txt input / * / *. Txt output /")
>>> Järjestelmä ("hashedassets karttojen / map.php input / *. Txt input / * / *. Txt output /")
>>> Järjestelmä ("hashedassets karttojen / map.js input / *. Txt input / * / *. Txt output /")
>>> Järjestelmä ("hashedassets karttojen / map.json input / *. Txt input / * / *. Txt output /")
>>> Järjestelmä ("hashedassets karttojen / map.sed input / *. Txt input / * / *. Txt output /")
>>> Järjestelmä ("hashedassets karttojen / map.jsonp input / *. Txt input / * / *. Txt output /")
>>> Järjestelmä ("hashedassets karttojen / map.txt input / *. Txt input / * / *. Txt output /")
Jos me touch yksi panos tiedostojen välillä, tiedosto luetaan, mutta ei kopioitu, koska hashsum on sama:
>>> Järjestelmä ("touch -t200504072214.12 input / foo.txt ')
>>> Järjestelmä ("hashedassets karttojen / map.json input / *. Txt input / * / *. Txt output /")
Jos muutamme tiedoston sisältöä, se saa uuden nimen:
>>> Avoimet ("input / foo.txt", "w") tiedostona:
... File.write ("foofoo")
>>> Järjestelmä ("hashedassets karttojen / map.json input / *. Txt input / * / *. Txt output /")
rm "output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp "input / foo.txt '' tuotos / QIDaFD7KLKQh0l5O6b8exdew3b0.txt '
Jos sitten luetella tiedostot hakemistoon, huomaa, että vanha tiedosto "" output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '' on mennyt:
>>> Järjestelmä ("ls output /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Jos poistamme yhden luodut tiedostot, se luodaan uudestaan:
>>> Järjestelmä ("rm output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")
>>> Järjestelmä ("hashedassets karttojen / map.json input / *. Txt input / * / *. Txt output /")
cp "input / subdir / bar.txt '' tuotos / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Järjestelmä ("ls output /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Jos tiedosto, joka on aikeissa poistaa, koska alkuperäinen sisältö muuttui, se ei luoda:
>>> Järjestelmä ("rm output / QIDaFD7KLKQh0l5O6b8exdew3b0.txt")
>>> Avoimet ("input / foo.txt", "w") tiedostona:
... File.write ("foofoofoo")
>>> Järjestelmä ("hashedassets karttojen / map.json input / *. Txt input / * / *. Txt output /")
cp "input / foo.txt '' tuotos / NdbmnXyjdY2paFzlDw9aJzCKH9w.txt '
Virhe käsittely
Kuitenkin, jos otamme tämän ilman argumentteja, se epäonnistuu:
>>> Järjestelmä ("hashedassets", ulkoinen = True)
Käyttö: hashedassets [optiot] MAPFILE SOURCE [...] DEST

hashedassets: error: Sinun täytyy määrittää vähintään MAPFILE LÄHDE ja KOHDE

vaatimukset

  • Python

Vastaavia ohjelmistoja

XRobocopy
XRobocopy

14 Apr 15

Gloobus Preview
Gloobus Preview

17 Feb 15

Beyond Compare
Beyond Compare

17 Aug 18

Kommentit hashedassets

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!