hashedassets

البرمجيات قطة:
hashedassets
تفاصيل البرنامج:
الإصدار: 0.3.1.1
تاريخ إيداع: 12 May 15
المطور: Filip Noetzel
ترخيص: حرر
شعبية: 6

Rating: 1.0/5 (Total Votes: 1)

hashedassets هو أداة سطر الأوامر التي نسخ الملفات إلى أسماء على أساس محتوياتها على & nbsp؛ فإنه يكتب أيضا خريطة لماذا تم تغيير اسمها لماذا، حتى تتمكن من العثور على الملفات الخاصة بك.
الغرض الرئيسي من هذا هو أنه يمكنك إضافة المستقبل البعيد ينتهي الرأس إلى المكونات الخاصة بك. باستخدام أسماء التجزئة على أساس هو أفضل بكثير من استخدام الخاص بك رقم المراجعة $ VCS، لأنه يحتاج المستخدمون فقط لتنزيل الملفات التي لم تتغير.
إنشاء بعض الملفات المصدر
أولا، نحن إنشاء ملف ليتم تجزئته:
>>> النظام ("مدخل MKDIR /")
>>> النظام ("مدخل MKDIR / subdir /")
>>> النظام ("خرائط MKDIR /")
>>> مع فتح ("الإدخال / foo.txt"، "ث") في ملف:
... file.write ("فو")
>>> مع فتح ("الإدخال / subdir / bar.txt"، "ث") في ملف:
... file.write ("بار")
>>> نظام ('مدخلا لمسة -t200504072213.12 / foo.txt')
استخدام بسيط
>>> النظام ("hashedassets الخرائط / map.txt الإدخال / *. مدخلات النص / * / *. إخراج النص /")
MKDIR "الناتج"
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> طباعة مفتوحة ("خرائط / map.txt"). قراءة ()
subdir / bar.txt: Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
foo.txt: C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt

>>> النظام ("إخراج ليرة سورية /")
C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
>>> النظام ("خرائط ليرة سورية /")
map.txt
مستوى التسجيل
إذا كان لنا أن نقول للقيادة أن تكون هادئة، فإنه لا تتم طباعة ما تقوم به:
>>> النظام ("hashedassets -q الخرائط / map2.txt الإدخال / *. مدخلات النص / * / *. إخراج النص /")
إذا كان لنا أن نقول الأمر إلى أن يكون أكثر مطول، تسجيل مزيد من المعلومات:
>>> النظام ("hashedassets -vvv الخرائط / map3.txt الإدخال / *. مدخلات النص / * / *. إخراج النص /")
مستوى التصحيح تعيين إلى 10
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
يتم الاحتفاظ أيضا وقت التعديل:
>>> old_stat = os.stat ("الإدخال / foo.txt")
>>> new_stat = os.stat ("إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")
>>> [(getattr (old_stat، سند) == getattr (new_stat، سند))
... للدعم في ('st_mtime'، 'st_atime'، 'st_ino'،)]
[صحيح، صحيح، وخطأ]
يمكننا القيام بذلك بسهولة مع صيغ متعددة:
جافا سكريبت
>>> النظام ("hashedassets -n خرائط my_callback / map.js الإدخال / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> الطباعة المفتوحة ("خرائط / map.js"). قراءة ()
فار my_callback = {
على & nbsp؛ "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
على & nbsp؛ "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"

JSON
>>> النظام ("hashedassets -n خرائط my_callback / الإدخال map.json / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> طباعة مفتوحة ("خرائط / map.json"). قراءة ()
{
على & nbsp؛ "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
على & nbsp؛ "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
}
JSONP
>>> النظام ("hashedassets -n خرائط my_callback / الإدخال map.jsonp / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> طباعة مفتوحة ("خرائط / map.jsonp"). قراءة ()
my_callback ({
على & nbsp؛ "foo.txt": "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
على & nbsp؛ "subdir / bar.txt": "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
})؛
ساس
ساس هي لغة الفوقية على رأس CSS.
>>> النظام ("hashedassets -n خرائط my_callback / map.scss الإدخال / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> طباعة مفتوحة ("خرائط / map.scss"). قراءة ()
my_callbackmixin ($ التوجيه، $ المسار) {
على & nbsp؛if $ مسار == ​​"subdir / bar.txt" {{$ # التوجيه} رابط ("Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")؛ }
على & nbsp؛else إذا $ مسار == ​​"foo.txt" {{$ # التوجيه} رابط ("C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt")؛ }
على & nbsp؛else {
على & nbsp؛warn "لم تجد" # {$} مسار "في قائمة الموجودات".
على & nbsp؛ # {$ التوجيه} رابط ($ المسار).
على & nbsp؛}
}
PHP
>>> النظام ("hashedassets -n خرائط my_callback / الإدخال map.php / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> طباعة مفتوحة ("خرائط / map.php"). قراءة ()
$ my_callback = مجموعة (
على & nbsp؛ "subdir / bar.txt" => "Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
على & nbsp؛ "foo.txt" => "C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
)
سد
يمكننا أيضا إنشاء برنامج نصي الحوار الاقتصادي الاستراتيجي التي لا بدائل بالنسبة لنا:
>>> النظام ("hashedassets -n خرائط my_callback / الإدخال map.sed / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> الطباعة المفتوحة ("خرائط / map.sed"). قراءة ()
ق / subdir / بار . TXT / Ys23Ag_5IOWqZCw9QGaVDdHwH00 . TXT / ز
ق / فو . TXT / C-7Hteo_D9vJXQ3UfzxbwnXaijM . TXT / ز

يجب علينا أيضا أن تكون قادرة على استخدام هذا مباشرة مع الحزب الاشتراكي الموحد
>>> مع فتح ("replaceme.html"، "ث") في ملف:
... file.write ('<أ href = لfoo.txt> شريط ')
ثم يتم تطبيق سيناريو من هذا القبيل:
>>> النظام ("خرائط -f سد / replaceme.html map.sed")
<أ href = لC-7Hteo_D9vJXQ3UfzxbwnXaijM.txt> شريط
ومع ذلك، '.' لم يتم التعامل معها على أنها البدل، بحيث لا يعمل ما يلي
>>> مع فتح ("replaceme2.html"، "ث") في ملف:
... file.write ('<أ href = لfooAtxt> شريط ')
>>> النظام ("خرائط -f سد / replaceme2.html map.sed")
<أ href = لfooAtxt> شريط
تحديد نوع مع -t
وخمنت نوع من الخريطة من اسم الملف، ولكن يمكنك تحديد ذلك أيضا:
>>> النظام ("hashedassets -t شبيبة cantguessmaptype الإدخال / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
تحديد طول اسم الملف مع -l
>>> النظام ("hashedassets -l 10 الخرائط / الإدخال shortmap.json / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / C-7Hteo_D9.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IO.txt"
>>> النظام ("إخراج RM / الإخراج C-7Hteo_D9.txt / Ys23Ag_5IO.txt")
تحديد هضم مع -d
>>> النظام ("hashedassets -d خرائط MD5 / الإدخال shortmap.json / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / rL0Y20zC-Fzt72VPzMSk2A.txt"
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / N7UdGUp1E-RbVvZSTy1R8g.txt"
>>> النظام ("إخراج RM / الإخراج rL0Y20zC-Fzt72VPzMSk2A.txt / N7UdGUp1E-RbVvZSTy1R8g.txt")
إعادة استخدام الخريطة
يقرأ البرنامج في الخرائط التي خلقتها في شوط مسبق لنسخ الملفات التي لم تتغير منذ فقط. مع ذلك، فإن الأوامر التالية لا تقم بنسخ أي ملفات:
>>> النظام ("hashedassets الخرائط / map.scss الإدخال / *. مدخلات النص / * / *. إخراج النص /")
>>> النظام ("hashedassets الخرائط / الإدخال map.php / *. مدخلات النص / * / *. إخراج النص /")
>>> النظام ("hashedassets الخرائط / map.js الإدخال / *. مدخلات النص / * / *. إخراج النص /")
>>> النظام ("hashedassets الخرائط / الإدخال map.json / *. مدخلات النص / * / *. إخراج النص /")
>>> النظام ("خرائط hashedassets / الإدخال map.sed / *. مدخلات النص / * / *. إخراج النص /")
>>> النظام ("hashedassets الخرائط / الإدخال map.jsonp / *. مدخلات النص / * / *. إخراج النص /")
>>> النظام ("hashedassets الخرائط / map.txt الإدخال / *. مدخلات النص / * / *. إخراج النص /")
إذا نحن على اتصال واحد من ملفات الإدخال في بين، وسيتم قراءة الملف ولكن لا نسخ لأن hashsum هو نفسه:
>>> نظام ('مدخلا لمسة -t200504072214.12 / foo.txt')
>>> النظام ("hashedassets الخرائط / الإدخال map.json / *. مدخلات النص / * / *. إخراج النص /")
إذا كنا نريد تغيير محتوى الملف، وسوف تحصل على اسم جديد:
>>> مع فتح ("الإدخال / foo.txt"، "ث") في ملف:
... file.write ("FOOFOO")
>>> النظام ("hashedassets الخرائط / الإدخال map.json / *. مدخلات النص / * / *. إخراج النص /")
RM 'إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt "
حزب المحافظين "الإدخال / foo.txt '' إخراج / QIDaFD7KLKQh0l5O6b8exdew3b0.txt"
إذا كنت ثم سرد الملفات في الدليل، لاحظ أن الملف القديم '' إخراج / C-7Hteo_D9vJXQ3UfzxbwnXaijM.txt '' هو ذهب:
>>> النظام ("إخراج ليرة سورية /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
إذا كنا إزالة واحدة من الملفات التي تم إنشاؤها، ويحصل على صوغه ما يلي:
>>> النظام ("إخراج RM / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt")
>>> النظام ("hashedassets الخرائط / الإدخال map.json / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / subdir / bar.txt '' إخراج / Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt"
>>> النظام ("إخراج ليرة سورية /")
QIDaFD7KLKQh0l5O6b8exdew3b0.txt
Ys23Ag_5IOWqZCw9QGaVDdHwH00.txt
إذا كان الملف الذي هو على وشك إزالتها لأن المحتوى الأصلي تغيرت، لا يتم صوغه ما يلي:
>>> النظام ("إخراج RM / QIDaFD7KLKQh0l5O6b8exdew3b0.txt")
>>> مع فتح ("الإدخال / foo.txt"، "ث") في ملف:
... file.write ("foofoofoo")
>>> النظام ("hashedassets الخرائط / الإدخال map.json / *. مدخلات النص / * / *. إخراج النص /")
حزب المحافظين "الإدخال / foo.txt '' إخراج / NdbmnXyjdY2paFzlDw9aJzCKH9w.txt"
معالجة الأخطاء
ومع ذلك، إذا كان لنا أن تشغيل هذا بدون وسائط، فإنه يفشل:
>>> النظام ("hashedassets"، الخارجية = صحيح)
الاستعمال: hashedassets [خيارات] SOURCE ملف التخطيط [...] DEST

hashedassets: خطأ: يجب تحديد ما لا يقل عن ملف التخطيط SOURCE وDEST

المتطلبات:

بيثون

برامج مماثلة

X Northern
X Northern

3 Jun 15

DocFetcher
DocFetcher

17 Feb 15

Beyond Compare
Beyond Compare

17 Aug 18

Rowscope
Rowscope

11 May 15

تعليقات ل hashedassets

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!