source: keep-skel/trunk/fuentes/keep-skel.install/usr/bin/keep-skel @ 183

Last change on this file since 183 was 183, checked in by hectorgh, 5 years ago

adding project files

  • Property svn:executable set to *
File size: 1.3 KB
Line 
1#!/usr/bin/perl -w
2
3use strict;
4use warnings;
5use Getopt::Long;
6use File::Find;
7use File::Copy;
8
9# Variables
10
11my $results;
12my $verbose;
13my @skelfiles;
14my @users;
15my $user;
16my $force;
17my $num_args;
18
19
20sub show_usage()
21{
22        print "[USAGE]: keep-skel [--user] [--force]\n";
23        exit;
24}
25
26sub wanted()
27{
28        # Foreach file in /etc/skel/
29        # copy on $HOME directory if not exists
30
31        # Destination file
32        my $destinationFile="";
33        $destinationFile=$File::Find::name;
34        $destinationFile =~ s/\/etc\/skel/\/home\/$user/g;
35       
36        # If it is a directory....
37        if ( -d $File::Find::name ) 
38        {
39                unless ( -d $destinationFile)
40                {
41                        print "[DEBUG] This is a directory\n";
42                        system("mkdir -p $destinationFile");
43                }
44                else
45                {
46                        print "[DEBUG] Skipping $File::Find::name\n";
47                }
48        }
49        elsif ( -e $File::Find::name ) 
50        {
51                unless ( -e $destinationFile and not $force)
52                {
53                        print "This is a file\n";
54                        copy($File::Find::name,$destinationFile) or die "[DEBUG] Copy failed: $!";     
55                }
56                else
57                {
58                        print "[DEBUG] Skipping $File::Find::name\n";
59                }
60        }
61        else
62        {
63                die "[DEBUG] : What the hell is this? --> $File::Find::name\n";
64        }       
65       
66}
67
68
69# MAIN
70
71
72$num_args= $#ARGV +1;
73
74if ( $num_args == 0) 
75{
76        show_usage()
77} 
78
79$results = GetOptions("user=s" =>\@users,
80                      "force" =>\$force,       
81                      "verbose"=>\$verbose
82                        );
83
84foreach (@users)
85{
86        $user=$_;
87        find(\&wanted, "/etc/skel/");
88
89} 
Note: See TracBrowser for help on using the repository browser.