hashedassets

Screenshot Software:
hashedassets
Szczegóły programowe:
Wersja: 0.3.1.1
Filmu: 12 May 15
Wywoływacz: Filip Noetzel
Licencja: Wolny
Popularność: 6

Rating: 1.0/5 (Total Votes: 1)

hashedassets jest narzędziem wiersza polecenia, które kopiuje pliki na nazwy plików na podstawie ich zawartości. & Nbsp; pisze również mapę, co zostało przemianowane na co, więc można znaleźć pliki.
Głównym celem jest to, że można dodać odległej przyszłości nagłówek Expires do swoich komponentów. Korzystanie z cebulą na podstawie nazw plików jest o wiele lepsza niż numer wersji $ VCS, ponieważ użytkownicy muszą jedynie pobrać pliki, które nie zmieniają się.
Tworzenie plików źródłowych
Po pierwsze, możemy utworzyć plik do mieszany:
>>> System ("wejście mkdir /")
>>> System ("wejście mkdir / podkatalog /")
>>> System ("mkdir mapy /")
>>> With open ("wejścia / foo.txt", "w") jako plik:
... File.write ("foo")
>>> With open ("input / podkatalog / bar.txt", "w") jako plik:
... File.write ("bar")
>>> System ("dotykać -t200504072213.12 wejścia / foo.txt")
Prosta obsługa
>>> Systemu ("hashedassets mapy / map.txt wejścia / wejście txt. * / * Wyjście txt / *. /")
mkdir 'wyjście'
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
>>> Print open ("mapy / map.txt"). Read ()
podkatalog / bar.txt: Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
foo.txt: C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt

>>> System ("wyjście ls /")
C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
>>> System ("ls mapy /")
map.txt
Poziom rejestrowania
Jeśli mówimy komendę być cicho, nie drukuje, co robi:
>>> System ("hashedassets -q wejście mapy / map2.txt / wejście txt. * / * / Wyjście txt *. /")
Jeśli mówimy polecenie bardziej gadatliwe, rejestruje więcej informacji:
>>> System ("hashedassets -vvv wejście mapy / map3.txt / wejście txt. * / * / Wyjście txt *. /")
Poziom debug ustawiony na 10
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
Czas modyfikacji jest również zachowana:
>>> Old_stat = os.stat ("input / foo.txt")
>>> New_stat = os.stat ("wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")
>>> [(Getattr (old_stat, prop) == getattr (new_stat, prop))
... Dla podpory w ("st_mtime", "st_atime", "st_ino ',)]
[Prawda, prawda, fałsz]
Możemy łatwo zrobić to z wielu formatach:
JavaScript
>>> System ("hashedassets -n my_callback mapy / map.js wejścia / *. Txt wejście / * / * wyjście txt. /")
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
>>> Print open ("Mapy / map.js"). Read ()
var my_callback = {
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "podkatalog / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
};
JSON
>>> System ("hashedassets -n my_callback mapy / wejście map.json / wejście txt. * / * Wyjście txt / *. /")
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
>>> Print open ("mapy / map.json"). Read ()
{
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "podkatalog / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
}
JSONP
>>> System ("hashedassets -n my_callback mapy / wejście map.jsonp / wejście txt. * / * Wyjście txt / *. /")
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
>>> Print open ("mapy / map.jsonp"). Read ()
my_callback ({
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "podkatalog / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
});
Sass
Sass jest meta językiem na wierzchu CSS.
>>> System ("hashedassets -n my_callback mapy / map.scss wejścia / *. Txt wejście / * / * wyjście txt. /")
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
>>> Print open ("mapy / map.scss"). Read ()
my_callbackmixin (dyrektywa $, $ path) {
& Nbsp;if $ path == "podkatalog / bar.txt" {#} {$ dyrektywy: url ("Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"); }
& Nbsp;else jeśli $ path == "foo.txt" {#} {$ dyrektywy: url ("C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"); }
& Nbsp;else {
& Nbsp;warn "Nie znaleziono" # {$ path} "na liście aktywów";
& Nbsp; # {$ Dyrektywa}: url ($ path);
& Nbsp;}
}
PHP
>>> System ("hashedassets -n my_callback mapy / wejście map.php / wejście txt. * / * Wyjście txt / *. /")
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
>>> Print open ("mapy / map.php"). Read ()
$ My_callback = array (
& Nbsp; "podkatalog / bar.txt" => "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt",
& Nbsp; "foo.txt" => "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
)
Sed
Możemy również wygenerować skrypt seda, który robi to zamienniki dla nas:
>>> Systemu ("hashedassets -n mapy my_callback / map.sed wejścia / wejście txt. * / * / Wyjście txt *. /")
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
>>> Print open ("mapy / map.sed"). Read ()
s / podkatalog / bar .txt / Ys23Ag_5IOWqZCw9QGaVDdHwH00 .txt / g
s / foo .txt / C-7Hteo_D9vJXQ3UfzxbwnXaijM .txt / g

Należy również być w stanie korzystać z tego bezpośrednio sed
>>> Z otwartym ("replaceme.html", "w") w pliku:
... File.write (' bar ')
Następnie nakłada skrypt tak:
>>> System ("sed -f mapy / map.sed replaceme.html")
bar
Jednak ". nie jest traktowana jako maska, więc nie działa w następujący
>>> Z otwartym ("replaceme2.html", "w") w pliku:
... File.write (' bar ')
>>> System ("sed -f mapy / map.sed replaceme2.html")
bar
Określanie typu z -t
Rodzaj mapie jest domyślić z nazwy pliku, ale można określić ją jako dobrze:
>>> System ("hashedassets -t js cantguessmaptype wejścia / *. Txt wejście / * / *. Txt wyjście /")
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
Określanie długość nazwy pliku z -l
>>> System ("hashedassets -l 10 mapy / wejście shortmap.json / wejście txt. * / * Wyjście txt / *. /")
"Wejście / foo.txt 'cp' wyjście / C-7Hteo_D9.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IO.txt "
>>> System ("wyjście rm / wyjścia C-7Hteo_D9.txt / Ys23Ag_5IO.txt")
Określanie trawienie -d
>>> Systemu ("hashedassets -d md5 mapy / wejście shortmap.json / *. Txt wejście / * / *. Txt wyjście /")
"Wejście / foo.txt 'cp' wyjście / rL0Y20zC-Fzt72VPzMSk2A.txt"
cp 'wejście / podkatalog / bar.txt' 'Wyjście / N7UdGUp1E-RbVvZSTy1R8g.txt "
>>> System ("wyjście rm / wyjścia rL0Y20zC-Fzt72VPzMSk2A.txt / N7UdGUp1E-RbVvZSTy1R8g.txt")
Ponowne wykorzystanie mapę
Program odczytuje na mapach stworzonych w to wcześniej metę tylko skopiować pliki, które nie uległy zmianie od. Tak więc, następujące polecenia nie kopiować żadnych plików:
>>> Systemu ("hashedassets mapy / map.scss wejścia / *. Txt wejście / * / * wyjście txt. /")
>>> Systemu ("hashedassets mapy / wejście map.php / wejście txt. * / * / * Wyjście txt. /")
>>> Systemu ("hashedassets mapy / map.js wejścia / *. Txt wejście / * / * wyjście txt. /")
>>> Systemu ("hashedassets mapy / wejście map.json / wejście txt. * / * / * Wyjście txt. /")
>>> Systemu ("hashedassets mapy / map.sed wejścia / wejście txt. * / * Wyjście txt / *. /")
>>> Systemu ("hashedassets mapy / wejście map.jsonp / wejście txt. * / * / * Wyjście txt. /")
>>> Systemu ("hashedassets mapy / map.txt wejścia / wejście txt. * / * Wyjście txt / *. /")
Jeżeli dotykamy jednego z plików wejściowych w między plik zostanie odczytany, ale nie skopiowana, ponieważ hashsum jest taki sam:
>>> System ("dotykać -t200504072214.12 wejścia / foo.txt")
>>> Systemu ("hashedassets mapy / wejście map.json / wejście txt. * / * / * Wyjście txt. /")
W przypadku zmiany zawartości pliku, będzie się nową nazwę:
>>> With open ("wejścia / foo.txt", "w") jako plik:
... File.write ("foofoo"),
>>> Systemu ("hashedassets mapy / wejście map.json / wejście txt. * / * / * Wyjście txt. /")
"Wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt" rm
"Wejście / foo.txt 'cp' wyjście / QIDaFD7KLKQh0l5O6b8exdew3b0.txt"
Jeśli następnie listę plików w katalogu, pamiętać, że stary plik '' Wyjście / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '' jest już:
>>> System ("wyjście ls /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Jeśli usuniemy jeden z utworzonych plików, zostaje odtworzony:
>>> System ("wyjście rm / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")
>>> Systemu ("hashedassets mapy / wejście map.json / wejście txt. * / * / * Wyjście txt. /")
cp 'wejście / podkatalog / bar.txt' 'Wyjście / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt "
>>> System ("wyjście ls /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Jeśli plik, który ma być usunięty, ponieważ oryginalna zawartość zmieniło, to nie jest odtwarzany:
>>> System ("wyjście rm / QIDaFD7KLKQh0l5O6b8exdew3b0.txt")
>>> With open ("wejścia / foo.txt", "w") jako plik:
... File.write ("foofoofoo"),
>>> Systemu ("hashedassets mapy / wejście map.json / wejście txt. * / * / * Wyjście txt. /")
"Wejście / foo.txt 'cp' wyjście / NdbmnXyjdY2paFzlDw9aJzCKH9w.txt"
Obsługa błędów
Jeśli jednak uruchomić to bez żadnych argumentów, to nie:
>>> System ("hashedassets", zewnętrzna = True)
Zastosowanie: hashedassets [opcje] mapFile ŹRÓDŁO [...] DEST

hashedassets: Błąd: Musisz podać co najmniej mapFile SOURCE i DEST

Wymagania :

  • Python

Podobne oprogramowanie

kio_p7zip
kio_p7zip

2 Jun 15

Vifm
Vifm

7 Mar 16

Rowscope
Rowscope

11 May 15

pygamebrowser
pygamebrowser

12 May 15

Komentarze do hashedassets

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!