git.annexia.org
/
libguestfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
extra tests: Split up and reorder tests more logically.
[libguestfs.git]
/
fish
/
inspect.c
diff --git
a/fish/inspect.c
b/fish/inspect.c
index
2817112
..
98329ee
100644
(file)
--- a/
fish/inspect.c
+++ b/
fish/inspect.c
@@
-13,7
+13,7
@@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139,
USA.
+ * Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA.
*/
#include <config.h>
*/
#include <config.h>
@@
-28,8
+28,6
@@
#include "options.h"
#include "options.h"
-static void do_decrypt (void);
-
/* Global that saves the root device between inspect_mount and
* print_inspect_prompt.
*/
/* Global that saves the root device between inspect_mount and
* print_inspect_prompt.
*/
@@
-45,14
+43,14
@@
free_strings (char **argv)
free (argv);
}
free (argv);
}
-static
in
t
+static
size_
t
count_strings (char *const *argv)
{
count_strings (char *const *argv)
{
-
int c
;
+
size_t i
;
- for (
c = 0; argv[c]; ++c
)
+ for (
i = 0; argv[i]; ++i
)
;
;
- return
c
;
+ return
i
;
}
static int
}
static int
@@
-75,7
+73,13
@@
compare_keys (const void *p1, const void *p2)
void
inspect_mount (void)
{
void
inspect_mount (void)
{
- do_decrypt ();
+ if (live) {
+ fprintf (stderr, _("%s: don't use --live and -i options together\n"),
+ program_name);
+ exit (EXIT_FAILURE);
+ }
+
+ inspect_do_decrypt ();
char **roots = guestfs_inspect_os (g);
if (roots == NULL)
char **roots = guestfs_inspect_os (g);
if (roots == NULL)
@@
-84,18
+88,26
@@
inspect_mount (void)
if (roots[0] == NULL) {
fprintf (stderr, _("%s: no operating system was found on this disk\n"),
program_name);
if (roots[0] == NULL) {
fprintf (stderr, _("%s: no operating system was found on this disk\n"),
program_name);
+ free_strings (roots);
exit (EXIT_FAILURE);
}
if (roots[1] != NULL) {
fprintf (stderr, _("%s: multi-boot operating systems are not supported by the -i option\n"),
program_name);
exit (EXIT_FAILURE);
}
if (roots[1] != NULL) {
fprintf (stderr, _("%s: multi-boot operating systems are not supported by the -i option\n"),
program_name);
+ free_strings (roots);
exit (EXIT_FAILURE);
}
root = roots[0];
free (roots);
exit (EXIT_FAILURE);
}
root = roots[0];
free (roots);
+ inspect_mount_root (root);
+}
+
+void
+inspect_mount_root (const char *root)
+{
char **mountpoints = guestfs_inspect_get_mountpoints (g, root);
if (mountpoints == NULL)
exit (EXIT_FAILURE);
char **mountpoints = guestfs_inspect_get_mountpoints (g, root);
if (mountpoints == NULL)
exit (EXIT_FAILURE);
@@
-107,6
+119,7
@@
inspect_mount (void)
compare_keys_len);
size_t i;
compare_keys_len);
size_t i;
+ size_t mount_errors = 0;
for (i = 0; mountpoints[i] != NULL; i += 2) {
int r;
if (!read_only)
for (i = 0; mountpoints[i] != NULL; i += 2) {
int r;
if (!read_only)
@@
-114,10
+127,14
@@
inspect_mount (void)
else
r = guestfs_mount_ro (g, mountpoints[i+1], mountpoints[i]);
if (r == -1)
else
r = guestfs_mount_ro (g, mountpoints[i+1], mountpoints[i]);
if (r == -1)
-
exit (EXIT_FAILURE)
;
+
mount_errors++
;
}
free_strings (mountpoints);
}
free_strings (mountpoints);
+
+ if (mount_errors)
+ fprintf (stderr, _("%s: some filesystems could not be mounted (ignored)\n"),
+ program_name);
}
/* This function is called only if the above function was called,
}
/* This function is called only if the above function was called,
@@
-127,7
+144,7
@@
void
print_inspect_prompt (void)
{
char *name = guestfs_inspect_get_product_name (g, root);
print_inspect_prompt (void)
{
char *name = guestfs_inspect_get_product_name (g, root);
- if (STRNEQ (name, "unknown"))
+ if (
name &&
STRNEQ (name, "unknown"))
printf (_("Operating system: %s\n"), name);
free (name);
printf (_("Operating system: %s\n"), name);
free (name);
@@
-178,8
+195,8
@@
make_mapname (const char *device, char *mapname, size_t len)
* for Fedora whole-disk encryption. WIP to make this work for other
* encryption schemes.
*/
* for Fedora whole-disk encryption. WIP to make this work for other
* encryption schemes.
*/
-
static
void
-do_decrypt (void)
+void
+
inspect_
do_decrypt (void)
{
char **partitions = guestfs_list_partitions (g);
if (partitions == NULL)
{
char **partitions = guestfs_list_partitions (g);
if (partitions == NULL)