fixed build systes, add verbose flag to chmod, chown, chgrp
This commit is contained in:
parent
c90681ba2a
commit
76d1f36797
6
build.sh
6
build.sh
|
@ -4,7 +4,7 @@ if [ -z $PROJECT_DIR ]; then
|
|||
fi
|
||||
|
||||
if [ -z $CFLAGS ]; then
|
||||
CFLAGS="-pedantic -s -Os -flto -Werror -Wall -Wextra -I$PROJECT_DIR -I$PROJECT_DIR/include/libmu -lm"
|
||||
CFLAGS="-pedantic -s -Os -flto -Werror -Wall -Wextra"
|
||||
fi
|
||||
|
||||
if [ -z $CC ]; then
|
||||
|
@ -25,9 +25,11 @@ for project in $projects; do
|
|||
for i in $p; do
|
||||
cd $PROJECT_DIR/$i
|
||||
echo " * Compile" $i
|
||||
env CC=$CC CFLAGS="$CFLAGS" OUTPUT="-o $PROJECT_DIR"/bin/$(basename $i) ./build.sh
|
||||
env CC=$CC CFLAGS="$CFLAGS -I$PROJECT_DIR -I$PROJECT_DIR/include/libmu -lm" OUTPUT="-o $PROJECT_DIR"/bin/$(basename $i) ./build.sh
|
||||
cd $PROJECT_DIR
|
||||
done
|
||||
echo
|
||||
done
|
||||
done
|
||||
|
||||
chmod -vR a+x bin/
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
unsigned int r_flag;
|
||||
char *f_flag = "chgrp";
|
||||
unsigned int H_flag;
|
||||
unsigned int v_flag;
|
||||
|
||||
int change(const char *path, void *p) {
|
||||
struct group *grp = (struct group *)p;
|
||||
|
@ -27,13 +28,15 @@ int change(const char *path, void *p) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (v_flag)
|
||||
printf("chgrp: %s: changed group to %s\n", path, grp->gr_name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
int opt;
|
||||
while ((opt = getopt(argc, argv, "RfH")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "RfHv")) != -1) {
|
||||
switch (opt) {
|
||||
case 'R':
|
||||
r_flag = 1;
|
||||
|
@ -47,8 +50,12 @@ int main(int argc, char **argv) {
|
|||
H_flag = 1;
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
v_flag = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("chgrp [group] [file1 file2...]\n\t[-H if a command line argument is a symbolic link]\n\t[-R Recursive] [-f Silent]\n");
|
||||
printf("chgrp [group] [file1 file2...]\n\t[-H if a command line argument is a symbolic link]\n\t[-R Recursive] [-f Silent]\n\t[-v Verbose]\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
unsigned int r_flag;
|
||||
char *f_flag = "chmod";
|
||||
unsigned int H_flag;
|
||||
unsigned int v_flag;
|
||||
|
||||
int change(const char *file, void *p) {
|
||||
char *mode_arg = (char *)p;
|
||||
|
@ -28,6 +29,9 @@ int change(const char *file, void *p) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (v_flag)
|
||||
printf("chmod: %s: changed mode to %d\n", file, mode );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -47,7 +51,7 @@ int main(int argc, char **argv) {
|
|||
}
|
||||
|
||||
int opt;
|
||||
while ((opt = getopt(argc, argv, "RfH")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "RfHv")) != -1) {
|
||||
switch (opt) {
|
||||
case 'R':
|
||||
r_flag = 1;
|
||||
|
@ -61,8 +65,12 @@ int main(int argc, char **argv) {
|
|||
H_flag = 1;
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
v_flag = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("chmod [ugoa]{+|-}[rwxXst] / [0 - 777] [file1 file2...]\n\t[-H If a command line argument is a symbolic link]\n\t[-R Recursive] [-f Silent]\n");
|
||||
printf("chmod [ugoa]{+|-}[rwxXst] / [0 - 777] [file1 file2...]\n\t[-H If a command line argument is a symbolic link]\n\t[-R Recursive] [-f Silent]\n\t[-v Verbose]\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,19 +14,24 @@
|
|||
unsigned int r_flag;
|
||||
char *f_flag = "chown";
|
||||
unsigned int H_flag;
|
||||
unsigned int v_flag;
|
||||
int (*chown_func)(const char *pathname, uid_t owner, gid_t group);
|
||||
long gid;
|
||||
long uid;
|
||||
|
||||
int change(const char *file, void *p) {
|
||||
UNUSED(p);
|
||||
if (chown_func(file, uid, gid)) {
|
||||
int change(const char *path, void *p) {
|
||||
char *name = (char *)p;
|
||||
|
||||
if (chown_func(path, uid, gid)) {
|
||||
if (f_flag)
|
||||
fprintf(stderr, "chown: unable to chown %s: %s\n", file, strerror(errno));
|
||||
fprintf(stderr, "chown: unable to chown %s: %s\n", path, strerror(errno));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (v_flag)
|
||||
printf("chown: %s: changed to %s\n", path, name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -74,7 +79,7 @@ int main(int argc, char **argv) {
|
|||
chown_func = lchown;
|
||||
|
||||
int opt;
|
||||
while ((opt = getopt(argc, argv, "RfH")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "RfHv")) != -1) {
|
||||
switch (opt) {
|
||||
case 'R':
|
||||
r_flag = 1;
|
||||
|
@ -89,8 +94,12 @@ int main(int argc, char **argv) {
|
|||
chown_func = chown;
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
v_flag = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("chown USER[:[GRP]] [file1 file2...]\n\t[-H If a command line argument is a symbolic link]\n\t[-R Recursive] [-f Silent]\n");
|
||||
printf("chown USER[:[GRP]] [file1 file2...]\n\t[-H If a command line argument is a symbolic link]\n\t[-R Recursive] [-f Silent]\n\t[-v Verbose]\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -110,12 +119,12 @@ int main(int argc, char **argv) {
|
|||
int ret = 0;
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (r_flag) {
|
||||
if (mu_recurse(f_flag, H_flag, argv[i], NULL, change, change))
|
||||
if (mu_recurse(f_flag, H_flag, argv[i], argv[0], change, change))
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
else
|
||||
change(argv[i], NULL);
|
||||
change(argv[i], argv[0]);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
Loading…
Reference in New Issue