freshclam.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. 'use strict';
  2. 'require form';
  3. 'require fs';
  4. 'require uci';
  5. 'require view';
  6. return view.extend({
  7. load: function() {
  8. },
  9. render: function() {
  10. let m, s, o;
  11. m = new form.Map('freshclam', _('Freshclam'), _('Configuration'));
  12. // Section
  13. s = m.section(form.TypedSection, 'freshclam', _('Settings'));
  14. s.anonymous = true;
  15. s.addremove = false;
  16. // Advanced Tab
  17. s.tab('tab_advanced', _('Settings'));
  18. // freshclam_config_file
  19. o = s.taboption('tab_advanced', form.Value, 'freshclam_config_file', _('clamd config file'));
  20. o.datatype = 'string';
  21. o.value('/etc/clamav/freshclam.conf');
  22. o.placeholder = '/etc/clamav/freshclam.conf';
  23. /*
  24. // UpdateLogFile
  25. o = s.taboption('tab_advanced', form.Value, 'UpdateLogFile', _('Logfile'));
  26. o.value('/tmp/clamav-milter.log');
  27. o.placeholder = '/tmp/clamav-milter.log';
  28. // LogFileMaxSize
  29. o = s.taboption('tab_advanced', form.Value, 'LogFileMaxSize', _('Max size of log file'));
  30. o.value('512K', _('512K'));
  31. o.value('1M', _('1M'));
  32. o.value('2M', _('2M'));
  33. // LogRotate
  34. o = s.taboption('tab_advanced', form.ListValue, 'LogRotate', _('Add header'));
  35. o.value('false', _('No'));
  36. o.value('true', _('Yes'));
  37. */
  38. // LogTime
  39. o = s.taboption('tab_advanced', form.ListValue, 'LogTime', _('Log time with each message'));
  40. o.value('false', _('No'));
  41. o.value('true', _('Yes'));
  42. // LogVerbose
  43. o = s.taboption('tab_advanced', form.ListValue, 'LogVerbose', _('Enable verbose logging'));
  44. o.value('false', _('No'));
  45. o.value('true', _('Yes'));
  46. // Debug
  47. o = s.taboption('tab_advanced', form.ListValue, 'Debug', _('Debug logging'));
  48. o.value('false', _('No'));
  49. o.value('true', _('Yes'));
  50. o.placeholder = 'true';
  51. // LogSyslog
  52. o = s.taboption('tab_advanced', form.ListValue, 'LogSyslog', _('Log to syslog'));
  53. o.value('false', _('No'));
  54. o.value('true', _('Yes'));
  55. o.placeholder = 'true';
  56. // LogFacility
  57. o = s.taboption('tab_advanced', form.ListValue, 'LogFacility', _('Syslog facility'));
  58. o.value('LOG_KERN');
  59. o.value('LOG_USER');
  60. o.value('LOG_MAIL');
  61. o.value('LOG_DAEMON');
  62. o.value('LOG_AUTH');
  63. o.value('LOG_LPR');
  64. o.value('LOG_NEWS');
  65. o.value('LOG_UUCP');
  66. o.value('LOG_CRON');
  67. o.value('LOG_LOCAL0');
  68. o.value('LOG_LOCAL1');
  69. o.value('LOG_LOCAL2');
  70. o.value('LOG_LOCAL3');
  71. o.value('LOG_LOCAL4');
  72. o.value('LOG_LOCAL5');
  73. o.value('LOG_LOCAL6');
  74. o.value('LOG_LOCAL7');
  75. // cannot do o.depends - it removes the option if dep condition is not met, thereby causing a startup error
  76. // o.depends('LogSyslog', 'true');
  77. // Foreground
  78. o = s.taboption('tab_advanced', form.ListValue, 'Foreground', _('Run in foreground'));
  79. o.value('false', _('No'));
  80. o.value('true', _('Yes'));
  81. o.placeholder = 'false';
  82. // PidFile
  83. o = s.taboption('tab_advanced', form.Value, 'PidFile', _('PID file'));
  84. o.datatype = 'string';
  85. o.value('/var/run/clamav/freshclam.pid');
  86. o.placeholder = '/var/run/clamav/freshclam.pid';
  87. // NotifyClamd
  88. o = s.taboption('tab_advanced', form.Value, 'NotifyClamd', _('Notify clamd'));
  89. o.datatype = 'string';
  90. o.value('/etc/clamav/clamd.conf');
  91. o.placeholder = '/etc/clamav/clamd.conf';
  92. // DatabaseOwner
  93. o = s.taboption('tab_advanced', form.Value, 'DatabaseOwner', _('Database owner'));
  94. o.datatype = 'string';
  95. o.value('clamav');
  96. o.value('root');
  97. o.placeholder = 'root';
  98. // DatabaseDirectory
  99. o = s.taboption('tab_advanced', form.Value, 'DatabaseDirectory', _('Database directory'));
  100. o.datatype = 'string';
  101. o.value('/usr/share/clamav');
  102. o.placeholder = '/usr/share/clamav';
  103. // DNSDatabaseInfo
  104. o = s.taboption('tab_advanced', form.Value, 'DNSDatabaseInfo', _('DNS database info'));
  105. o.datatype = 'string';
  106. o.value('current.cvd.clamav.net');
  107. o.placeholder = 'current.cvd.clamav.net';
  108. // DatabaseMirror
  109. o = s.taboption('tab_advanced', form.Value, 'DatabaseMirror', _('Database mirror'));
  110. o.datatype = 'string';
  111. o.value('database.clamav.net');
  112. o.placeholder = 'database.clamav.net';
  113. // DatabaseCustomURL
  114. o = s.taboption('tab_advanced', form.Value, 'DatabaseCustomURL', _('Custom database URL'));
  115. o.value('http://myserver.example.com/mysigs.ndb');
  116. o.value('https://myserver.example.com:4567/allow_list.wdb');
  117. o.value('ftp://myserver.example.com/example.ldb');
  118. o.value('file:///mnt/nfs/local.hdb');
  119. o.value('file:///mnt/nfs/local.hdb');
  120. // PrivateMirror
  121. o = s.taboption('tab_advanced', form.Value, 'PrivateMirror', _('Private mirror URL'));
  122. o.value('mirror1.example.com');
  123. o.value('mirror2.example.com');
  124. // ScriptedUpdates
  125. o = s.taboption('tab_advanced', form.ListValue, 'ScriptedUpdates', _('Scripted updates'));
  126. o.value('false', _('No'));
  127. o.value('true', _('Yes'));
  128. // CompressLocalDatabase
  129. o = s.taboption('tab_advanced', form.ListValue, 'CompressLocalDatabase', _('Compress local database'));
  130. o.value('false', _('No'));
  131. o.value('true', _('Yes'));
  132. // ConnectTimeout
  133. o = s.taboption('tab_advanced', form.Value, 'ConnectTimeout', _('Connect timeout'));
  134. o.value('30');
  135. o.value('60');
  136. o.placeholder = '60';
  137. // ReceiveTimeout
  138. o = s.taboption('tab_advanced', form.Value, 'ReceiveTimeout', _('Receive timeout'));
  139. o.value('60');
  140. o.value('300');
  141. o.placeholder = '60';
  142. // Checks
  143. o = s.taboption('tab_advanced', form.Value, 'Checks', _('Database checks per day'));
  144. o.value('12');
  145. o.value('24');
  146. // TestDatabases
  147. o = s.taboption('tab_advanced', form.ListValue, 'TestDatabases', _('Test databases'));
  148. o.value('false', _('No'));
  149. o.value('true', _('Yes'));
  150. // Bytecode
  151. o = s.taboption('tab_advanced', form.MultiValue, 'Bytecode', _('Download bytecode.cvd'));
  152. o.value('false', _('No'));
  153. o.value('true', _('Yes'));
  154. // ExtraDatabase
  155. o = s.taboption('tab_advanced', form.Value, 'ExtraDatabase', _('Extra databases'));
  156. o.datatype = 'string';
  157. o.placeholder = 'dbname1';
  158. // ExcludeDatabase
  159. o = s.taboption('tab_advanced', form.Value, 'ExcludeDatabase', _('Exclude databases'));
  160. o.datatype = 'string';
  161. o.placeholder = 'dbname1';
  162. return m.render();
  163. },
  164. });