(BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:AVAILABLE_OPTIONS) op: Equal rhs: { (SQ <'\n'> <' - start/stop/restart/status (all services, known to DietPi)\n'> <' - start/stop/restart servicename (single service, SystemD)\n'> <' - systemd_controlled/dietpi_controlled (all services, known to DietPi)\n'> <' - enable/disable servicename (single service, SystemD)\n'> <' - enable/disable all (all services, known to DietPi)\n'> <' - mask/unmask servicename (single service, SystemD)'> ) } spids: [58] ) ] spids: [58] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INPUT_MODE) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [75] ) ] spids: [75] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INPUT_S2) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [81] ) ] spids: [81] ) (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)}) (C {(G_CHECK_ROOT_USER)}) (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Services>)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aSERVICE_NAME) op: Equal rhs: { (ArrayLiteralPart words: [ {(SQ <cron>)} {(SQ <transmission-daemon>)} {(SQ <proftpd>)} {(SQ <smbd>)} {(SQ <nmbd>)} {(SQ <nfs-kernel-server>)} {(SQ <vsftpd>)} {(SQ <apache2>)} {(SQ <nginx>)} {(SQ <lighttpd>)} {(SQ <php5-fpm>)} {(SQ <php7.0-fpm>)} {(SQ <mysql>)} {(SQ <mpd>)} {(SQ <ympd>)} {(SQ <minidlna>)} {(SQ <noip2>)} {(SQ <grasshopper>)} {(SQ <dnsmasq>)} {(SQ <pihole-FTL>)} {(SQ <subsonic>)} {(SQ <webiopi>)} {(SQ <haproxy>)} {(SQ <fail2ban>)} {(SQ <openvpn>)} {(SQ <isc-dhcp-server>)} {(SQ <hostapd>)} {(SQ <avahi-daemon>)} {(SQ <shairport-sync>)} {(SQ <squeezelite>)} {(SQ <mopidy>)} {(SQ <redis-server>)} {(SQ <emonhub>)} {(SQ <netdata>)} {(SQ <mumble-server>)} {(SQ <emby-server>)} {(SQ <plexmediaserver>)} {(SQ <cuberite>)} {(SQ <supervisor>)} {(SQ <gogs>)} {(SQ <qbittorrent>)} {(SQ <syncthing>)} {(SQ <syncthing-inotify>)} {(SQ <rtorrent>)} {(SQ <urbackupsrv>)} {(SQ <sickrage>)} {(SQ <roonbridge>)} {(SQ <mosquitto>)} {(SQ <networkaudiod>)} {(SQ <node-red>)} {(SQ <tomcat8>)} {(SQ <rpimonitor>)} {(SQ <openmediavault-engined>)} {(SQ <blynkserver>)} {(SQ <aria2>)} {(SQ <yacy>)} {(SQ <tonido>)} {(SQ <icecast2>)} {(SQ <darkice>)} {(SQ <motioneye>)} {(SQ <cups>)} {(SQ <cloudprintd>)} {(SQ <virtualhere>)} {(SQ <sabnzbd>)} {(SQ <spotify-connect-web>)} {(SQ <couchpotato>)} {(SQ <koel>)} {(SQ <sonarr>)} {(SQ <radarr>)} {(SQ <plexpy>)} {(SQ <jackett>)} {(SQ <nzbget>)} {(SQ <octoprint>)} {(SQ <roonserver>)} {(SQ <htpc-manager>)} {(SQ <home-assistant>)} {(SQ <openbazaar>)} {(SQ <docker>)} {(SQ <bdd>)} {(SQ <minio>)} {(SQ <gmrender>)} {(SQ <nukkit>)} {(SQ <gitea>)} {(SQ <pi-spc>)} {(SQ <raspotify>)} {(SQ <voice-recognizer>)} {(SQ <alsa-init>)} ] ) } spids: [113] ) ] spids: [113] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_INCLUDE_SERVICES) op: Equal rhs: {(SQ </DietPi/dietpi/.dietpi-services_include>)} spids: [572] ) ] spids: [572] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_INCLUDE_SERVICES'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(line)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:index) op: Equal rhs: { (BracedVarSub token: <VSub_Name aSERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [607 613] ) } spids: [606] ) ] spids: [606] ) (C {(aSERVICE_NAME) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (DQ ($ VSub_Name '$line')) } ) ] spids: [602 627] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_INCLUDE_SERVICES'))} ) ] ) ] spids: [16777215 591] ) ] spids: [16777215 637] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:aSERVICE_AVAILABLE) op:Equal rhs:{(0)} spids:[645])] spids: [645] ) (ForExpr init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)})) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [659 665] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(aSERVICE_AVAILABLE) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (0) } ) ] spids: [674 686] ) ) (FuncDef name: Populate_Available_Array body: (BraceGroup children: [ (Pipeline children: [ (C {(dpkg)} {(--get-selections)}) (SimpleCommand words: [{(awk)} {(SQ <'{print $1}'>)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} ) ] ) ] negated: F ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [737 743] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-f)} {(/etc/systemd/system/) (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [763 768] ) (.service) } {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-f)} {(/lib/systemd/system/) (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [781 786] ) (.service) } {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(aSERVICE_AVAILABLE) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (1) } ) ] spids: [16777215 792] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(/etc/init.d/) (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [812 817] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(aSERVICE_AVAILABLE) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (1) } ) ] spids: [805 822] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(-ci)} {(-m1)} { (DQ ('^') (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [852 857] ) (Lit_Other '$') ) } {(DQ ($ VSub_Name '$FP_TEMP'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [843 864] ) } ) spids: [841 867] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(aSERVICE_AVAILABLE) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (1) } ) ] spids: [839 870] ) ] spids: [16777215 883] ) ] spids: [752 887] ) ) ] spids: [699] ) spids: [694 697] ) (FuncDef name: Print_Status body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DPipe left: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Number '$3')}) right: (ArithWord w:{(Lit_Digits 0)}) ) right: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Number '$3')}) right: (ArithWord w:{(Lit_Digits 5)}) ) ) spids: [928 945] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ($ VSub_Number '$1') (' : ') ($ VSub_Number '$2'))}) ] spids: [16777215 948] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ($ VSub_Number '$1') (' : ') ($ VSub_Number '$2'))}) ] spids: [968 984] ) ] spids: [900] ) spids: [895 898] ) (FuncDef name: Set_Running_State body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:target_state) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1005] ) ] spids: [1003] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:index) op:Equal rhs:{(0)} spids:[1028])] spids: [1028] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aDIETPISERVICE_FP) op: Equal rhs: {(ArrayLiteralPart)} spids: [1032] ) ] spids: [1032] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aDIETPISERVICE_NAME) op: Equal rhs: {(ArrayLiteralPart)} spids: [1037] ) ] spids: [1037] ) (Sentence child: (C {(aDIETPISERVICE_NAME) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ <BruteFIR>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_FP) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ </var/lib/dietpi/dietpi-software/services/brutefir.service>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [1060 1064] ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_NAME) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ <JackD>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_FP) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ </var/lib/dietpi/dietpi-software/services/jackd.service>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [1086 1090] ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_NAME) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ <Jconvolver>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_FP) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ </var/lib/dietpi/dietpi-software/services/jconvolver.service>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [1112 1116] ) terminator: <Op_Semi ';'> ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aDIETPISERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1131 1137] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (BracedVarSub token: <VSub_Name aDIETPISERVICE_FP> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1156 1161] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(-2)} { (DQ (BracedVarSub token: <VSub_Name aDIETPISERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1175 1180] ) ) } ) (SimpleCommand words: [ { (BracedVarSub token: <VSub_Name aDIETPISERVICE_FP> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1185 1190] ) } {($ VSub_Name '$target_state')} ] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(Print_Status)} {($ VSub_Name '$target_state')} { (BracedVarSub token: <VSub_Name aDIETPISERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1203 1208] ) } {($ VSub_QMark '$?')} ) ] spids: [16777215 1166] ) ] spids: [16777215 1214] ) ] spids: [1146 1218] ) ) (C {(unset)} {(aDIETPISERVICE_NAME)}) (C {(unset)} {(aDIETPISERVICE_FP)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aALLO_EXCLUDED_SERVICES_DURING_STOP) op: Equal rhs: { (ArrayLiteralPart words: [ {(SQ <apache2>)} {(SQ <nginx>)} {(SQ <lighttpd>)} {(SQ <php5-fpm>)} {(SQ <php7.0-fpm>)} {(SQ <mysql>)} {(SQ <avahi-daemon>)} ] ) } spids: [1241] ) ] spids: [1241] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1302 1308] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-d)} {(/var/www/allo)} {(Lit_Other ']')}) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$target_state'))} {(Lit_Other '=')} {(DQ (stop))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:j) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:j) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aALLO_EXCLUDED_SERVICES_DURING_STOP> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1370 1376] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:j)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1394 1399] ) ) } {(Lit_Other '=')} { (DQ (BracedVarSub token: <VSub_Name aALLO_EXCLUDED_SERVICES_DURING_STOP > bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$j')}) ) spids: [1405 1410] ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(aSERVICE_AVAILABLE) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (0) } ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 1416] ) ] spids: [16777215 1432] ) ] spids: [1385 1436] ) ) ] spids: [16777215 1356] ) ] spids: [16777215 1440] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_AVAILABLE> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1456 1461] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1454 1468] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(-2)} { (DQ (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1480 1485] ) ) } ) (SimpleCommand words: [ {(systemctl)} {($ VSub_Name '$target_state')} { (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1494 1499] ) } ] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(Print_Status)} {($ VSub_Name '$target_state')} { (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1511 1516] ) } {($ VSub_QMark '$?')} ) ] spids: [16777215 1471] ) ] spids: [16777215 1522] ) ] spids: [1317 1526] ) ) (C {(unset)} {(aALLO_EXCLUDED_SERVICES_DURING_STOP)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:index) op:Equal rhs:{(0)} spids:[1552])] spids: [1552] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aDIETPISERVICE_FP) op: Equal rhs: {(ArrayLiteralPart)} spids: [1556] ) ] spids: [1556] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aDIETPISERVICE_NAME) op: Equal rhs: {(ArrayLiteralPart)} spids: [1561] ) ] spids: [1561] ) (Sentence child: (C {(aDIETPISERVICE_NAME) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ <RaspimJpeg>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_FP) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ </var/lib/dietpi/dietpi-software/services/raspimjpeg.service>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [1584 1588] ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_NAME) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ <Deluge>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_FP) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ </var/lib/dietpi/dietpi-software/services/deluge.service>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [1610 1614] ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_NAME) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ <'SqueezeBox Server'>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(aDIETPISERVICE_FP) (Lit_Other '[') ($ VSub_Name '$index') (Lit_Other ']') (Lit_Other '=') (SQ </var/lib/dietpi/dietpi-software/services/squeezeboxserver.service>) } ) terminator: <Op_Semi ';'> ) (Sentence child: (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [1636 1640] ) terminator: <Op_Semi ';'> ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aDIETPISERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1655 1661] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (BracedVarSub token: <VSub_Name aDIETPISERVICE_FP> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1680 1685] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(-2)} { (DQ (BracedVarSub token: <VSub_Name aDIETPISERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1699 1704] ) ) } ) (SimpleCommand words: [ { (BracedVarSub token: <VSub_Name aDIETPISERVICE_FP> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1709 1714] ) } {($ VSub_Name '$target_state')} ] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(Print_Status)} {($ VSub_Name '$target_state')} { (BracedVarSub token: <VSub_Name aDIETPISERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [1727 1732] ) } {($ VSub_QMark '$?')} ) ] spids: [16777215 1690] ) ] spids: [16777215 1738] ) ] spids: [1670 1742] ) ) (C {(unset)} {(aDIETPISERVICE_NAME)}) (C {(unset)} {(aDIETPISERVICE_FP)}) (C {(echo)} {(-e)} {(DQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$target_state'))} {(Lit_Other '=')} {(DQ (start))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$target_state'))} {(Lit_Other '=')} {(DQ (restart))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(/DietPi/dietpi/dietpi-process_tool)} {(1)})] spids: [16777215 1808] ) ] spids: [16777215 1818] ) ] spids: [999] ) spids: [996 999] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_TEMP) op: Equal rhs: {(DQ (/tmp/.dietpi-services_installed))} spids: [1826] ) ] spids: [1826] ) (C {(G_DIETPI-NOTIFY)} {(3)} {(DietPi-Services)} {(DQ ($ VSub_Name '$INPUT_MODE'))}) (C {(Populate_Available_Array)}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(SQ <dietpi_controlled>)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(SQ <systemd_controlled>)} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SYSTEMD_CMD) op: Equal rhs: {(SQ <disable>)} spids: [1915] ) ] spids: [1915] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (systemd_controlled))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SYSTEMD_CMD) op: Equal rhs: {(SQ <enable>)} spids: [1943] ) ] spids: [1943] ) ] spids: [16777215 1939] ) ] spids: [16777215 1950] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1964 1970] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_AVAILABLE> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1991 1996] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1989 2003] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(-2)} { (DQ (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [2015 2020] ) ) } ) (SimpleCommand words: [ {(systemctl)} {($ VSub_Name '$SYSTEMD_CMD')} { (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [2029 2034] ) } ] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(Print_Status)} {($ VSub_Name '$INPUT_MODE')} { (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [2046 2051] ) } {($ VSub_QMark '$?')} ) ] spids: [16777215 2006] ) ] spids: [16777215 2057] ) ] spids: [1979 2061] ) ) (SimpleCommand words: [{(systemctl)} {(daemon-reload)}] redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})] ) (C {(echo)} {(-e)} {(DQ )}) ] spids: [16777215 1911] ) (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe Op_DPipe Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (enable))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (disable))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (unmask))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (mask))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SYSTEMD_CMD) op: Equal rhs: {(SQ <mask>)} spids: [2168] ) ] spids: [2168] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (enable))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (unmask))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SYSTEMD_CMD) op: Equal rhs: {(SQ <unmask>)} spids: [2212] ) ] spids: [2212] ) ] spids: [16777215 2208] ) ] spids: [16777215 2219] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_S2'))} {(Lit_Other '=')} {(SQ <all>)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (disable))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (mask))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(-e)} {(DQ )}) (C {(Set_Running_State)} {(stop)})] spids: [16777215 2282] ) ] spids: [16777215 2300] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [2314 2320] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_AVAILABLE> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2337 2342] ) } ) spids: [2335 2345] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(0)} { (DQ ($ VSub_Name '$INPUT_MODE') (' ') ($ VSub_Name '$INPUT_S2') (': ') (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2362 2367] ) ) } ) (C {(systemctl)} {($ VSub_Name '$SYSTEMD_CMD')} { (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2375 2380] ) } ) ] spids: [16777215 2348] ) ] spids: [16777215 2384] ) ] spids: [2329 2388] ) ) ] spids: [16777215 2244] ) ] else_action: [ (C {(systemctl)} {(stop)} {($ VSub_Name '$INPUT_S2')}) (C {(systemctl)} {($ VSub_Name '$SYSTEMD_CMD')} {($ VSub_Name '$INPUT_S2')}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2418 2427] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ($ VSub_Name '$INPUT_MODE') (' ') ($ VSub_Name '$INPUT_S2'))} ) ] spids: [16777215 2430] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ($ VSub_Name '$INPUT_MODE') (' ') ($ VSub_Name '$INPUT_S2'))} ) ] spids: [2446 2462] ) ] spids: [2397 2466] ) (SimpleCommand words: [{(systemctl)} {(daemon-reload)}] redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (unmask))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (enable))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(-e)} {(DQ )}) (C {(Set_Running_State)} {(start)})] spids: [16777215 2514] ) ] spids: [16777215 2532] ) (C {(echo)} {(-e)} {(DQ )}) ] spids: [2092 2160] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (status))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_NAME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [2584 2590] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name aSERVICE_AVAILABLE> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2611 2616] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2609 2623] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATUS) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2632 2637] ) (Lit_Other '\\') (t) (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(systemctl)} {(status)} { (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2645 2650] ) } ) (C {(grep)} {(-m1)} {(SQ <Active>)}) (C {(cut)} {(-c12-)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2640 2667] ) ) } spids: [2630] ) ] spids: [2630] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name '$STATUS'))} right: {(.) (Lit_Other '*') (SQ <failed>) (.) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ($ VSub_Name '$STATUS'))}) (C {(systemctl)} {(status)} { (DQ (BracedVarSub token: <VSub_Name aSERVICE_NAME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2711 2716] ) ) } {(-l)} {(--no-pager)} ) ] spids: [16777215 2693] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name '$STATUS'))} right: {(.) (Lit_Other '*') (SQ <inactive>) (.) (Lit_Other '*') } ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ($ VSub_Name '$STATUS'))})] spids: [2725 2746] ) ] else_action: [(C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ($ VSub_Name '$STATUS'))})] spids: [2760 2774] ) ] spids: [16777215 2626] ) ] spids: [16777215 2778] ) ] spids: [2599 2782] ) ) (C {(echo)} {(-e)} {(DQ )}) ] spids: [2553 2570] ) (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (start))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (stop))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (restart))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$INPUT_S2'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(systemctl)} {($ VSub_Name '$INPUT_MODE')} {($ VSub_Name '$INPUT_S2')}] redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2892 2901] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ($ VSub_Name '$INPUT_MODE') (' ') ($ VSub_Name '$INPUT_S2'))} ) ] spids: [16777215 2904] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ($ VSub_Name '$INPUT_MODE') (' ') ($ VSub_Name '$INPUT_S2'))} ) ] spids: [2920 2936] ) (C {(echo)} {(-e)} {(DQ )}) ] spids: [16777215 2875] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (stop))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (restart))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr ops: [Op_DAmp] children: [ (SimpleCommand words: [ {(grep)} {(-q)} {(DQ ("'maintenance' => false,"))} {(/var/www/owncloud/config/config.php)} ] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(G_RUN_CMD)} {(occ)} {(maintenance) (Lit_Other ':') (mode)} {(--on)}) ] ) (AndOr ops: [Op_DAmp] children: [ (SimpleCommand words: [ {(grep)} {(-q)} {(DQ ("'maintenance' => false,"))} {(/var/www/nextcloud/config/config.php)} ] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(G_RUN_CMD)} {(ncc)} {(maintenance) (Lit_Other ':') (mode)} {(--on)}) ] ) ] spids: [16777215 2994] ) ] spids: [16777215 3053] ) (C {(Set_Running_State)} {(DQ ($ VSub_Name '$INPUT_MODE'))}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (restart))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPUT_MODE'))} {(Lit_Other '=')} {(DQ (start))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr ops: [Op_DAmp] children: [ (SimpleCommand words: [ {(grep)} {(-q)} {(DQ ("'maintenance' => true,"))} {(/var/www/owncloud/config/config.php)} ] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(G_RUN_CMD)} {(occ)} {(maintenance) (Lit_Other ':') (mode)} {(--off)}) ] ) (AndOr ops: [Op_DAmp] children: [ (SimpleCommand words: [ {(grep)} {(-q)} {(DQ ("'maintenance' => true,"))} {(/var/www/nextcloud/config/config.php)} ] redirects: [ (Redir op: <Redir_AndGreat '&>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (C {(G_RUN_CMD)} {(ncc)} {(maintenance) (Lit_Other ':') (mode)} {(--off)}) ] ) ] spids: [16777215 3102] ) ] spids: [16777215 3161] ) ] spids: [2953 3165] ) ] spids: [2803 2854] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(2)} { (DQ ('Invalid command') (Lit_Other '\\') ('e[0m') (Lit_Other '\\') ('nAvailable commands:') (Lit_Other '\\') (n) ($ VSub_Name '$AVAILABLE_OPTIONS') (Lit_Other '\\') (n) ) } ) ] spids: [3177 3198] ) (C {(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))}) (C {(unset)} {(aSERVICE_NAME)}) (C {(unset)} {(aSERVICE_AVAILABLE)}) (ControlFlow token:<ControlFlow_Exit exit>) ] spids: [3] )