fb8548321c3949ba99be28ea0c9ef7cfb38c3c6d
11 my $config_fn = "/root/.pve-docs"; # format 'username:pw'
13 my $fh = IO
::File-
>new("$config_fn") ||
14 die "Please configure the mediawiki user/passswd in '$config_fn'\n";
16 my $api_url = "http://localhost/mediawiki/api.php";
21 my ($username, $passwd) = split(':', $config, 2);
23 my $mw = MediaWiki
::API-
>new();
24 $mw->{config
}->{api_url
} = $api_url;
27 $mw->login({ lgname
=> $username, lgpassword
=> $passwd })
28 || die $mw->{error
}->{code
} . ': ' . $mw->{error
}->{details
};
31 my ($pagename, $include, $category) = @_;
33 print "update mediawiki page: $pagename\n";
35 my $ref = $mw->get_page( { title
=> $pagename } );
36 my $page = $ref->{'*'} || '';
38 if ($page !~ m/^\{\{#pvedocs:.*\}\}\s*$/m) {
39 $page = "{{#pvedocs:$include}}\n$page";
41 $page =~ s/^\{\{#pvedocs:.*\}\}\s*$/\{\{#pvedocs:$include\}\}\n/m;
45 my $catstr = "Category:$category";
47 if ($page !~ m/^\[\[$catstr\]\]\s*$/m) {
48 $page .= "\n[[$catstr]]\n";
52 my $timestamp = $ref->{timestamp
};
56 basetimestamp
=> $timestamp, # to avoid edit conflicts
61 die $mw->{error
}->{code
} . ': ' . $mw->{error
}->{details
};
64 my $cat_refdoc = "Reference Documentation";
67 'chapter-ha-manager-plain.html' => {
68 title
=> "High Availability",
69 category
=> $cat_refdoc,
71 'chapter-pve-installation-plain.html' => {
72 title
=> "Installation",
73 category
=> $cat_refdoc,
75 'section-pve-usbstick-plain.html' => {
76 title
=> "Install from USB Stick",
77 category
=> $cat_refdoc,
79 'section-pve-system-requirements-plain.html' => {
80 title
=> "System Requirements",
81 category
=> $cat_refdoc,
83 'section-getting-help-plain.html' => {
84 title
=> "Getting Help",
85 category
=> $cat_refdoc,
87 'sysadmin-pve-network-plain.html' => {
88 title
=> "Network Configuration",
89 category
=> $cat_refdoc,
91 'sysadmin-pve-disk-health-monitoring-plain.html' => {
92 title
=> "Disk Health Monitoring",
93 category
=> $cat_refdoc,
95 'sysadmin-local-lvm-plain.html' => {
96 title
=> "Logical Volume Manager (LVM)",
97 category
=> $cat_refdoc,
99 'sysadmin-pve-package-repos-plain.html' => {
100 title
=> "Package Repositories",
101 category
=> $cat_refdoc,
103 'sysadmin-system-software-updates-plain.html' => {
104 title
=> "System Software Updates",
105 category
=> $cat_refdoc,
107 'chapter-sysadmin-plain.html' => {
108 title
=> "Host System Administration",
109 category
=> $cat_refdoc,
111 'chapter-pct-plain.html' => {
112 title
=> "Linux Container",
113 category
=> $cat_refdoc,
115 'chapter-pmxcfs-plain.html' => {
116 title
=> "Proxmox Cluster File System (pmxcfs)",
117 category
=> $cat_refdoc,
119 'chapter-pve-bibliography-plain.html' => {
120 title
=> "Bibliography",
121 category
=> $cat_refdoc,
123 'chapter-pvecm-plain.html' => {
124 title
=> "Cluster Manager",
125 category
=> $cat_refdoc,
127 'chapter-pve-faq-plain.html' => {
129 category
=> $cat_refdoc,
131 'chapter-pve-firewall-plain.html' => {
133 category
=> $cat_refdoc,
135 'chapter-pvesm-plain.html' => {
137 category
=> $cat_refdoc,
139 'chapter-pveum-plain.html' => {
140 title
=> "User Management",
141 category
=> $cat_refdoc,
143 'chapter-qm-plain.html' => {
144 title
=> "Qemu/KVM Virtual Machines",
145 category
=> $cat_refdoc,
147 'chapter-vzdump-plain.html' => {
148 title
=> "Backup and Restore",
149 category
=> $cat_refdoc,
151 'qm.conf.5-plain.html' => {
152 title
=> "Manual: vm.conf",
153 category
=> $cat_refdoc,
155 'pct.conf.5-plain.html' => {
156 title
=> "Manual: pct.conf",
157 category
=> $cat_refdoc,
159 'datacenter.cfg.5-plain.html' => {
160 title
=> "Manual: datacenter.cfg",
161 category
=> $cat_refdoc,
164 'pve-storage-dir-plain.html' => {
165 title
=> "Storage: Directory",
166 category
=> $cat_refdoc,
168 'pve-storage-glusterfs-plain.html' => {
169 title
=> "Storage: GlusterFS",
170 category
=> $cat_refdoc,
172 'pve-storage-iscsidirect-plain.html' => {
173 title
=> "Storage: User Mode iSCSI",
174 category
=> $cat_refdoc,
176 'pve-storage-iscsi-plain.html' => {
177 title
=> "Storage: iSCSI",
178 category
=> $cat_refdoc,
180 'pve-storage-lvm-plain.html' => {
181 title
=> "Storage: LVM",
182 category
=> $cat_refdoc,
184 'pve-storage-lvmthin-plain.html' => {
185 title
=> "Storage: LVM Thin",
186 category
=> $cat_refdoc,
188 'pve-storage-nfs-plain.html' => {
189 title
=> "Storage: NFS",
190 category
=> $cat_refdoc,
192 'pve-storage-rbd-plain.html' => {
193 title
=> "Storage: RBD",
194 category
=> $cat_refdoc,
196 'pve-storage-zfspool-plain.html' => {
197 title
=> "Storage: ZFS",
198 category
=> $cat_refdoc,
202 #update_page("testpage1", $filename, $d->{category});
204 foreach my $filename (keys %$docs) {
205 my $path = "/usr/share/pve-docs/$filename";
206 die "no such file '$path'" if ! -f
$path;
207 my $d = $docs->{$filename};
208 update_page
($d->{title
}, $filename, $d->{category
});
211 # also update 'Get support' page, because this is used since a long
212 # time and is referenced from outside
213 update_page
("Get support", 'sysadmin-getting-help-plain.html', 'HOWTO');