ডিনস্পানজার থেকে প্রদত্ত কোডটির উন্নতি করে আমি নুপ কমান্ডটি অনুকরণ করার চেষ্টা করেছি, অনেকটা চকোলেটির মতো ( চোকো আপডেট - নূন / চোকো পুরানো )।
https://git.io/vgjiL
#!/bin/sh
fetch(){
echo "Removing brew cache"
rm -rf "$(brew --cache)"
echo "Running brew update"
brew update
}
lookup() {
for c in $(brew cask list); do
brew cask info $c
done
}
update(){
var=$( lookup | grep -B 3 'Not installed' | sed -e '/^http/d;/^Not/d;/:/!d' | cut -d ":" -f1)
if [ -n "$var" ]; then
echo "The following installed casks have updates avilable:"
echo "$var"
echo "Install updates now?"
select yn in "Yes" "No"; do
case $yn in
"Yes") echo "updating outdated casks"; break;;
"No") echo "brew cask upgrade cancelled" ;return;;
*) echo "Please choose 1 or 2";;
esac
done
for i in $var; do
echo "Uninstalling $c"; brew cask uninstall --force "$i"; echo "Re-installing $i"; brew cask install "$i"
done
else
echo "all casks are up to date"
fi
}
fetch
update
যেহেতু একজন দেখতে পাচ্ছেন, আমার ব্যবহারের ক্ষেত্রে কিছুটা আলাদা হওয়ার কারণে আমি একটি মডুলার পদ্ধতির ব্যবহার করছি। আমি আমার কম্পিউটারের সামনে বসে ইনস্টল করা প্রতিটি অ্যাপের জন্য হ্যাঁ / না টাইপ করতে চাই না। ক্যাসকে আপগ্রেড করার কোনও আসল উপায় নেই যদিও (কেবলমাত্র নতুন সংস্করণটি পুনরায় ইনস্টল করুন), তবে আমি প্রথমে ব্রিউ আপডেট করি এমন তথ্য রয়েছে যাতে সেখানে আপডেটগুলি পাওয়া যায় ।
এরপরে, আমি সমস্ত ক্যাসকে তাদের তথ্য প্রদর্শন করার জন্য চক্র করে। যেহেতু আমি আগে ব্রিউ আপডেট করেছি, এখন একজনকে এমন তথ্য সরবরাহ করা হয়েছে যে কয়েকটি ক্যাসকের সর্বশেষ সংস্করণ ইনস্টল করা হয়নি।
আমার আপডেট পদ্ধতির অভ্যন্তরে আমি সেই নির্দিষ্ট লাইনের জন্য তথ্য কমান্ডটি আসলে পার্স করছি:
lookup | grep -B 3 'Not installed' | sed -e '/^http/d;/^Not/d;/:/!d' | cut -d ":" -f1
যা এর অনুবাদ করে: "আপনি যখনই" ইনস্টল নেই "লাইনটি পড়েন তখন উপরের তথ্যের উপরের 3 টি লাইন দিন Then তারপরে কোনও লিঙ্ক রয়েছে এমন কোনও লাইন মুছুন, এতে একটি ':' রয়েছে এমন একটি লাইনও মুছুন" "
ব্রিউ ক্যাস্ক তথ্য কমান্ডের কাঠামো দেওয়া, আমরা একটি লাইন দিয়ে শেষ করি (কোনও সংস্করণ তথ্য নেই, কোনও অ্যাপ্লিকেশন URL নেই) যা ক্যাসকের আসল নামটিও প্রতিফলিত করে যে এটি ইনস্টল করা হয়েছিল with
ব্রিউ ক্যাস্ক তথ্য আউটপুট
আমার সংস্করণে, এই তথ্যটি এখন মুদ্রিত হয়েছে যাতে সহজেই দেখতে পাওয়া যায় কোনটি ক্যাস্কগুলি পুরানো এবং আপডেট হতে পারে।
এই মুহুর্তে আমি একটি সুইচ কেস করি, কারণ এখনই জিনিসগুলি আপডেট করার পক্ষে পর্যাপ্ত সময় নেই। এটি আপনার ব্যবহারের ক্ষেত্রে নির্ভর করে। আমার জন্য, আমি মাঝে মাঝে কেবল নতুনটি (নতুন সংস্করণ, একটি বাগফিক্সের অপেক্ষায়) দেখতে চাই তবে আসলে জিনিস আপডেট করার সময় নেই কারণ এখনই আমি আমার ব্রাউজারটি বন্ধ করতে চাই না ইত্যাদি ইত্যাদি
সুতরাং যদি কেউ "হ্যাঁ" এর বিকল্প বেছে নেয়, তবে কাসকের পরিষ্কার নামগুলির তালিকা আপডেট ফাংশনটিতে দেওয়া হবে যেখানে প্রতিটি ক্যাস্কের জন্য নির্ধারিত ছিল যে পুনরায় ইনস্টল করা হবে তার পুরানো তারিখের বাইরে।
ডেনস্প্যানজারকে আবার ধন্যবাদ, নিজের জন্য এই সমস্যাটি সমাধান করার চেষ্টা করার সময়, আমি সবসময়ই ব্রিউ আপডেটটি আগেই ভুলে গিয়েছিলাম সুতরাং সেখানে বিশ্লেষণের জন্য কোনও "ইনস্টলড" লাইন ছিল না (আমার সম্পূর্ণ পদ্ধতির ভিত্তি)।
আশা করি এটা উপকারে এসেছিল।