hashedassets

Software screenshot:
hashedassets
Rincian Software:
Versi: 0.3.1.1
Tanggal Upload: 12 May 15
Pengembang: Filip Noetzel
Lisensi: Gratis
Popularitas: 6

Rating: 1.0/5 (Total Votes: 1)

hashedassets adalah alat baris perintah yang salinan file ke nama file berdasarkan isinya & nbsp;. Ini juga menulis peta apa yang berganti nama menjadi apa, sehingga Anda dapat menemukan file Anda.
Tujuan utama dari ini adalah bahwa Anda dapat menambahkan masa depan yang jauh Expires header untuk komponen Anda. Menggunakan nama file hash berdasarkan jauh lebih baik daripada menggunakan nomor revisi $ VCS Anda, karena pengguna hanya perlu men-download file yang tidak berubah.
Membuat beberapa file sumber
Pertama, kita membuat sebuah file yang akan hash:
>>> Sistem ("masukan mkdir /")
>>> Sistem ("masukan mkdir / subdir /")
>>> Sistem ("peta mkdir /")
>>> Dengan terbuka ("input / foo.txt", "w") sebagai berkas:
... File.write ("foo")
>>> Dengan terbuka ("input / subdir / bar.txt", "w") sebagai berkas:
... File.write ("bar")
>>> Sistem ('menyentuh -t200504072213.12 input / foo.txt')
penggunaan Simple
>>> Sistem ("peta hashedassets / input map.txt / input txt *. / * Keluaran txt / *. /")
mkdir 'output'
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Mencetak terbuka ("peta / map.txt"). Read ()
subdir / bar.txt: Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
foo.txt: C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt

>>> Sistem ("output ls /")
C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
>>> Sistem ("peta ls /")
map.txt
Tingkat penebangan
Jika kita mengatakan perintah untuk diam, tidak mencetak apa yang dilakukannya:
>>> Sistem ("hashedassets -q peta / map2.txt input / masukan txt *. / * / Output txt *. /")
Jika kita mengatakan perintah untuk menjadi lebih verbose, log informasi lebih lanjut:
>>> Sistem ("hashedassets -vvv peta / map3.txt input / masukan txt *. / * / Output txt *. /")
Tingkat Debug diatur ke 10
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
Waktu modifikasi juga diawetkan:
>>> Old_stat = os.stat ("input / foo.txt")
>>> New_stat = os.stat ("output / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")
>>> [(Getattr (old_stat, prop) == getattr (new_stat, prop))
... Untuk prop di ('st_mtime', 'st_atime', 'st_ino',)]
[Benar, Benar, Salah]
Kita dapat dengan mudah melakukan hal ini dengan berbagai format:
JavaScript
>>> Sistem ("hashedassets -n peta my_callback / map.js input / *. Txt masukan / * / * keluaran txt. /")
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Print terbuka ("peta / map.js"). Read ()
var my_callback = {
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
};
JSON
>>> Sistem ("hashedassets -n peta my_callback / input map.json / input txt *. / * Keluaran txt / *. /")
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Mencetak terbuka ("peta / map.json"). Read ()
{
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
}
JSONP
>>> Sistem ("hashedassets -n peta my_callback / input map.jsonp / input txt *. / * Keluaran txt / *. /")
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Mencetak terbuka ("peta / map.jsonp"). Read ()
my_callback ({
& Nbsp; "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
& Nbsp; "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
});
Kelancangan
Sass adalah bahasa meta di atas CSS.
>>> Sistem ("hashedassets -n peta my_callback / map.scss input / *. Txt masukan / * / * keluaran txt. /")
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Mencetak terbuka ("peta / map.scss"). Read ()
mixin my_callback ($ direktif, $ path) {
& Nbsp;if $ path == "subdir / bar.txt" {# {$ direktif}: url ("Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"); }
& Nbsp;else jika $ path == "foo.txt" {# {$ direktif}: url ("C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"); }
& Nbsp;else {
& Nbsp;warn "Tidak menemukan" # {$ path} "dalam daftar aset";
& Nbsp; # {$ direktif}: url ($ path);
& Nbsp;}
}
PHP
>>> Sistem ("hashedassets -n peta my_callback / input map.php / input txt *. / * Keluaran txt / *. /")
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Mencetak terbuka ("peta / map.php"). Read ()
$ My_callback = array (
& Nbsp; "subdir / bar.txt" => "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt",
& Nbsp; "foo.txt" => "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt",
)
Sed
Kami juga dapat menghasilkan script sed yang melakukan penggantian bagi kita:
>>> Sistem ("hashedassets -n peta my_callback / input map.sed / input txt *. / * / Output txt *. /")
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Print terbuka ("peta / map.sed"). Read ()
s / subdir / bar .txt / Ys23Ag_5IOWqZCw9QGaVDdHwH00 .txt / g
s / foo .txt / C-7Hteo_D9vJXQ3UfzxbwnXaijM .txt / g

Kami juga harus dapat menggunakan ini secara langsung dengan sed
>>> Dengan terbuka ("replaceme.html", "w") sebagai berkas:
... File.write (' bar ')
Script ini kemudian diterapkan seperti ini:
>>> Sistem ("peta -f sed / map.sed replaceme.html")
bar
Namun, '.' tidak diperlakukan sebagai wildcard, sehingga berikut ini tidak bekerja
>>> Dengan terbuka ("replaceme2.html", "w") sebagai berkas:
... File.write (' bar ')
>>> Sistem ("peta -f sed / map.sed replaceme2.html")
bar
Menentukan jenis dengan t
Jenis peta yang menebak dari nama file, tetapi Anda dapat menentukan itu juga:
>>> Sistem ("hashedassets t js cantguessmaptype input / *. Txt masukan / * / *. Txt keluaran /")
'input / foo.txt' cp 'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
Menentukan panjang nama file dengan l
>>> Sistem ("hashedassets l 10 peta / input shortmap.json / input txt *. / * Keluaran txt / *. /")
'input / foo.txt' cp 'keluaran / C-7Hteo_D9.txt'
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IO.txt'
>>> Sistem ("output rm / output C-7Hteo_D9.txt / Ys23Ag_5IO.txt")
Menentukan digest dengan -d
>>> Sistem ("hashedassets -d peta md5 / masukan shortmap.json / *. Txt masukan / * / *. Txt keluaran /")
'input / foo.txt' cp 'keluaran / rL0Y20zC-Fzt72VPzMSk2A.txt'
cp 'input / subdir / bar.txt' 'keluaran / N7UdGUp1E-RbVvZSTy1R8g.txt'
>>> Sistem ("output rm / output rL0Y20zC-Fzt72VPzMSk2A.txt / N7UdGUp1E-RbVvZSTy1R8g.txt")
Re-menggunakan peta
Program membaca dalam peta itu dibuat dalam jangka sebelum hanya menyalin file yang belum berubah sejak. Jadi, perintah berikut tidak menyalin file:
>>> Sistem ("peta hashedassets / map.scss input / *. Txt masukan / * / * keluaran txt. /")
>>> Sistem ("peta hashedassets / input map.php / input txt *. / * / * Keluaran txt. /")
>>> Sistem ("peta hashedassets / map.js input / *. Txt masukan / * / * keluaran txt. /")
>>> Sistem ("peta hashedassets / input map.json / input txt *. / * / * Keluaran txt. /")
>>> Sistem ("peta hashedassets / input map.sed / input txt *. / * Keluaran txt / *. /")
>>> Sistem ("peta hashedassets / input map.jsonp / input txt *. / * / * Keluaran txt. /")
>>> Sistem ("peta hashedassets / input map.txt / input txt *. / * Keluaran txt / *. /")
Jika kita menyentuh salah satu file input antara, file akan dibaca tetapi tidak disalin karena hashsum adalah sama:
>>> Sistem ('menyentuh -t200504072214.12 input / foo.txt')
>>> Sistem ("peta hashedassets / input map.json / input txt *. / * / * Keluaran txt. /")
Jika kita mengubah isi file, itu akan mendapatkan nama baru:
>>> Dengan terbuka ("input / foo.txt", "w") sebagai berkas:
... File.write ("foofoo")
>>> Sistem ("peta hashedassets / input map.json / input txt *. / * / * Keluaran txt. /")
'keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt' rm
'input / foo.txt' cp 'keluaran / QIDaFD7KLKQh0l5O6b8exdew3b0.txt'
Jika Anda maka daftar file dalam direktori, perhatikan bahwa file lama '' keluaran / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '' adalah pergi:
>>> Sistem ("output ls /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Jika kita menghapus salah satu file yang dibuat, itu akan diciptakan:
>>> Sistem ("output rm / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")
>>> Sistem ("peta hashedassets / input map.json / input txt *. / * / * Keluaran txt. /")
cp 'input / subdir / bar.txt' 'keluaran / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt'
>>> Sistem ("output ls /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
Jika file yang akan dihapus karena konten asli berubah, tidak diciptakan:
>>> Sistem ("output rm / QIDaFD7KLKQh0l5O6b8exdew3b0.txt")
>>> Dengan terbuka ("input / foo.txt", "w") sebagai berkas:
... File.write ("foofoofoo")
>>> Sistem ("peta hashedassets / input map.json / input txt *. / * / * Keluaran txt. /")
'input / foo.txt' cp 'keluaran / NdbmnXyjdY2paFzlDw9aJzCKH9w.txt'
Kesalahan penanganan
Namun, jika kita menjalankan ini tanpa argumen, gagal:
>>> Sistem ("hashedassets", eksternal = True)
Penggunaan: hashedassets [Pilihan] MAPFILE SUMBER [...] DEST

hashedassets: error: Anda harus menentukan setidaknya MAPFILE SUMBER dan DEST

Persyaratan :

  • Python

Software yang serupa

TDFSB
TDFSB

3 Jun 15

TMSU
TMSU

19 Feb 15

4Pane
4Pane

2 Sep 17

FindRepe
FindRepe

20 Feb 15

Komentar untuk hashedassets

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!