| 1234567891011121314151617181920212223242526272829303132333435363738 |
- # Return associative array of fields from control file $file.
- $vardir = $ARGV[0];
- sub slurp
- {
- local ($file) = @_;
- local (%controlinfo);
- local (%ci);
- open (CONTROL, $file) || return 1;
- # Get entire text of control file.
- undef $/; $* = 1; $_ = <CONTROL>;
- # Join lines.
- s/\n[ \t]+/ /g;
- # Split on fields.
- %controlinfo = ('PRESTUFF', split (/^(\S+):\s*/));
- $/ = "\n"; $* = 0;
- foreach $key (keys %controlinfo)
- {
- $key2 = $key; $key2 =~ y/A-Z/a-z/;
- chop ($controlinfo{$key}) if (/\n/);
- $ci{$key2} = $controlinfo{$key};
- }
- return %ci;
- }
- $file = "$vardir/methods/hd/hd.status";
- %info = slurp($file);
- $dpkg = "dpkg --admindir $vardir --auto --unpack --no-auto-select ";
- $dpkg .= "--refuse downgrade --skip-same-version";
- system("$dpkg $info{'debdir'}");
|