Advertisement
rotrevrep

add-apt-repository (c)

Aug 14th, 2013
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 22.78 KB | None | 0 0
  1. /* aar.c generated by valac 0.18.1, the Vala compiler
  2.  * generated from aar.vala, do not modify */
  3.  
  4.  
  5. #include <glib.h>
  6. #include <glib-object.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9. #include <glib/gstdio.h>
  10. #include <libsoup/soup.h>
  11. #include <libxml/HTMLparser.h>
  12. #include <libxml/HTMLtree.h>
  13. #include <libxml/xpath.h>
  14. #include <stdio.h>
  15. #include <libxml/tree.h>
  16.  
  17. #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
  18. #define _g_free0(var) (var = (g_free (var), NULL))
  19. #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
  20. #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
  21. #define _xmlXPathFreeContext0(var) ((var == NULL) ? NULL : (var = (xmlXPathFreeContext (var), NULL)))
  22. #define _htmlFreeParserCtxt0(var) ((var == NULL) ? NULL : (var = (htmlFreeParserCtxt (var), NULL)))
  23. #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
  24.  
  25. typedef enum  {
  26.     IO_ERROR_Null
  27. } IOError;
  28. #define IO_ERROR io_error_quark ()
  29.  
  30.  
  31. GQuark io_error_quark (void);
  32. void io_download_file (const gchar* uri, const gchar* dest_file, GError** error);
  33. guint8* io_download_data (const gchar* uri, int* result_length1);
  34. static guint8* _vala_array_dup1 (guint8* self, int length);
  35. gchar* io_download_string (const gchar* uri);
  36. void _vala_main (gchar** args, int args_length1);
  37. static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
  38. static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
  39. static gint _vala_array_length (gpointer array);
  40.  
  41.  
  42. GQuark io_error_quark (void) {
  43.     return g_quark_from_static_string ("io_error-quark");
  44. }
  45.  
  46.  
  47. void io_download_file (const gchar* uri, const gchar* dest_file, GError** error) {
  48.     const gchar* _tmp0_;
  49.     const gchar* _tmp2_;
  50.     gint _tmp3_ = 0;
  51.     guint8* _tmp4_ = NULL;
  52.     guint8* data;
  53.     gint data_length1;
  54.     gint _data_size_;
  55.     guint8* _tmp5_;
  56.     gint _tmp5__length1;
  57.     const gchar* _tmp7_;
  58.     guint8* _tmp8_;
  59.     gint _tmp8__length1;
  60.     GError * _inner_error_ = NULL;
  61.     g_return_if_fail (uri != NULL);
  62.     g_return_if_fail (dest_file != NULL);
  63.     _tmp0_ = dest_file;
  64.     if (_tmp0_ == NULL) {
  65.         GError* _tmp1_;
  66.         _tmp1_ = g_error_new_literal (IO_ERROR, IO_ERROR_Null, "name of destination cannot be null");
  67.         _inner_error_ = _tmp1_;
  68.         if (_inner_error_->domain == IO_ERROR) {
  69.             g_propagate_error (error, _inner_error_);
  70.             return;
  71.         } else {
  72.             g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  73.             g_clear_error (&_inner_error_);
  74.             return;
  75.         }
  76.     }
  77.     _tmp2_ = uri;
  78.     _tmp4_ = io_download_data (_tmp2_, &_tmp3_);
  79.     data = _tmp4_;
  80.     data_length1 = _tmp3_;
  81.     _data_size_ = data_length1;
  82.     _tmp5_ = data;
  83.     _tmp5__length1 = data_length1;
  84.     if (_tmp5__length1 < 1) {
  85.         GError* _tmp6_;
  86.         _tmp6_ = g_error_new_literal (IO_ERROR, IO_ERROR_Null, "data length is too short or null");
  87.         _inner_error_ = _tmp6_;
  88.         if (_inner_error_->domain == IO_ERROR) {
  89.             g_propagate_error (error, _inner_error_);
  90.             data = (g_free (data), NULL);
  91.             return;
  92.         } else {
  93.             data = (g_free (data), NULL);
  94.             g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  95.             g_clear_error (&_inner_error_);
  96.             return;
  97.         }
  98.     }
  99.     _tmp7_ = dest_file;
  100.     _tmp8_ = data;
  101.     _tmp8__length1 = data_length1;
  102.     g_file_set_contents (_tmp7_, (const char*) _tmp8_, (size_t) _tmp8__length1, &_inner_error_);
  103.     if (_inner_error_ != NULL) {
  104.         if (_inner_error_->domain == IO_ERROR) {
  105.             g_propagate_error (error, _inner_error_);
  106.             data = (g_free (data), NULL);
  107.             return;
  108.         } else {
  109.             data = (g_free (data), NULL);
  110.             g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  111.             g_clear_error (&_inner_error_);
  112.             return;
  113.         }
  114.     }
  115.     data = (g_free (data), NULL);
  116. }
  117.  
  118.  
  119. static guint8* _vala_array_dup1 (guint8* self, int length) {
  120.     return g_memdup (self, length * sizeof (guint8));
  121. }
  122.  
  123.  
  124. guint8* io_download_data (const gchar* uri, int* result_length1) {
  125.     guint8* result = NULL;
  126.     SoupSessionSync* _tmp0_;
  127.     SoupSessionSync* session;
  128.     const gchar* _tmp1_;
  129.     SoupMessage* _tmp2_;
  130.     SoupMessage* message;
  131.     SoupMessageBody* _tmp3_;
  132.     guint8* _tmp4_;
  133.     gint _tmp4__length1;
  134.     guint8* _tmp5_;
  135.     gint _tmp5__length1;
  136.     guint8* _tmp6_;
  137.     gint _tmp6__length1;
  138.     g_return_val_if_fail (uri != NULL, NULL);
  139.     _tmp0_ = (SoupSessionSync*) soup_session_sync_new ();
  140.     session = _tmp0_;
  141.     _tmp1_ = uri;
  142.     _tmp2_ = soup_message_new ("GET", _tmp1_);
  143.     message = _tmp2_;
  144.     soup_session_send_message ((SoupSession*) session, message);
  145.     _tmp3_ = message->response_body;
  146.     _tmp4_ = _tmp3_->data;
  147.     _tmp4__length1 = (gint) _tmp3_->length;
  148.     _tmp5_ = (_tmp4_ != NULL) ? _vala_array_dup1 (_tmp4_, _tmp4__length1) : ((gpointer) _tmp4_);
  149.     _tmp5__length1 = _tmp4__length1;
  150.     _tmp6_ = _tmp5_;
  151.     _tmp6__length1 = _tmp5__length1;
  152.     if (result_length1) {
  153.         *result_length1 = _tmp6__length1;
  154.     }
  155.     result = _tmp6_;
  156.     _g_object_unref0 (message);
  157.     _g_object_unref0 (session);
  158.     return result;
  159. }
  160.  
  161.  
  162. gchar* io_download_string (const gchar* uri) {
  163.     gchar* result = NULL;
  164.     const gchar* _tmp0_;
  165.     gint _tmp1_ = 0;
  166.     guint8* _tmp2_ = NULL;
  167.     g_return_val_if_fail (uri != NULL, NULL);
  168.     _tmp0_ = uri;
  169.     _tmp2_ = io_download_data (_tmp0_, &_tmp1_);
  170.     result = (gchar*) _tmp2_;
  171.     return result;
  172. }
  173.  
  174.  
  175. static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
  176.     gint result = 0;
  177.     gint _tmp0_;
  178.     const gchar* _tmp1_;
  179.     gchar* _tmp2_ = NULL;
  180.     gchar* _result_;
  181.     gchar* _tmp3_;
  182.     g_return_val_if_fail (self != NULL, 0);
  183.     g_return_val_if_fail (needle != NULL, 0);
  184.     _tmp0_ = start_index;
  185.     _tmp1_ = needle;
  186.     _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
  187.     _result_ = _tmp2_;
  188.     _tmp3_ = _result_;
  189.     if (_tmp3_ != NULL) {
  190.         gchar* _tmp4_;
  191.         _tmp4_ = _result_;
  192.         result = (gint) (_tmp4_ - ((gchar*) self));
  193.         return result;
  194.     } else {
  195.         result = -1;
  196.         return result;
  197.     }
  198. }
  199.  
  200.  
  201. static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
  202.     gchar* result = NULL;
  203.     GError * _inner_error_ = NULL;
  204.     g_return_val_if_fail (self != NULL, NULL);
  205.     g_return_val_if_fail (old != NULL, NULL);
  206.     g_return_val_if_fail (replacement != NULL, NULL);
  207.     {
  208.         const gchar* _tmp0_;
  209.         gchar* _tmp1_ = NULL;
  210.         gchar* _tmp2_;
  211.         GRegex* _tmp3_;
  212.         GRegex* _tmp4_;
  213.         GRegex* regex;
  214.         GRegex* _tmp5_;
  215.         const gchar* _tmp6_;
  216.         gchar* _tmp7_ = NULL;
  217.         gchar* _tmp8_;
  218.         _tmp0_ = old;
  219.         _tmp1_ = g_regex_escape_string (_tmp0_, -1);
  220.         _tmp2_ = _tmp1_;
  221.         _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
  222.         _tmp4_ = _tmp3_;
  223.         _g_free0 (_tmp2_);
  224.         regex = _tmp4_;
  225.         if (_inner_error_ != NULL) {
  226.             if (_inner_error_->domain == G_REGEX_ERROR) {
  227.                 goto __catch0_g_regex_error;
  228.             }
  229.             g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  230.             g_clear_error (&_inner_error_);
  231.             return NULL;
  232.         }
  233.         _tmp5_ = regex;
  234.         _tmp6_ = replacement;
  235.         _tmp7_ = g_regex_replace_literal (_tmp5_, self, (gssize) (-1), 0, _tmp6_, 0, &_inner_error_);
  236.         _tmp8_ = _tmp7_;
  237.         if (_inner_error_ != NULL) {
  238.             _g_regex_unref0 (regex);
  239.             if (_inner_error_->domain == G_REGEX_ERROR) {
  240.                 goto __catch0_g_regex_error;
  241.             }
  242.             _g_regex_unref0 (regex);
  243.             g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  244.             g_clear_error (&_inner_error_);
  245.             return NULL;
  246.         }
  247.         result = _tmp8_;
  248.         _g_regex_unref0 (regex);
  249.         return result;
  250.     }
  251.     goto __finally0;
  252.     __catch0_g_regex_error:
  253.     {
  254.         GError* e = NULL;
  255.         e = _inner_error_;
  256.         _inner_error_ = NULL;
  257.         g_assert_not_reached ();
  258.         _g_error_free0 (e);
  259.     }
  260.     __finally0:
  261.     if (_inner_error_ != NULL) {
  262.         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  263.         g_clear_error (&_inner_error_);
  264.         return NULL;
  265.     }
  266. }
  267.  
  268.  
  269. static gchar* g_file_stream_read_line (FILE* self) {
  270.     gchar* result = NULL;
  271.     gint c = 0;
  272.     GString* ret;
  273.     GString* _tmp7_;
  274.     g_return_val_if_fail (self != NULL, NULL);
  275.     ret = NULL;
  276.     while (TRUE) {
  277.         gint _tmp0_ = 0;
  278.         gint _tmp1_;
  279.         GString* _tmp2_;
  280.         gint _tmp4_;
  281.         GString* _tmp5_;
  282.         gint _tmp6_;
  283.         _tmp0_ = fgetc (self);
  284.         c = _tmp0_;
  285.         _tmp1_ = c;
  286.         if (!(_tmp1_ != EOF)) {
  287.             break;
  288.         }
  289.         _tmp2_ = ret;
  290.         if (_tmp2_ == NULL) {
  291.             GString* _tmp3_;
  292.             _tmp3_ = g_string_new ("");
  293.             _g_string_free0 (ret);
  294.             ret = _tmp3_;
  295.         }
  296.         _tmp4_ = c;
  297.         if (_tmp4_ == ((gint) '\n')) {
  298.             break;
  299.         }
  300.         _tmp5_ = ret;
  301.         _tmp6_ = c;
  302.         g_string_append_c ((GString*) _tmp5_, (gchar) _tmp6_);
  303.     }
  304.     _tmp7_ = ret;
  305.     if (_tmp7_ == NULL) {
  306.         result = NULL;
  307.         _g_string_free0 (ret);
  308.         return result;
  309.     } else {
  310.         GString* _tmp8_;
  311.         const gchar* _tmp9_;
  312.         gchar* _tmp10_;
  313.         _tmp8_ = ret;
  314.         _tmp9_ = ((GString*) _tmp8_)->str;
  315.         _tmp10_ = g_strdup (_tmp9_);
  316.         result = _tmp10_;
  317.         _g_string_free0 (ret);
  318.         return result;
  319.     }
  320.     _g_string_free0 (ret);
  321. }
  322.  
  323.  
  324. void _vala_main (gchar** args, int args_length1) {
  325.     gchar** _tmp0_;
  326.     gint _tmp0__length1;
  327.     const gchar* _tmp1_;
  328.     gint _tmp2_ = 0;
  329.     gchar** _tmp3_;
  330.     gint _tmp3__length1;
  331.     gchar** _tmp4_;
  332.     gint _tmp4__length1;
  333.     const gchar* _tmp5_;
  334.     gchar** _tmp6_;
  335.     gchar** _tmp7_ = NULL;
  336.     gchar** t;
  337.     gint t_length1;
  338.     gint _t_size_;
  339.     gchar** _tmp8_;
  340.     gint _tmp8__length1;
  341.     const gchar* _tmp9_;
  342.     gchar** _tmp10_;
  343.     gchar** _tmp11_ = NULL;
  344.     gchar** _tmp12_;
  345.     gint _tmp12__length1;
  346.     const gchar* _tmp13_;
  347.     gchar* _tmp14_;
  348.     gchar* _tmp15_;
  349.     gchar* maintener;
  350.     gchar** _tmp16_;
  351.     gint _tmp16__length1;
  352.     const gchar* _tmp17_;
  353.     gchar* _tmp18_;
  354.     gchar* dir;
  355.     gchar** _tmp19_;
  356.     gint _tmp19__length1;
  357.     gchar** _tmp20_;
  358.     gint _tmp20__length1;
  359.     const gchar* _tmp21_;
  360.     gchar* _tmp22_;
  361.     gchar* _tmp23_;
  362.     gchar** _tmp24_;
  363.     gint _tmp24__length1;
  364.     gchar** _tmp25_;
  365.     gint _tmp25__length1;
  366.     const gchar* _tmp26_;
  367.     gchar* _tmp27_ = NULL;
  368.     gchar* _tmp28_;
  369.     gchar** _tmp29_;
  370.     gint _tmp29__length1;
  371.     gchar* _tmp30_ = NULL;
  372.     gchar* ppa;
  373.     const gchar* _tmp31_;
  374.     htmlParserCtxt* _tmp32_;
  375.     htmlParserCtxt* ctx;
  376.     htmlParserCtxt* _tmp33_;
  377.     htmlParserCtxt* _tmp34_;
  378.     xmlDoc* _tmp35_ = NULL;
  379.     xmlDoc* doc;
  380.     xmlDoc* _tmp36_;
  381.     xmlXPathContext* _tmp37_;
  382.     xmlXPathContext* c;
  383.     xmlXPathContext* _tmp38_;
  384.     xmlXPathObject* _tmp39_ = NULL;
  385.     xmlXPathObject* o;
  386.     xmlXPathObject* _tmp40_;
  387.     xmlNodeSet* _tmp41_;
  388.     xmlNodeSet* nodeset;
  389.     FILE* _tmp42_;
  390.     xmlNodeSet* _tmp43_;
  391.     xmlNode* _tmp44_ = NULL;
  392.     gchar* _tmp45_ = NULL;
  393.     gchar* _tmp46_;
  394.     const gchar* _tmp47_;
  395.     gchar* _tmp48_;
  396.     gchar* _tmp49_;
  397.     gchar* _tmp50_;
  398.     gchar* _tmp51_;
  399.     const gchar* _tmp52_;
  400.     gchar* _tmp53_;
  401.     gchar* _tmp54_;
  402.     gchar* _tmp55_;
  403.     gchar* _tmp56_;
  404.     gchar** _tmp57_;
  405.     gint _tmp57__length1;
  406.     const gchar* _tmp58_;
  407.     gchar* _tmp59_;
  408.     gchar* _tmp60_;
  409.     gchar* _tmp61_;
  410.     gchar* _tmp62_;
  411.     gchar* _tmp63_;
  412.     gchar* _tmp64_;
  413.     const gchar* _tmp65_;
  414.     gchar* _tmp66_;
  415.     gchar* _tmp67_;
  416.     gchar* _tmp68_;
  417.     gchar* _tmp69_;
  418.     const gchar* _tmp70_;
  419.     gchar* _tmp71_;
  420.     gchar* _tmp72_;
  421.     gchar* _tmp73_;
  422.     gchar* _tmp74_;
  423.     gchar** _tmp75_;
  424.     gint _tmp75__length1;
  425.     const gchar* _tmp76_;
  426.     gchar* _tmp77_;
  427.     gchar* _tmp78_;
  428.     gchar* _tmp79_;
  429.     gchar* _tmp80_;
  430.     gchar* s;
  431.     const gchar* _tmp81_;
  432.     gchar* _tmp82_;
  433.     gchar* _tmp83_;
  434.     gchar* _tmp84_;
  435.     gchar* _tmp85_;
  436.     const gchar* _tmp86_;
  437.     gchar* _tmp87_;
  438.     gchar* _tmp88_;
  439.     gchar* _tmp89_;
  440.     gchar* _tmp90_;
  441.     const gchar* _tmp91_;
  442.     FILE* _tmp92_;
  443.     FILE* _tmp93_;
  444.     gchar* _tmp94_ = NULL;
  445.     gchar* option;
  446.     const gchar* _tmp95_;
  447.     gchar* _tmp96_ = NULL;
  448.     gchar* _tmp97_;
  449.     gboolean _tmp98_;
  450.     GError * _inner_error_ = NULL;
  451.     _tmp0_ = args;
  452.     _tmp0__length1 = args_length1;
  453.     _tmp1_ = _tmp0_[1];
  454.     _tmp2_ = string_index_of (_tmp1_, "ppa:", 0);
  455.     if (_tmp2_ == (-1)) {
  456.         return;
  457.     }
  458.     _tmp3_ = args;
  459.     _tmp3__length1 = args_length1;
  460.     if (_tmp3__length1 < 2) {
  461.         g_print ("usage: add-apt-repository <ppa> <ubuntu_version>\\n\n" \
  462. "\t\tex: add-apt-repository ppa:keks9n/monodevelop-latest raring");
  463.         return;
  464.     }
  465.     _tmp4_ = args;
  466.     _tmp4__length1 = args_length1;
  467.     _tmp5_ = _tmp4_[1];
  468.     _tmp7_ = _tmp6_ = g_strsplit (_tmp5_, "/", 0);
  469.     t = _tmp7_;
  470.     t_length1 = _vala_array_length (_tmp6_);
  471.     _t_size_ = t_length1;
  472.     _tmp8_ = t;
  473.     _tmp8__length1 = t_length1;
  474.     _tmp9_ = _tmp8_[0];
  475.     _tmp11_ = _tmp10_ = g_strsplit (_tmp9_, ":", 0);
  476.     _tmp12_ = _tmp11_;
  477.     _tmp12__length1 = _vala_array_length (_tmp10_);
  478.     _tmp13_ = _tmp12_[1];
  479.     _tmp14_ = g_strdup (_tmp13_);
  480.     _tmp15_ = _tmp14_;
  481.     _tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
  482.     maintener = _tmp15_;
  483.     _tmp16_ = t;
  484.     _tmp16__length1 = t_length1;
  485.     _tmp17_ = _tmp16_[1];
  486.     _tmp18_ = g_strdup (_tmp17_);
  487.     dir = _tmp18_;
  488.     _tmp19_ = t;
  489.     _tmp19__length1 = t_length1;
  490.     _tmp20_ = t;
  491.     _tmp20__length1 = t_length1;
  492.     _tmp21_ = _tmp20_[1];
  493.     _tmp22_ = g_strconcat ("+archive/", _tmp21_, NULL);
  494.     _g_free0 (_tmp19_[1]);
  495.     _tmp19_[1] = _tmp22_;
  496.     _tmp23_ = _tmp19_[1];
  497.     _tmp24_ = t;
  498.     _tmp24__length1 = t_length1;
  499.     _tmp25_ = t;
  500.     _tmp25__length1 = t_length1;
  501.     _tmp26_ = _tmp25_[0];
  502.     _tmp27_ = string_replace (_tmp26_, "ppa:", "http://launchpad.net/~");
  503.     _g_free0 (_tmp24_[0]);
  504.     _tmp24_[0] = _tmp27_;
  505.     _tmp28_ = _tmp24_[0];
  506.     _tmp29_ = t;
  507.     _tmp29__length1 = t_length1;
  508.     _tmp30_ = g_strjoinv ("/", _tmp29_);
  509.     ppa = _tmp30_;
  510.     _tmp31_ = ppa;
  511.     io_download_file (_tmp31_, ".temp.html", &_inner_error_);
  512.     if (_inner_error_ != NULL) {
  513.         _g_free0 (ppa);
  514.         _g_free0 (dir);
  515.         _g_free0 (maintener);
  516.         t = (_vala_array_free (t, t_length1, (GDestroyNotify) g_free), NULL);
  517.         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  518.         g_clear_error (&_inner_error_);
  519.         return;
  520.     }
  521.     _tmp32_ = htmlNewParserCtxt ();
  522.     ctx = _tmp32_;
  523.     _tmp33_ = ctx;
  524.     htmlCtxtUseOptions (_tmp33_, (gint) (((HTML_PARSE_NOERROR | HTML_PARSE_NOBLANKS) | HTML_PARSE_NOWARNING) | HTML_PARSE_NONET));
  525.     _tmp34_ = ctx;
  526.     _tmp35_ = htmlCtxtReadFile (_tmp34_, ".temp.html", NULL, 0);
  527.     doc = _tmp35_;
  528.     _tmp36_ = doc;
  529.     _tmp37_ = xmlXPathNewContext (_tmp36_);
  530.     c = _tmp37_;
  531.     _tmp38_ = c;
  532.     _tmp39_ = xmlXPathEval ("//div[@class='yui3-editable_text-text']", _tmp38_);
  533.     o = _tmp39_;
  534.     _tmp40_ = o;
  535.     _tmp41_ = _tmp40_->nodesetval;
  536.     nodeset = _tmp41_;
  537.     _tmp42_ = stdout;
  538.     _tmp43_ = nodeset;
  539.     _tmp44_ = xmlXPathNodeSetItem (_tmp43_, 0);
  540.     _tmp45_ = xmlNodeGetContent (_tmp44_);
  541.     _tmp46_ = _tmp45_;
  542.     fprintf (_tmp42_, "%s\n", _tmp46_);
  543.     _g_free0 (_tmp46_);
  544.     _tmp47_ = maintener;
  545.     _tmp48_ = g_strconcat ("deb http://ppa.launchpad.net/", _tmp47_, NULL);
  546.     _tmp49_ = _tmp48_;
  547.     _tmp50_ = g_strconcat (_tmp49_, "/", NULL);
  548.     _tmp51_ = _tmp50_;
  549.     _tmp52_ = dir;
  550.     _tmp53_ = g_strconcat (_tmp51_, _tmp52_, NULL);
  551.     _tmp54_ = _tmp53_;
  552.     _tmp55_ = g_strconcat (_tmp54_, "/ubuntu ", NULL);
  553.     _tmp56_ = _tmp55_;
  554.     _tmp57_ = args;
  555.     _tmp57__length1 = args_length1;
  556.     _tmp58_ = _tmp57_[2];
  557.     _tmp59_ = g_strconcat (_tmp56_, _tmp58_, NULL);
  558.     _tmp60_ = _tmp59_;
  559.     _tmp61_ = g_strconcat (_tmp60_, " main\n", NULL);
  560.     _tmp62_ = _tmp61_;
  561.     _tmp63_ = g_strconcat (_tmp62_, "deb-src http://ppa.launchpad.net/", NULL);
  562.     _tmp64_ = _tmp63_;
  563.     _tmp65_ = maintener;
  564.     _tmp66_ = g_strconcat (_tmp64_, _tmp65_, NULL);
  565.     _tmp67_ = _tmp66_;
  566.     _tmp68_ = g_strconcat (_tmp67_, "/", NULL);
  567.     _tmp69_ = _tmp68_;
  568.     _tmp70_ = dir;
  569.     _tmp71_ = g_strconcat (_tmp69_, _tmp70_, NULL);
  570.     _tmp72_ = _tmp71_;
  571.     _tmp73_ = g_strconcat (_tmp72_, "/ubuntu ", NULL);
  572.     _tmp74_ = _tmp73_;
  573.     _tmp75_ = args;
  574.     _tmp75__length1 = args_length1;
  575.     _tmp76_ = _tmp75_[2];
  576.     _tmp77_ = g_strconcat (_tmp74_, _tmp76_, NULL);
  577.     _tmp78_ = _tmp77_;
  578.     _tmp79_ = g_strconcat (_tmp78_, " main", NULL);
  579.     _tmp80_ = _tmp79_;
  580.     _g_free0 (_tmp78_);
  581.     _g_free0 (_tmp74_);
  582.     _g_free0 (_tmp72_);
  583.     _g_free0 (_tmp69_);
  584.     _g_free0 (_tmp67_);
  585.     _g_free0 (_tmp64_);
  586.     _g_free0 (_tmp62_);
  587.     _g_free0 (_tmp60_);
  588.     _g_free0 (_tmp56_);
  589.     _g_free0 (_tmp54_);
  590.     _g_free0 (_tmp51_);
  591.     _g_free0 (_tmp49_);
  592.     s = _tmp80_;
  593.     _tmp81_ = maintener;
  594.     _tmp82_ = g_strconcat ("ppa-", _tmp81_, NULL);
  595.     _tmp83_ = _tmp82_;
  596.     _tmp84_ = g_strconcat (_tmp83_, "-", NULL);
  597.     _tmp85_ = _tmp84_;
  598.     _tmp86_ = dir;
  599.     _tmp87_ = g_strconcat (_tmp85_, _tmp86_, NULL);
  600.     _tmp88_ = _tmp87_;
  601.     _tmp89_ = g_strconcat (_tmp88_, ".list", NULL);
  602.     _tmp90_ = _tmp89_;
  603.     _tmp91_ = s;
  604.     g_file_set_contents (_tmp90_, _tmp91_, (gssize) (-1), &_inner_error_);
  605.     _g_free0 (_tmp90_);
  606.     _g_free0 (_tmp88_);
  607.     _g_free0 (_tmp85_);
  608.     _g_free0 (_tmp83_);
  609.     if (_inner_error_ != NULL) {
  610.         _g_free0 (s);
  611.         _xmlXPathFreeContext0 (c);
  612.         _htmlFreeParserCtxt0 (ctx);
  613.         _g_free0 (ppa);
  614.         _g_free0 (dir);
  615.         _g_free0 (maintener);
  616.         t = (_vala_array_free (t, t_length1, (GDestroyNotify) g_free), NULL);
  617.         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  618.         g_clear_error (&_inner_error_);
  619.         return;
  620.     }
  621.     _tmp92_ = stdout;
  622.     fprintf (_tmp92_, "add this ppa ? [y/n] : ");
  623.     _tmp93_ = stdin;
  624.     _tmp94_ = g_file_stream_read_line (_tmp93_);
  625.     option = _tmp94_;
  626.     _tmp95_ = option;
  627.     _tmp96_ = g_utf8_strdown (_tmp95_, (gssize) (-1));
  628.     _tmp97_ = _tmp96_;
  629.     _tmp98_ = g_strcmp0 (_tmp97_, "y") == 0;
  630.     _g_free0 (_tmp97_);
  631.     if (_tmp98_) {
  632.         const gchar* _tmp99_;
  633.         gchar* _tmp100_;
  634.         gchar* _tmp101_;
  635.         gchar* _tmp102_;
  636.         gchar* _tmp103_;
  637.         const gchar* _tmp104_;
  638.         gchar* _tmp105_;
  639.         gchar* _tmp106_;
  640.         gchar* _tmp107_;
  641.         gchar* _tmp108_;
  642.         const gchar* _tmp109_;
  643.         gchar* _tmp110_;
  644.         gchar* _tmp111_;
  645.         gchar* _tmp112_;
  646.         gchar* _tmp113_;
  647.         const gchar* _tmp114_;
  648.         gchar* _tmp115_;
  649.         gchar* _tmp116_;
  650.         gchar* _tmp117_;
  651.         gchar* _tmp118_;
  652.         gchar* k = NULL;
  653.         gchar* l = NULL;
  654.         FILE* _tmp119_;
  655.         gchar* _tmp120_ = NULL;
  656.         gchar* _tmp121_ = NULL;
  657.         const gchar* _tmp122_;
  658.         gchar** _tmp123_;
  659.         gchar** _tmp124_ = NULL;
  660.         gchar** _tmp125_;
  661.         gint _tmp125__length1;
  662.         const gchar* _tmp126_;
  663.         gchar* _tmp127_;
  664.         const gchar* _tmp128_;
  665.         gchar* _tmp129_;
  666.         gchar* _tmp130_;
  667.         gchar* _tmp131_ = NULL;
  668.         gchar* _tmp132_ = NULL;
  669.         FILE* _tmp133_;
  670.         _tmp99_ = maintener;
  671.         _tmp100_ = g_strconcat ("sudo mv ppa-", _tmp99_, NULL);
  672.         _tmp101_ = _tmp100_;
  673.         _tmp102_ = g_strconcat (_tmp101_, "-", NULL);
  674.         _tmp103_ = _tmp102_;
  675.         _tmp104_ = dir;
  676.         _tmp105_ = g_strconcat (_tmp103_, _tmp104_, NULL);
  677.         _tmp106_ = _tmp105_;
  678.         _tmp107_ = g_strconcat (_tmp106_, ".list /etc/apt/sources.list.d/ppa-", NULL);
  679.         _tmp108_ = _tmp107_;
  680.         _tmp109_ = maintener;
  681.         _tmp110_ = g_strconcat (_tmp108_, _tmp109_, NULL);
  682.         _tmp111_ = _tmp110_;
  683.         _tmp112_ = g_strconcat (_tmp111_, "-", NULL);
  684.         _tmp113_ = _tmp112_;
  685.         _tmp114_ = dir;
  686.         _tmp115_ = g_strconcat (_tmp113_, _tmp114_, NULL);
  687.         _tmp116_ = _tmp115_;
  688.         _tmp117_ = g_strconcat (_tmp116_, ".list", NULL);
  689.         _tmp118_ = _tmp117_;
  690.         g_spawn_command_line_async (_tmp118_, &_inner_error_);
  691.         _g_free0 (_tmp118_);
  692.         _g_free0 (_tmp116_);
  693.         _g_free0 (_tmp113_);
  694.         _g_free0 (_tmp111_);
  695.         _g_free0 (_tmp108_);
  696.         _g_free0 (_tmp106_);
  697.         _g_free0 (_tmp103_);
  698.         _g_free0 (_tmp101_);
  699.         if (_inner_error_ != NULL) {
  700.             _g_free0 (option);
  701.             _g_free0 (s);
  702.             _xmlXPathFreeContext0 (c);
  703.             _htmlFreeParserCtxt0 (ctx);
  704.             _g_free0 (ppa);
  705.             _g_free0 (dir);
  706.             _g_free0 (maintener);
  707.             t = (_vala_array_free (t, t_length1, (GDestroyNotify) g_free), NULL);
  708.             g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  709.             g_clear_error (&_inner_error_);
  710.             return;
  711.         }
  712.         _tmp119_ = stdout;
  713.         fprintf (_tmp119_, "\n");
  714.         g_spawn_command_line_sync ("sudo apt-get update", &_tmp120_, &_tmp121_, NULL, &_inner_error_);
  715.         _g_free0 (l);
  716.         l = _tmp120_;
  717.         _g_free0 (k);
  718.         k = _tmp121_;
  719.         if (_inner_error_ != NULL) {
  720.             _g_free0 (l);
  721.             _g_free0 (k);
  722.             _g_free0 (option);
  723.             _g_free0 (s);
  724.             _xmlXPathFreeContext0 (c);
  725.             _htmlFreeParserCtxt0 (ctx);
  726.             _g_free0 (ppa);
  727.             _g_free0 (dir);
  728.             _g_free0 (maintener);
  729.             t = (_vala_array_free (t, t_length1, (GDestroyNotify) g_free), NULL);
  730.             g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  731.             g_clear_error (&_inner_error_);
  732.             return;
  733.         }
  734.         _tmp122_ = k;
  735.         _tmp124_ = _tmp123_ = g_strsplit (_tmp122_, " NO_PUBKEY ", 0);
  736.         _tmp125_ = _tmp124_;
  737.         _tmp125__length1 = _vala_array_length (_tmp123_);
  738.         _tmp126_ = _tmp125_[1];
  739.         _tmp127_ = g_strdup (_tmp126_);
  740.         _g_free0 (k);
  741.         k = _tmp127_;
  742.         _tmp125_ = (_vala_array_free (_tmp125_, _tmp125__length1, (GDestroyNotify) g_free), NULL);
  743.         _tmp128_ = k;
  744.         _tmp129_ = g_strconcat ("sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ", _tmp128_, NULL);
  745.         _tmp130_ = _tmp129_;
  746.         g_spawn_command_line_sync (_tmp130_, &_tmp131_, &_tmp132_, NULL, &_inner_error_);
  747.         _g_free0 (k);
  748.         k = _tmp131_;
  749.         _g_free0 (l);
  750.         l = _tmp132_;
  751.         _g_free0 (_tmp130_);
  752.         if (_inner_error_ != NULL) {
  753.             _g_free0 (l);
  754.             _g_free0 (k);
  755.             _g_free0 (option);
  756.             _g_free0 (s);
  757.             _xmlXPathFreeContext0 (c);
  758.             _htmlFreeParserCtxt0 (ctx);
  759.             _g_free0 (ppa);
  760.             _g_free0 (dir);
  761.             _g_free0 (maintener);
  762.             t = (_vala_array_free (t, t_length1, (GDestroyNotify) g_free), NULL);
  763.             g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  764.             g_clear_error (&_inner_error_);
  765.             return;
  766.         }
  767.         _tmp133_ = stdout;
  768.         fprintf (_tmp133_, "key acquired !\n");
  769.         _g_free0 (l);
  770.         _g_free0 (k);
  771.     }
  772.     _g_free0 (option);
  773.     _g_free0 (s);
  774.     _xmlXPathFreeContext0 (c);
  775.     _htmlFreeParserCtxt0 (ctx);
  776.     _g_free0 (ppa);
  777.     _g_free0 (dir);
  778.     _g_free0 (maintener);
  779.     t = (_vala_array_free (t, t_length1, (GDestroyNotify) g_free), NULL);
  780. }
  781.  
  782.  
  783. int main (int argc, char ** argv) {
  784.     g_type_init ();
  785.     _vala_main (argv, argc);
  786.     return 0;
  787. }
  788.  
  789.  
  790. static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
  791.     if ((array != NULL) && (destroy_func != NULL)) {
  792.         int i;
  793.         for (i = 0; i < array_length; i = i + 1) {
  794.             if (((gpointer*) array)[i] != NULL) {
  795.                 destroy_func (((gpointer*) array)[i]);
  796.             }
  797.         }
  798.     }
  799. }
  800.  
  801.  
  802. static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
  803.     _vala_array_destroy (array, array_length, destroy_func);
  804.     g_free (array);
  805. }
  806.  
  807.  
  808. static gint _vala_array_length (gpointer array) {
  809.     int length;
  810.     length = 0;
  811.     if (array) {
  812.         while (((gpointer*) array)[length]) {
  813.             length++;
  814.         }
  815.     }
  816.     return length;
  817. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement