Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @autoreleasepool {
- while(i != packageList.packageIDs.count) {
- object = [packageList.packageIDs objectAtIndex:i];
- if([self returnOfCommand:@"/usr/bin/dpkg" withArguments:@[@"--compare-versions", [self currentVersionOfPackage:object], @"lt", [self versionOfPackage:object]]] == 0) [packagesToUpdate addObject:object];
- i++;
- }
- }
- - (NSString *)versionOfPackage:(NSString *)package {
- for (id file in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/var/mobile/Media/Icy/Repos/updates" error:nil]) {
- NSString *thing = [[IcyUniversalMethods runCommandWithOutput:@"/bin/grep" withArguments:@[[NSString stringWithFormat:@"\\Package: %@$",package], @"-A", @"1", @"-w", [@"/var/mobile/Media/Icy/Repos/updates/" stringByAppendingString:file]] errors:NO] stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"Package: %@\nVersion: ",package] withString:@""];
- NSMutableArray *array = [[thing componentsSeparatedByString:@"\n"] mutableCopy];
- for (NSString *object in array) if(object.length == 0) [array removeObject:object];
- while(array.count != 1) {
- if (array.count == 0) break;
- if(array.count >= 2 && [self returnOfCommand:@"/usr/bin/dpkg" withArguments:@[@"--compare-versions", [array objectAtIndex:0], @"gt", [array objectAtIndex:1]]] == 0) [array removeObjectAtIndex:1];
- else [array removeObjectAtIndex:0];
- }
- if(array.count > 0) return [array firstObject];
- }
- return @"";
- }
- - (NSString *)currentVersionOfPackage:(NSString *)package {
- @autoreleasepool {
- FILE *file = fopen("/var/lib/dpkg/status", "r");
- char str[128];
- BOOL shouldReturn = NO;
- while(fgets(str, 128, file) != NULL) {
- if (strcmp(str, [[NSString stringWithFormat:@"Package: %@\n",package] UTF8String]) == 0) shouldReturn = YES;
- if(shouldReturn && strstr(str, "Version:")) break;
- }
- fclose(file);
- return [[[NSString stringWithCString:str encoding:NSUTF8StringEncoding] stringByReplacingOccurrencesOfString:@"Version: " withString:@""] stringByReplacingOccurrencesOfString:@"\n" withString:@""];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement