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: 6

Rating: 1.0/5 (Total Votes: 1)

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

Catfish
Catfish

17 Aug 18

bfsync
bfsync

20 Feb 15

DocFetcher
DocFetcher

17 Feb 15

Kommentit hashedassets

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