setconf(1) setconf(1)

setconf - تغییر تنظیمات در فایل‌های متنی پیکربندی

setconf filename key value [رشته پایانی برای مقدار چندخطی]

اگر یک فایل متنی با فیلدهایی شبیه به این‌ها وجود داشته باشد:

CC=gcc

lights := on

compileToday: true

anumber = 42

cabal ==1.2.3

دستور setconf می‌تواند این مقادیر را به چیز دیگری تغییر دهد. مقدار مرتبط با نخستین کلیدِ یافت‌شده، به مقدار ارائه‌شده تغییر خواهد کرد.

برای نمونه، CC یک کلید و gcc یک مقدار است.

setconf
با کد خطای ۱ خارج می‌شود

setconf Makefile.defaults NETSURF_USE_HARU_PDF NO
در Makefile.defaults، مقدار NETSURF_USE_HARU_PDF را به NO تنظیم می‌کند

setconf Makefile CC gcc
در Makefile، مقدار CC=gcc را تنظیم می‌کند

setconf PKGBUILD sha256sums "('123abc' 'abc123')" ')'
در فایل PKGBUILD، فارغ از اینکه مقدار پیشین چند خط را در بر گرفته است،
مقدار کلیدهای sha256sums را به ('123abc' 'abc123') تنظیم می‌کند،
زیرا رشته پایانی ')' مشخص شده است.

setconf app.py NUMS "[1, 2, 3]" ']'
جایگزینی چندخطی؛ تعویض متن از مقدار متعلق به کلید NUMS
تا رشته پایانی ] با مقدار [1, 2, 3]، صرف‌نظر از اینکه
مقدار پیشین چند خط را در بر گرفته باشد.

setconf my.conf x=1
مقدار x را در my.conf به 1 تنظیم می‌کند، حتی اگر my.conf از انتساب متفاوتی
مانند x := 42، x : 42، x == 42، x :: 42 یا x => 42 استفاده کرده باشد.

setconf -a server.ini 'Z => 99'
عبارت Z => 99 را به server.ini اضافه می‌کند

setconf --add rolling.conf N 1000
عبارت N=1000 را اضافه می‌کند. در صورت نیاز، فایل را ایجاد می‌نماید.

setconf test.file y-=0.1
مقدار y را به میزان 0.1 کاهش می‌دهد.

setconf values.conf x+=2
مقدار x را به میزان 2 افزایش می‌دهد.

setconf -d linux/printk.h CONSOLE_LOGLEVEL_DEFAULT=4
مقدار #define CONSOLE_LOGLEVEL_DEFAULT را به 4 تغییر می‌دهد

setconf -u kernel_config CONFIG_ULTRIX_PARTITION=y
کلید CONFIG_ULTRIX_PARTITION=y را از حالت کامنت خارج کرده و تنظیم می‌کند،
حتی اگر مقدار اصلی دارای پسوند "is not set" باشد. برای استفاده در
پیکربندی هسته لینوکس در نظر گرفته شده است.

شماره نسخه فعلی را نمایش می‌دهد
اطلاعات مختصر درباره نحوه استفاده را نمایش می‌دهد
آزمون‌های خودکار داخلی را اجرا می‌کند
اگر گزینه از قبل وجود نداشته باشد، آن را اضافه می‌کند. باید به دنبال آن یک نام فایل و یک جفت کلید/مقدار بیاید.
مقدار یک #define تک‌خطی را تغییر می‌دهد
پیش از تغییر مقدار، کلید را از حالت کامنت خارج می‌کند

با پیروی از روحیه‌ی حقیقی UNIX، هدف آن حل اصولی یک مشکل کوچک به جای حل نیمه‌کاره‌ی هزار مشکل است

در مقایسه با استفاده از sed برای همین کار، دستوری ایجاد می‌کند که خواندن آن بسیار آسان است

باید از ساختار دستوری کاملاً مشخص باشد چه کاری در حال انجام است

تنها یک فایل اجرایی کوچک، نه یک بسته‌ی بزرگ نرم‌افزاری

sed(1) make(1)

تاکنون تنها اشکالات ناشناخته وجود دارند. باگ‌ها را می‌توان در https://github.com/xyproto/setconf/issues گزارش کرد.

0.7.7

setconf توسط Alexander F. Rødseth <xyproto@archlinux.org> و مشارکت‌کنندگان نوشته شده است

06 Jul 2020