mpsc 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #!/usr/bin/env lua
  2. local config_dir="/usr/milis/mps/conf/"
  3. package.path = "/usr/milis/mps/lua/?.lua" .. ";".. package.path
  4. package.path = config_dir.."?.lua" .. ";".. package.path
  5. local c = require ("conf")
  6. local serpent = require('serpent')
  7. --local config_file="/usr/milis/mps/conf/conf.lua"
  8. local config_file=config_dir.."conf.lua"
  9. local key=arg[1]
  10. local val=arg[2]
  11. local val2=arg[3]
  12. -- yedekleme için ayarlar
  13. local mpsconf={
  14. repo_dizin="/sources",
  15. sunucu={"https://mls.akdeniz.edu.tr/paketler21",},
  16. talimatdepo={
  17. [1]={["https://mls.akdeniz.edu.tr/git/milislinux/milis21"]="talimatname/1"},
  18. [2]={["https://mls.akdeniz.edu.tr/git/milislinux/milis21"]="talimatname/2"},
  19. },
  20. betikdepo={
  21. bin={["https://mls.akdeniz.edu.tr/git/milislinux/milis21"]="bin"},
  22. ayarlar={["https://mls.akdeniz.edu.tr/git/milislinux/milis21"]="ayarlar"},
  23. },
  24. }
  25. -- parametre işlevleri
  26. handle={
  27. ["-y"]=function() c=mpsconf end,
  28. ["-h"]=function()
  29. local help=[[
  30. ------------------------------------
  31. mpsc - MPS için Ayar Düzenleme Betiği
  32. ------------------------------------
  33. mpsc Mevcut ayarlar
  34. mpsc -h Yardım menüsü
  35. mpsc -y Ayarları sıfırlama
  36. mpsc -r repo_dizin Kaynak dizini ayarlama
  37. mpsc -s sıra=sunucu_adres Paket sunucusunu ayarlama
  38. mpsc -t sıra sunucu_adres=dizin Talimatname seviyesi için talimat deposu ayarlama
  39. mpsc -b dizin sunucu_adres=dizin Betik/uygulama için git deposu ayarlama
  40. ------------------------------------
  41. ]]
  42. print(help)
  43. end,
  44. ["-r"]=function(val,val2) c.repo_dizin=val end,
  45. ["-s"]=function(val,val2)
  46. local poz=val:find("=",1,true)
  47. if poz == nil then
  48. --print("1=sunucu_adresi şeklinde değer veriniz.")
  49. c.sunucu[1]=val
  50. else
  51. local order=val:sub(1,poz-1)
  52. order=tonumber(order)
  53. local server=val:sub(poz+1,-1)
  54. if server == "" then
  55. c.sunucu[order]=nil
  56. else
  57. c.sunucu[order]=server
  58. end
  59. end
  60. end,
  61. ["-b"]=function(val,val2)
  62. if val2 == nil then
  63. print("depo_dizin depo_adres=depo_dizin şeklinde değer veriniz.")
  64. else
  65. if c.betikdepo[val] == nil then
  66. c.betikdepo[val]={}
  67. end
  68. -- betik depo boş değilse
  69. if val2 ~= "nil" then
  70. local mpoz=val2:find("@",1,true)
  71. if mpoz ~= nil then
  72. val2="https://mls.akdeniz.edu.tr/git/milislinux/"..val2:sub(mpoz+1,-1)
  73. end
  74. local poz=val2:find("=",1,true)
  75. if poz == nil then
  76. --print("depo_dizin depo_adres=depo_dizin şeklinde değer veriniz.")
  77. c.betikdepo[val][val2]=""
  78. else
  79. local url=val2:sub(1,poz-1)
  80. local dir=val2:sub(poz+1,-1)
  81. if dir == "nil" then
  82. c.betikdepo[val][url]=nil
  83. else
  84. c.betikdepo[val][url]=dir
  85. end
  86. end
  87. else
  88. -- betikdepo silmek için
  89. c.betikdepo[val]=nil
  90. end
  91. end
  92. end,
  93. ["-t"]=function(val,val2)
  94. if val2 == nil then
  95. print("depo_numara depo_adres=depo_dizin şeklinde değer veriniz.")
  96. else
  97. -- ilk defa eklenecek seviye kontrolü
  98. if c.talimatdepo[val] == nil then
  99. c.talimatdepo[val]={}
  100. end
  101. -- talimat depo boş değilse
  102. if val2 ~= "nil" then
  103. local poz=val2:find("=",1,true)
  104. val=tonumber(val)
  105. if poz == nil then
  106. --print("depo_numara depo_adres=depo_dizin şeklinde değer veriniz.")
  107. c.talimatdepo[val][val2]=""
  108. else
  109. local url=val2:sub(1,poz-1)
  110. local dir=val2:sub(poz+1,-1)
  111. if dir == "nil" then
  112. c.talimatdepo[val][url]=nil
  113. else
  114. c.talimatdepo[val][url]=dir
  115. end
  116. end
  117. else
  118. -- seviye silmek için
  119. table.remove(c.talimatdepo, val)
  120. end
  121. end
  122. end,
  123. }
  124. if key~= nil then
  125. if val~= nil then
  126. handle[key](val,val2)
  127. else
  128. handle[key]()
  129. end
  130. else
  131. print(serpent.block(c))
  132. --handle["-h"]()
  133. end
  134. local indent=""
  135. function tprint(tablo)
  136. local data=serpent.block(tablo)
  137. -- açık çıktıyı kullan
  138. io.output(io.open(config_file, "w"))
  139. io.write("local config=")
  140. io.write(data)
  141. io.write("\n")
  142. io.write("return config")
  143. io.write("\n")
  144. io.close()
  145. end
  146. tprint(c)