hashedassets

Software screenshot:
hashedassets
Software detaljer:
Version: 0.3.1.1
Upload dato: 12 May 15
Udvikler: Filip Noetzel
Licens: Gratis
Popularitet: 6

Rating: 1.0/5 (Total Votes: 1)

hashedassets er en kommando-linje værktøj, som kopierer filer til filnavne baseret på deres indhold. & Nbsp; Det skriver også et kort over, hvad der blev omdøbt til hvad, så du kan finde dine filer.
Hovedformålet med dette er, at du kan tilføje en fjern fremtid Udløber header til dine komponenter. Brug af hash baserede filnavne er meget bedre end at bruge din $ VCS revision nummer, fordi brugerne kun behøver at downloade filer, der ikke ændres.
Oprettelse nogle kildefiler
Først skaber vi en fil, der skal hashet:
>>> Systemet ("mkdir input /")
>>>-System ("mkdir input / undermappe /")
>>>-System ("mkdir maps /")
>>> Med åben ("input / foo.txt", "w") som fil:
... File.write ("foo")
>>> Med åben ("input / undermappe / bar.txt", "w") som fil:
... File.write ("bar")
>>> Systemet ('røre -t200504072213.12 input / foo.txt')
Enkel forbrug
>>> Systemet ("hashedassets maps / map.txt input / *. Txt input / * / *. Txt output /")
mkdir 'output'
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Udskrive åben ("maps / map.txt"). Read ()
undermappe / bar.txt: Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
foo.txt: C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt

>>> Systemet ("ls output /")
C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
>>>-System ("ls maps /")
map.txt
Logning niveau
Hvis vi fortæller kommandoen til at være stille, betyder det ikke udskrive hvad den gør:
>>>-System ("hashedassets -q maps / map2.txt input / *. Txt input / * / *. Txt output /")
Hvis vi fortæller kommandoen til at være mere verbose, den logger mere information:
>>>-System ("hashedassets -vvv maps / map3.txt input / *. Txt input / * / *. Txt output /")
Debug niveau sat til 10
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
Ændring tid også bevaret:
>>> Old_stat = os.stat ("input / foo.txt")
>>> New_stat = os.stat ("output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")
>>> [(Getattr (old_stat, prop) == getattr (new_stat, prop))
... For prop i ('st_mtime', 'st_atime', 'st_ino',)]
[Sand, Sand, Falsk]
Vi kan nemt gøre dette med flere formater:
JavaScript
>>>-System ("hashedassets -N my_callback maps / map.js input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
Læse () >>> print åben ("kort / map.js").
var my_callback = {
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "undermappe / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
};
JSON
>>>-System ("hashedassets -N my_callback maps / map.json input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Udskrive åben ("maps / map.json"). Read ()
{
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "undermappe / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
}
JSONP
>>>-System ("hashedassets -N my_callback maps / map.jsonp input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Udskrive åben ("maps / map.jsonp"). Read ()
my_callback ({
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "undermappe / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
});
Sass
Sass er en meta sprog på toppen af ​​CSS.
>>>-System ("hashedassets -N my_callback maps / map.scss input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Udskrive åben ("maps / map.scss"). Read ()
mixin my_callback ($ direktivet, $ path) {
& Nbsp;if $ sti == "undermappe / bar.txt" {# {direktivet $}: url ("Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"); }
& Nbsp;else hvis $ path == "foo.txt" {# {direktivet $}: url ("C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"); }
& Nbsp;else {
& Nbsp;warn "fandt ikke" # {$ path} "på listen over aktiver";
& Nbsp; # {direktivet $}: url ($ path);
& Nbsp;}
}
PHP
>>>-System ("hashedassets -N my_callback maps / map.php input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Udskrive åben ("maps / map.php"). Read ()
$ My_callback = array (
& Nbsp; "undermappe / bar.txt" => "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt",
& Nbsp; "foo.txt" => "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
)
Sed
Vi kan også generere en sed script, der gør de erstatninger for os:
>>> Systemet ("hashedassets -n my_callback maps / map.sed input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Print åben ("maps / map.sed"). Read ()
s / subdir / bar .txt / Ys23Ag_5IOWqZCw9QGaVDdHwH00 .txt / g
s / foo .txt / C-7Hteo_D9vJXQ3UfzxbwnXaijM .txt / g

Vi bør også have mulighed for at bruge dette direkte med sed
>>> Med åben ("replaceme.html", "w") som fil:
... File.write (" bar ')
Scriptet er derefter anvendt på denne måde:
>>>-System ("SED -F maps / map.sed replaceme.html")
bar
Men '.' behandles ikke som wildcard, så det følgende ikke virker
>>> Med åben ("replaceme2.html", "w") som fil:
... File.write (" bar ')
>>>-System ("SED -F maps / map.sed replaceme2.html")
bar
Angivelse af typen med -t
Typen af ​​kortet er gættet fra filnavnet, men du kan angive det så godt:
>>> Systemet ("hashedassets -t js cantguessmaptype input / *. Txt input / * / *. Txt udgang /")
cp 'input / foo.txt' 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
Angivelse af længden af ​​filnavnet med -l
>>>-System ("hashedassets -l 10 maps / shortmap.json input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / C-7Hteo_D9.txt'
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IO.txt '
>>>-System ("rm output / C-7Hteo_D9.txt udgang / Ys23Ag_5IO.txt")
Angivelse af digest med -d
>>> Systemet ("hashedassets -d md5 maps / shortmap.json input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / rL0Y20zC-Fzt72VPzMSk2A.txt'
cp "input / undermappe / bar.txt '' output / N7UdGUp1E-RbVvZSTy1R8g.txt '
>>>-System ("rm output / rL0Y20zC-Fzt72VPzMSk2A.txt udgang / N7UdGUp1E-RbVvZSTy1R8g.txt")
Genbrug af et kort
Programmet læser i kortene det oprettet i en tidligere køre til kun kopiere filer, der ikke har ændret sig siden. Så behøver følgende kommandoer ikke kopiere nogen filer:
>>> Systemet ("hashedassets maps / map.scss input / *. Txt input / * / *. Txt output /")
>>> Systemet ("hashedassets maps / map.php input / *. Txt input / * / *. Txt output /")
>>> Systemet ("hashedassets maps / map.js input / *. Txt input / * / *. Txt output /")
>>> Systemet ("hashedassets maps / map.json input / *. Txt input / * / *. Txt output /")
>>> Systemet ("hashedassets maps / map.sed input / *. Txt input / * / *. Txt output /")
>>> Systemet ("hashedassets maps / map.jsonp input / *. Txt input / * / *. Txt output /")
>>> Systemet ("hashedassets maps / map.txt input / *. Txt input / * / *. Txt output /")
Hvis vi rører en af ​​input filer i mellem, vil filen blive læst, men ikke kopieret, fordi hashsum er den samme:
>>> Systemet ('røre -t200504072214.12 input / foo.txt')
>>> Systemet ("hashedassets maps / map.json input / *. Txt input / * / *. Txt output /")
Hvis vi ændrer filens indhold, vil det få et nyt navn:
>>> Med åben ("input / foo.txt", "w") som fil:
... File.write ("foofoo")
>>> Systemet ("hashedassets maps / map.json input / *. Txt input / * / *. Txt output /")
rm 'output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / foo.txt' 'output / QIDaFD7KLKQh0l5O6b8exdew3b0.txt'
Hvis du derefter liste filerne i den mappe, opmærksom på, at den gamle fil '' output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '' er gået:
>>> Systemet ("ls output /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Hvis vi fjerner en af ​​de oprettede filer, bliver det genskabt:
>>>-System ("rm output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")
>>> Systemet ("hashedassets maps / map.json input / *. Txt input / * / *. Txt output /")
cp "input / undermappe / bar.txt '' output / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt '
>>> Systemet ("ls output /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Hvis en fil, der er ved at blive fjernet, fordi det oprindelige indhold ændret, er det ikke genskabes:
>>>-System ("rm output / QIDaFD7KLKQh0l5O6b8exdew3b0.txt")
>>> Med åben ("input / foo.txt", "w") som fil:
... File.write ("foofoofoo")
>>> Systemet ("hashedassets maps / map.json input / *. Txt input / * / *. Txt output /")
cp 'input / foo.txt' 'output / NdbmnXyjdY2paFzlDw9aJzCKH9w.txt'
Fejlhåndtering
Men hvis vi køre dette uden argumenter, det mislykkes:
>>>-System ("hashedassets", ekstern = True)
Usage: hashedassets [options] mapFile SOURCE [...] DEST

hashedassets: error: Du skal angive mindst mapFile KILDE og MÅL

Krav :

  • Python

Lignende software

Fido
Fido

28 Sep 15

Siren Renamer
Siren Renamer

18 Feb 15

Nemo
Nemo

3 Jun 15

Kommentarer til hashedassets

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!