+static void AddSource(NSDictionary *source) {
+ [Sources_ setObject:source forKey:[NSString stringWithFormat:@"%@:%@:%@", [source objectForKey:@"Type"], [source objectForKey:@"URI"], [source objectForKey:@"Distribution"]]];
+ Changed_ = true;
+}
+
+static void AddSource(NSString *href, NSString *distribution, NSArray *sections = nil) {
+ AddSource([NSMutableDictionary dictionaryWithObjectsAndKeys:
+ @"deb", @"Type",
+ href, @"URI",
+ distribution, @"Distribution",
+ sections ?: [NSMutableArray array], @"Sections",
+ nil]);
+}
+
+static void WriteSources() {
+ FILE *file(fopen("/etc/apt/sources.list.d/cydia.list", "w"));
+ _assert(file != NULL);
+
+ fprintf(file, "deb http://%s/ tangelo main\n",
+ [CydiaSource_ UTF8String]
+ );
+
+ for (NSString *key in [Sources_ allKeys]) {
+ NSDictionary *source([Sources_ objectForKey:key]);
+
+ NSArray *sections([source objectForKey:@"Sections"] ?: [NSArray array]);
+
+ fprintf(file, "%s %s %s%s%s\n",
+ [[source objectForKey:@"Type"] UTF8String],
+ [[source objectForKey:@"URI"] UTF8String],
+ [[source objectForKey:@"Distribution"] UTF8String],
+ [sections count] == 0 ? "" : " ",
+ [[sections componentsJoinedByString:@" "] UTF8String]
+ );
+ }
+
+ fclose(file);
+}
+