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

Catfish
Catfish

17 Aug 18

Xplorer
Xplorer

20 Feb 15

QPSPManager
QPSPManager

17 Feb 15

SpaceFM
SpaceFM

17 Feb 15

Komentarze do hashedassets

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